一:场景设置
JMeter线程组实际上市创建了一个线程池,JMeter根据用户的设置进行线程组的初始化,在运行时进行各种异常的处理
参数说明:
1)名称:可以随意设置,最好有业务意义
2)注释:可以随意设置,可以为空
3)继续:请求(Sampler元件模拟的用户请求)出错后继续执行
4)Start Next Thread Loop:如果出错则同一脚本中的余下请求将不再执行,直接重新开始执行
5)停止线程:如果遇见请求失败,则停止当前线程,不再执行.
6)停止测试:如果某一线程的某一请求失败了,则停止所有线程,也就是停下整个测试
7)Stop Text Now:如果有线程的请求失败了,马上停止整个测试场景
线程属性:
1)线程数:一个线程对应一个模拟用户
2)Ramp-Up Period:线程启动开始运行的时间间隔,单位是秒,即所有线程在多数时间内开始运行
3)循环次数:请求的重复次数,选择后面的forever,那么请求将一直继续除非停止或崩溃,如果不选择forever,而是在后面的输入框中输入数据,那么请求将会重复指定的次数
4)Delay Thread creation utilneeded:勾选线程在Ramp-Up Period的间隔时间启动并允许
5)调度器配置:设置何时开始运行
6)启动时间:测试计划什么时候开始启动
7)结束时间:测试计划什么时候结束
8)持续时间:测试计划持续多长时间
9)启动延迟:点击执行按钮后,仅初始化场景,不允许线程,等待延迟到时后开始运行线程
二:JMeter的运行方式
第一种是:GUI运行
1)本地运行:运行JMeter,点击快捷栏的运行方式运行
2)远程运行:远程运行时用一台JMeter控制机控制远程的多台机器来产生负载,JMeter控制机与远程负载机是通过RMI方式来完成的,在负载机上运行Agent程序(启动命令是%JAVA_HOME%injmeter-server.bat),在JMeter控制机上点击运行远程负载机.运行Agent的方法是在%JMETER_HOME%injmeter-server.bat目录下找到ApacheJMeter.jar与jmeter-server.bat两个文件,通过运行jmeter-server.bat来启动Agent,
打开jmeter.properties文件搜索""remote_hosts"关键字"找到:
#Remote Hosts-comma delimited 多个IP用逗号隔开 remote_hosts=127.0.0.1,192.168.1.1 #remote_hosts=localhost:1099,localhost:2010 #RMI port to be used by the server(must start rmiregistry with same port) #server_port=1099
在"remote_hosts="后加上远程JMeter负载机的IP即可(记住修改配置文件后需要重启JMeter)
第二种:非GUI运行
JMeter非GUI运行方式的命令:
1) java -jar %JMETER_HOME%inApacheJMeter.jar -n -t %JMETER_HOME%scriptJforum4-1-01.jmx -r -1 result.jtl
2) %JMETER_HOME%injmeter -n -t %JMETER_HOME%scriptJforum4-1-01.jmx -1 %JMETER_HOME% esult esults.jtl
这两种方式都可与运行测试计划,JMeter运行测试计划实际上是通过运行ApacheJMeter.jar来完成的
三:JMeter 监听器
1)Summary Report
表格的形式显示取样器结果,如果不同取样器拥有相同名字,nameSummary Report中会统计到同一行,
四:逻辑控制器
JMeter逻辑控制器可以对元件执行逻辑进行控制,除仅一次控制器外,其他控制器下可以嵌套别的种类的逻辑控制器
1)ForEach Controller(循环控制器)
参数说明:
名称:控制器名称
input variable prefix(输入变量前缀):可以在"用户自定义的变量"中定义一组变量,循环控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数
start index for loop:循环变量下标起点
end index for loop:循环变量下标终点
output variable name(输出变量名称):循环控制器生成的变量名称
add'_'before number?:变量前缀是否加入"_"作为分隔符
2)Simple Controller(简单控制器)
用来指定一个执行单元,不改变元件执行顺序,课嵌套其他控制器,
3)Include Controller
用来导入外部的测试片段,在执行时会执行导入的测试计划,但是被导入的测试计划有特殊要求,他不能有线程组,只能包含简单控制器,及控制器下的元件,相当于加了一个执行单元,一个封装了的业务操作单元,
4)Runtime Controller
用来控制其子元件的执行时长,时长的单位是秒
5)Switch Controller 条件控制器
6)While Controller 条件控制器
7)Interleave Controller 交替控制器
8)Once Only Controller 仅一次控制器
9)Throughput Controller 用来控制其下元件的执行次数
10)If Controller 条件控制器
11)Module Controller 模块控制器
12)Random Controller 随机控制器
13)Random Order Controller 其下的元件随机执行
14)Loop Controller 循环控制器
控制其节点下的元件的执行次数
15)Recording Controller 录制控制器
16)Transaction Controller 事务控制器