Jmeter多业务混合场景设置并发数(非GUI模式)
性能测试设计混合场景,一般有几种方式,分别是:
-
1.每个场景设置一个线程组
-
2.使用if控制器
-
3.使用吞吐量控制器
以上每种方法的运行原理都不同,大致上来说;
第一种因为响应时间的差异。因为平均响应时间相差较大,可能会但最后并发的次数与预期差异
第二种采用随机数,相比之下并发比例与预期还会存在一定差异(可以接受)
第三种吞吐量控制器,比例控制得非常准确,但是会先把A接口运行完成后,再运行B接口,感觉有点不舒服。但说不上是否合理
以下用第二种方式举例
1.编写测试脚本
1.1组件如下:
- 线程组
- 用户定义变量
- 随机变量
- 如果(if)控制器
- HTTP请求1
- 如果(if)控制器
- HTTP请求2
- 聚合报告
1.1.2 线程组:
线程数:${__P(threadNum,120)}
默认120次,可接受参数
循环次数:${__P(cycles,15)}
默认15次 ,可接受参数
1.1.3 用户定义的变量
名称:threadNums
值:${__P(threadNum,100)}
加上这个方法后,在其他控件就可以获取运行时传过来的值
1.1.4 随机变量
添加:配置原件>随机变量
变量名:num
最大值:${threadNums}
这里就能获取到运行脚本时传过来的线程数
1.1.5 如果(if)控制器
条件:${num}<${threadNums}*0.25
解释:如果随机数<线程数 乘以 0.25 就运行下面的接口
反之同理,如果随机数大于则运行其他接口(这样就能控制2个接口的并发量)
2.结果:
参考:http://www.sohu.com/a/327048499_100011803