標籤:
效能測試混合情境中,我們需要組合多個業務操作到情境中來。
比如有一個論壇的業務分布如下:
開新帖與回複文章的比例為2:3,
那麼我們在JMeter測試計劃中如何控制其比例呢?
下面我們介紹兩種方式:
1.多線程組方式
2.邏輯控制器控制
多線程組方式:
我們知道JMeter是用線程組來類比虛擬使用者的,JMeter還可以支援一個計劃中多個線程組。
利用這個特性我們可以把開新帖業務放在一個線程組中,回帖業務放在另外一個線程組中。
為了製造出業務量的比例關係,我們通過控制線程數來達到效果。如:
ReplayTopic為回帖線程組,添加90個線程;
SendTopic為開新帖線程組,添加60個線程,剛好是3:2
當然,這隻能是近似的,如果這兩個事務的回應時間不一樣,最終完成的業務數比例也會不一樣。
當前線程數是在假定兩個業務的回應時間一樣的情況下,所以這完全是理想狀況。
可以看出,這種方式控制並不完美。
下面我們用第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的比例。
轉載至:http://mp.weixin.qq.com/s?__biz=MjM5Mjg0MzMzMw==&mid=210023366&idx=2&sn=a6868ea94bb2c5794b99cc455ad5ee17&scene=1&srcid=09137Euoiki9ZPFcXyB6zzNY#rd
在JMeter測試計劃中如何控制業務比例