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次 ,可接受参数

Jmeter多业务混合场景设置并发数(非GUI模式)

1.1.3 用户定义的变量

名称:threadNums
值:${__P(threadNum,100)}
加上这个方法后,在其他控件就可以获取运行时传过来的值
Jmeter多业务混合场景设置并发数(非GUI模式)

1.1.4 随机变量

添加:配置原件>随机变量
变量名:num
最大值:${threadNums} 这里就能获取到运行脚本时传过来的线程数
Jmeter多业务混合场景设置并发数(非GUI模式)

1.1.5 如果(if)控制器

条件:${num}<${threadNums}*0.25
解释:如果随机数<线程数 乘以 0.25 就运行下面的接口
反之同理,如果随机数大于则运行其他接口(这样就能控制2个接口的并发量)

Jmeter多业务混合场景设置并发数(非GUI模式)

2.结果:

Jmeter多业务混合场景设置并发数(非GUI模式)

参考:http://www.sohu.com/a/327048499_100011803