类似loadrunner的场景设置,解释:
This Group will start 100 threads:这次的测试总共会起100个线程。
First , wait for 0 seconds:等待0s后开始起线程,也就是不等待直接起线程。
Then start 10 threads every 30 seconds:每起10个线程后会运行30s,再起余下的10个线程,再运行30s,以此类推。
Using ramp-up 5 seconds:前面每起多少个线程的时候花5s,与上面结合起来即5s内起10个线程,运行30s,然后再再5s内再起10个线程,再运行30s,以此类推。
Then hold load for 60 seconds. :全部的线程起来后,运行60s 后开始停止(跟loadrunner类似,从jmeter聚合报告里面可以看出来,这里的hold load 的意思,其实是这些线程,一直在请求,相当于jmeter普通线程组里面的循环运行)。
Finally , stop 5 threads every 1 seconds:最后停止线程,5个线程停一次,等1s再停5个线程(当然,第一次是hold时间一过就先停5个线程,然后等1s再停余下的5个线程)。
介绍几个常用的逻辑控制器
JMeter中的Logic Controller分为两类:
a) 控制测试计划执行过程中节点的逻辑执行顺序,如:循环控制器(Loop Controller)、if控制器(If Controller)等;
b) 对测试计划中的脚本进行分组、方便JMeter统计执行结果以及进行脚本的运行时控制等,如:吞吐量控制器(Throughput Controller)、事务控制器(Transaction Controller)。 一、ForEach控制器(ForEach Controller)
作用:ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值。 二、包含控制器(Include Controller)
作用:用于引用外部的Jmx文件;从而控制多个测试计划组合 三、事务控制器(Transaction Controller)
作用: 事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。 四、仅一次控制器(Once Only Controller)
作用:在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器。 五、吞吐量控制器(Throughput Controller)
作用:控制其下的子节点的执行次数与负载比例分配,也有两种方式:
Total Executions:设置运行次数
Percent Executions:设置运行比例(1~100之间,不用写%)
如:设置线程组循环5次,吞吐量控制器1:百分比40,吞吐量控制器2:百分比60