平时测试中经常会遇到需要测试混合场景的压测需求,那么混合场景如何去实现精准控制业务比例呢,网上有许多方法,其中一个比例控制最准确,干货如下:
- 线程组结构如下:
- 添加逻辑控制器(说明 本人使用的 jmeter版本为5.0)
第一个逻辑里面的条件 填写 {__jexl3({__jexl3({__counter(true,)}%10!=0,)}
第二个逻辑里面的条件填写 {__jexl3({__jexl3({__counter(true,)}%10==0,)}
- 执行原理分析
线程组里的每个线程,会生成一个类似java里的iterator的迭代器,第一次迭代iterator值为1
如上所设置的条件,为1时满足第一个逻辑,此时执行逻辑1里的sampler,第二次迭代iterator值为2,同样满足逻辑1
类推...
第十次迭代iterator值为10,满足逻辑2,执行逻辑2里的sampler
以上实现精准控制9:1 的比例
- 题外 3:1:1如何实现(以图为准,展示不了如图效果,我姿势不对???)?
{__jexl3(${__counter(true,)}%5==0,)}{__jexl3(${__counter(true,)}%5==0,)}{__jexl3({__counter(true,)}%5==1,)}{__counter(true,)}%5==1,)}{__jexl3(${__counter(true,)}%5>1,)}
- 其他
表达式支持:
== 是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1 != 不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1 ! 非,如${__jexl3(!(${VAR}!=1),)}对${VAR}!=1的结果取反 &&或|| 且与或,如 ${__jexl3(${VAR}==1 && ${name} != "heima",)} > 或者>== 大于等于,如${__jexl3(${count}>=10,)}
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:
yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。