平時測試中經常會遇到需要測試混合場景的壓測需求,那么混合場景如何去實現精准控制業務比例呢,網上有許多方法,其中一個比例控制最准確,干貨如下:
- 線程組結構如下:
- 添加邏輯控制器(說明 本人使用的 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 進行舉報,並提供相關證據,一經查實,本社區將立刻刪除涉嫌侵權內容。