简介
当我们在应对某些性能需求时,比如要求测试单个业务串行或并行的响应时间。如果直接设定线程组+业务的话,jmeter 会将某个线程组下面的全部业务一起执行,在这种情况下的响应时间是不符合要求的,所以需要勾选指定参数或设置其他组件。
下面使用测试数据库的例子,测试WEB程序也是同理。
文章目录如下
1. 业务串行顺序运行
2. 单个业务顺序并发
3. 总结
1. 业务串行顺序运行
我们平时习惯性直接在测试计划中添加线程组、业务,如下:
如上图可以看到业务并不是按照我们的顺序排队执行的
如果希望让其排队执行也很简单,勾选《测试计划》 "独立运行每个线程组"
再来看看执行结果
勾选测试计划选项后按顺序执行
2. 单个业务顺序并发
还是使用前面串行的例子,将线程组设置100个并发,结果如下:
- 两个线程组是按顺序执行的,但是线程组中的业务却是同时运行。
如果客户要求查看某个小功能的并发响应时间,上面的这种情况肯定是不符合要求的,因为线程组中小业务越多,实际并发也就越多,这是非常消耗硬件资源的,响应时间会比预期更慢。解决的方式有3种:
- 手动将业务一个一个的执行(效率太低);
- 将每个业务单独配置一个线程组(太麻烦);
- 使用同步定时器让其顺序执行(推荐)。
使用第3种方法,需要配置两个组件:同步定时器、固定定时器
同步定时器用户组数量配置与线程组一样
固定定时器线程延迟配置为0
看一下最终结果
每个并发业务按顺序执行
3. 总结
如果只是顺序执行单个业务,那么勾选《测试计划》中 "独立运行每个线程组" 选项即可。
如果需要顺序并发执行某个业务,需要勾选《测试计划》中 "独立运行每个线程组" 选项,并且增加定时器:同步定时器、固定定时器。如果所有线程组的线程数都一样,那么这2个定时器放在与线程组同级即可;如果每个线程组的线程数不一样,那么需要在这些线程组下面都添加2个定时器。
注意:这种方法仅用于循环1次的测试,如果是无限循环,且指定测试时长:
按上述配置,JMeter 会先将第1个线程组执行完成10秒后再执行下一个线程组,并且线程组中的业务会同时进行