1.添加并发用户
线程组。线程数始终设置为1,如果单个服务器创建多个监控线程,会给服务器带来很大的压力
循环次数设置为永远,以便产生足够多的采样,来动态监控服务器的工作状态
2.添加HTTP授权管理器
Add->Config element->HTTP.输入服务器的用户名和密码
3.添加HTTP请求
Add-》sampler->Http Request
4.添加固定时长的定时器
Add->Timer->Constant Timer,采样器的间隔设置大于5S
5.添加一个监听器来存储测试结果
Add->listener->simple Data writer
6.添加监视器结果
负载计算:
一台服务器在内存耗尽或线程数达到最大值的时候会出现跌机,对于tomacat5,一旦线程达到最大值新到的请求就会被放置到一个队列之中直到有线程被释放。
测试元件:
Jmeter测试元件包括:监听器,逻辑控制器,配置元件,定时器,前置处理器,后置处理器,采样器。
1。监听器:展示采样结果的测试元件,采样结果可以通过树,表格,图形展示。
不同的监听器以不同方式暂时服务器响应信息,但是使用相同的原始数据,
- configure 可以用来配置那些数据域会被写入结果文件中,及结果文件的格式。
Jmeter保存哪些数据域,可以通过Jmeter.properties 文件通过属性定义。
要改变 默认格式:jmeter.save.saveservice.output-format=CSV
jmeter.save.saveservice.assertion_results_failure_message=true
Jmeter.save.saveservice.default_delimiter=|
2). sample_variables属性。
允许用户使用sample_variables定义一些补充的Jmeter变量,这些变量的值将会和采样结果一起保存在JTL
监听器格式:
https://www.cnblogs.com/suim1218/p/9257343.html
3)非GUI模式运行测试 使用-l标签
jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log
4)监听器占有资源
如果监听器采样数目过多 就会占用大量内存,有些会保存副本,聚合的不会不存单次副本。
5)CSV记录格式
CSV记录格式依赖于配置监听器过程中选择的数据域
6)采样属性
7).保存响应数据
使用save_responses_to-a_file
8).加载(读取)响应数据
9)保存监听器/GUI数据
Edit->save as image
Jmeter 逻辑控制器
通过逻辑控制器来决定采样的顺序(相当于if while 等)
1.简单控制器
简单控制器不能提供出存储设备之外的其他功能
存在与Add-》logic control
2.循环控制器:
如果将采样器(HTTP request)放入循环控制器中,就可以循环执行。
3,仅一次控制器:可将登录等放入这种循环中
4.交替控制器:交替执行该控制器下的测试元件
5.随机控制器
6.随机顺序控制器
7.吞吐量控制器
有两种模式:
percent excutio;该控制器会执行固定比例的循环次数根据测试计划总的循环测试
和total excution:总的执行次数
8.运行时长控制器
可以控制其子测试元件允许运行的时长
9.if controller
添加表达式 ,表达式为true 然后执行
10.while controller
会一直 运行自己的子测试元件 直到条件为false 变量写${var},可能的条件值:blank ,LAST,Otherwise/function
11.Swith control
如果Switch超过范围了 ,则执行零号测试元件,如果该值为空字符串 也执行零号字符串。
12 foreach controller
13 模块控制器
可以动态替换测试计划的一个片段,将module to run 指向已经建好的模块
14.include controller
被设计使用外部的JMX文件,要使用踏,需将采样器添加到简单控制器之下,接着将简单控制器保存为JMX
如果测试 用到cookie manager 或defined variables 需要将他们放在测试计划的顶层 ,不应该包含在文件中
15事务控制器
只有所有的子采样都成功了 ,该采样才被认为成功
16.录制控制器
存放位置,指明了代理服务器的采样应该放在哪里。
Jmeter配置元件:
1.CSV data set config
被用来从文件中读取数据行,并将他们拆分后存储在变量中。
2)FTPRequest Default:用于设置FTP请求的默认值
3)DNS缓存管理器
DNS只能与采用HTTPClient实现的HTTP请求一起工作
4)HTTP授权管理
一个采样器的作用域范围有多个授权管理器,授权管理器可以帮助测试人员指定针对web页面一个或多个登录
Kerberos配置
要配置Kerberos,测试人员需要至少两个JVM
1-DJava5.security.krb5.conf=krb5.conf
1-DJava5…security.auth.krb5.conf=jaas.conf
测试人员可以在bin/system.properties 中来配置这两个属性,查看jmeter bin目录中的两个采样配置文件(krb5.conf 和jaas.conf ),并调整他们来配合用户的Kerberos配置
当Kerberos SPNEGO鉴权生成一个SPN时,IE和firefox 会忽略来自URL的端口号,chrome 有一个选项用来包含端口号。这种行为可通过设置Kerberos。spnego.strip_port=false
5)HTTP Cache Manager
为其作用域范围内的HTTP请求提供缓存功能,默认状态下,缓存管理器会为线程存储5000条记录,并使用LRU算法,使用属性maxsize来修改他的值。如果选中use Cache-control/expires header 复选框,那么cache-control /expired 的值根据当前时间来选择
6)HTTP cookie 管理器
用于存储和发送cookie,如果测试人员有一个HTTP请求和响应中含有cookie,cookie管理器会自动存储cookie。接收到的cookie 会被保存在Jmeter线程变量,要将cookie保存为变量 ,设置cookieManager.save.cookie=true
要恢复早前的cookie ,设置cookieManager.name.prefix =true
测试人员可手动为cookie管理器添加一个cookie :user-defined cookie
7).HTTP请求默认值
可以用来设置server name 或IP域等共有信息
8).HTTP 信息头管理器
用户可通过信息头管理器添加或重载HTTP 请求头。
Jmeter支持多个信息头管理器,信息头条目或被合并起来构成采样器列表。如果存在重复的,就用新的替代老的
9)JDBC Connection configuration:测试数据库性能
10)Java 请求默认值:设置Java测试的默认值
11).密钥库配置元件
配置如何加载密钥库,以及使用那些钥匙。 通常用于HTTPS场景
使用后这个需要客户端证书去初始化一个Java密钥库
1.通过Java keytool utility 或PKI创建证书
2.将密钥到Java密钥库
3.通过两个JVM属性,引用密钥库文件
12)。登录配置元件
用来添加或重载用户名和密码
13) 。LDAP请求默认值
14)LDAP extended request Default
15)TCP采样器配置
16)用户定义的变量
17)Random Variable
用来产生随机数字字符串,然后将其存放在变量之中,使用公式min+Random.nextInt(max-min+1),min和max是任何long类型
18)计数器
可在线程组中任何一个地方被引用。可以配置一个起点一个最大值以及递增值。如果循环到最大值 有接着从初始值开始
19)简单配置元件:可以在采样器中添加和重载任意值
20)mongoDB source config
提供L=连接设置创建MongoDB连接。可以通过mongoDBHolder 在beanshell 或JSR223测试元件中访问com.mongoDB.DB对象
import org.apache.jmeter.protocol.mongodb.config.mongoDBholder
DB db=mongoDBholder.getDBfromsource(**)