1. 程式人生 > >JMeter性能測試中控制業務比例

JMeter性能測試中控制業務比例

表達 整除 控制 strong 條件 style 兩個 logs 使用

性能測試混合場景中,我們需要組合多個業務操作到場景中來。
比如有一個論壇的業務分布如下:
發布新帖與回復帖子的比例為2:3,
那麽我們在JMeter測試計劃中如何控制其比例呢?

可以通過以下兩種方式解決:
多線程組方式

邏輯控制器控制

多線程組方式:

JMeter是用線程組來模擬虛擬用戶的,JMeter支持一個計劃中多個線程組。
利用這個特性我們可以把發布新帖業務放在一個線程組中,回帖業務放在另外一個線程組中。
通過控制線程數來達到需求的業務量的比例關系。

回帖線程組,添加90個線程;
發布新帖線程組,添加60個線程,剛好是3:2。

但,,,這只能是近似的,如果這兩個事務的響應時間不一樣,最終完成的業務數比例也會不一樣。

當前線程數是在假定兩個業務的響應時間一樣的情況下,所以這完全是理想狀況。
所以,這種方式控制並不完美。

控制器控制:

如果(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性能測試中控制業務比例