Jmeter分離登錄事務的另一種方式
最近,遇到了一個困擾很多人的問題。
情景如下:
業務流程:登錄一個網站,反復進行充值。
通常的做法是使用jmeter對登錄和充值的接口進行反復的執行:
但是實現的方法卻不能完美的貼合業務流程。
並且,在進行壓測的時候,總不可能把登錄接口也一起壓了吧,因此,就需要用到jmeter的邏輯控制器了。
邏輯控制器
那啥是邏輯控制器呢?
Jmeter官網對邏輯控制的解釋是:Logic Controllers determine the order in which Samplers are processed。
翻譯一下:邏輯控制可以控制采樣器(samplers)的執行順序。
那麽,Show time!!!
1、線程組->添加->邏輯控制器->僅一次控制器
ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Once Only Controller
概念:測試計劃執行期間,該控制器下的子結點對每個線程只執行一次
2、在僅一次控制器下添加接口請求
到此,實現登錄接口的一次運行
(ps:由圖可見,登錄接口是在僅一次控制器下面的)
3、線程組->添加->邏輯控制器->循環控制器
ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Loop Controller
概念:指定其子節點運行的次數,可以使用具體的數值(如下圖,設置為4次),也可以使用變量
4、在循環控制下添加充值請求
並設置循環次數,到此,即實現了登錄一次卻循環執行了多次充值接口的目的。
(ps:由圖可見,充值接口是在循環控制器下面的)
5、運行察看結果樹,完美!
重點
重點來了,老師敲黑板了啊!
循環控制器:
1、永遠選項:勾選上這一項表示一直循環下去
2、如果同時設置了線程組的循環次數和循環控制器的循環次數,那循環控制器的下面的接口運行的次數為兩個數值相乘的結果。
僅一次控制器:
將僅一次控制器作為循環控制器的子節點,僅一次控制器在每次循環的第一次叠代時均會被執行。
Jmeter分離登錄事務的另一種方式