1. 程式人生 > >Jmeter分離登錄事務的另一種方式

Jmeter分離登錄事務的另一種方式

翻譯 png loop 接口 proc bsp determine ESS 永遠

最近,遇到了一個困擾很多人的問題。

情景如下:

  業務流程:登錄一個網站,反復進行充值。

  通常的做法是使用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分離登錄事務的另一種方式