性能测试总结-jmeter经验总结1-混合场景业务比例精准控制

平时测试中经常会遇到需要测试混合场景的压测需求,那么混合场景如何去实现精准控制业务比例呢,网上有许多方法,其中一个比例控制最准确,干货如下:

  • 线程组结构如下:
    性能测试总结-jmeter经验总结1-混合场景业务比例精准控制

  • 添加逻辑控制器(说明 本人使用的 jmeter版本为5.0)
    第一个逻辑里面的条件 填写 ${__jexl3(${__counter(true,)}%10!=0,)}

性能测试总结-jmeter经验总结1-混合场景业务比例精准控制
第二个逻辑里面的条件填写 ${__jexl3(${__counter(true,)}%10==0,)}

性能测试总结-jmeter经验总结1-混合场景业务比例精准控制

  • 执行原理分析
    线程组里的每个线程,会生成一个类似java里的iterator的迭代器,第一次迭代iterator值为1

如上所设置的条件,为1时满足第一个逻辑,此时执行逻辑1里的sampler,第二次迭代iterator值为2,同样满足逻辑1
类推...
第十次迭代iterator值为10,满足逻辑2,执行逻辑2里的sampler
以上实现精准控制9:1 的比例


  • 题外 3:1:1如何实现(以图为准,展示不了如图效果,我姿势不对???)?
    性能测试总结-jmeter经验总结1-混合场景业务比例精准控制

${__jexl3(${__counter(true,)}%5==0,)}
${__jexl3(${__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,)}
                多条件实例:
                      ${__jexl3(${__counter(false,)}%10000>9887 && ${__counter(false,)}%10000<=9999,)}

注意:多条件实例时,不要勾选 evaluate for all children,可能会导致不精准
性能测试总结-jmeter经验总结1-混合场景业务比例精准控制

上一篇:百万长连接压测问题排查分析


下一篇:如何借助配置中心ACM加速企业IT服务快速迭代