性能測試之jmeter邏輯控制種類詳解一

邏輯控制器介紹

Jmeter邏輯控制可以對元件的執行邏輯進行控制,除Once only Controller僅一次控制器以外,其他控制器都可以可以嵌套其他種類的控制器,下面是jmeter5.3支援的控制器種類,我們分別對其進行介紹

image-20200706212858333

Simple Controller

Simple Controller用來指定一個執行單元,他不改變元件的執行順序,主要作用是用來組織取樣器和其他的邏輯控制器

image-20200706213631746

簡單控制器只有名稱和注釋.

image-20200706214339999

比如說我們可以用它組織模組,在各個模組里在進行請求的發送,這樣看起來各模組比較獨立,好維護一些。

Include Controller

Include Controller用來導入外部的測試片段,這個片段並不是完整的測試計劃,導入的這個測試計劃是不能有執行緒組的,只能包含簡單的控制器以及控制器下的元件。相當於執行了封裝了業務操作到的單元,相當於將一些通用的功能邏輯封裝,在這裡進行調用。

image-20200706214848780

Runtime Controller

image-20200706214938796

用來控制器子元件的執行時長,單位是秒

Switch Controller

Switch Controller條件控制器,類似於程式語言里的switch語句

image-20200706215821739

比如由上圖的配置,Switch Controller下面有兩個java request,jmeter會給下面的java請求進行編號,第一個為0,第二個為1以此類推

image-20200706215954434

如果上面switch Value設置0,那麼第一個java request就會執行。如果指定的編號超出了控制器下面的節點數,或者沒有指定,則會默認運行第一個節點。

Switch Controller也可以指定取樣器的名稱,名稱匹配時大小寫以及空格都銘感,如果匹配不上則不運行取樣器。

While Controller

While條件控制器,其節點下的元件將一直運行知道while條件為false

image-20200706222310272

Condition:接受表達式與變數,還可以輸入常量,也就是jmeter內置的默認值

LAST:當循環前有取樣器失敗則不進入循環

BLANK:當循環中有取樣器失敗後停止

Otherwise:當判斷條件為false停止循環

Interleave Controller

Interleave Controller交替控制器,其節點下的取樣器會交替執行,

image-20200706224016477

image-20200706223911429

假設我們有如上的執行緒組和交替控制器的配置,執行緒組下面有一個請求3,交替控制器下面有請求1和請求2,執行緒組配置一個執行緒循環且循環三次,執行以下我們來看看請求的執行順序。

image-20200706224230102

循環三次,總共有六個請求發出,也就是說每一次循環會執行執行緒組下面的請求和交替控制器里的一個請求。

下篇文章我們將介紹剩餘的邏輯控制器

歡迎大家去 我的部落格 瞅瞅,裡面有更多關於測試實戰的內容哦!!