jmeter 不同场景 比例_在JMeter测试中如何根据业务场景来控制运行比例
性能測試混合場景中,我們需要組合多個業務操作到場景中來。
比如有一個論壇的業務分布如下:
開新帖與回復帖子的比例為2:3,
那么我們在JMeter測試計劃中如何控制其比例呢?
下面我們介紹兩種方式:
1.多線程組方式
2.邏輯控制器控制
多線程組方式:
我們知道JMeter是用線程組來模擬虛擬用戶的,JMeter還可以支持一個計劃中多個線程組。
利用這個特性我們可以把開新帖業務放在一個線程組中,回帖業務放在另外一個線程組中。
為了制造出業務量的比例關系,我們通過控制線程數來達到效果。如下圖:
ReplayTopic為回帖線程組,添加4個線程;
SendTopic為開新帖線程組,添加1個線程,剛好是4:1
當然,這只能是近似的,如果這兩個事務的響應時間不一樣,最終完成的業務數比例也會不一樣。
當前線程數是在假定兩個業務的響應時間一樣的情況下,所以這完全是理想狀況。
可以看出,這種方式控制并不完美。
下面我們用第2種方式:
控制器控制
下圖是一個IF控制器,IF控制器可以使用表達式來做為條件,這樣我們事以獲取迭代次數來決定
是回帖還是開帖,比如一共3次迭代,第1次與第3次迭代時開新帖,1,2,3次迭代都會進行回帖
接下來我們就要獲取迭代次數,JMeter函數助手提供了一個__counter函數,可以用來獲取當前的
迭代次數。
好,我們思路有了,迭代次數也能獲取到,那如何保持3:2的比例呢?這就是一個數學問題了。
不賣觀子,直接上代碼:
${__counter(true,)}%2==1||${__counter(true,)}%3==0
上面__counter(true,)是獲取當前迭代次數,%是取余,也就是除2余1與3整除時執行開新帖。
以9次迭代為例,回帖9次,1,3,5,6,7,9 次迭代時都會開新帖,回剛好是6次
9:6=3:2
基本上保護了3:2的比例。
總結
以上是生活随笔為你收集整理的jmeter 不同场景 比例_在JMeter测试中如何根据业务场景来控制运行比例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言二维数组找出交集,【leetcod
- 下一篇: seaborn画图设置横纵坐标标签