jmeter壓測學習46-邏輯控制器之While控制器
前言
迴圈控制器可以設定永遠迴圈和迴圈次數,缺少條件判斷。While控制器可以在迴圈的基礎上加判斷,當條件為false的時候跳出迴圈。
While控制器
執行緒組-新增-邏輯控制器-While控制器
Condition (function or variable) 可以是條件(函式或變數)。條件為 Flase 的時候,才會跳出 While 迴圈,否則一直執行 While 控制器下的樣例
- 表示式為空 一直執行
- 表示式為true 一直執行
- 表示式為false 則跳出迴圈
- 表示式結果不是true或false 就一直執行,所有需要用
__jexl3()
函式轉成true或false
Condition 條件
1.如果Condition 條件為空,當 While 控制器下最後一個樣例執行失敗後,跳出迴圈
在While控制器新增一個HTTP請求
那麼會一直請求,除非這個請求報錯(最後一個樣例執行失敗)才會停止
在While控制器新增多個HTTP請求,只有最後一個請求報錯才會停止(注意是最後一個)
While控制器有請求A, 請求B,請求C,當請求B和A報錯都不會停止,當最後一個請求C報錯就停止了
- 如果Condition 條件輸入LAST ,功能是 While 控制器 前一個樣例執行失敗,則不會進入While迴圈,也就是不會執行While控制器下的樣例。
當我們在While控制器 前面新增一個請求,如果這個請求是成功的,那麼進入wihle迴圈,跟上面Condition 條件為空是一樣的(最後一個報錯退出迴圈)
如果 While 控制器前一個樣例執行失敗,則不會進入While迴圈,接下來故意讓前面的請求失敗
Condition 為true或false
1.當表示式為true, 會一直執行,不管最後一個是不是失敗都會一直迴圈
2.當表示式為false, 不執行 While 控制器
3.也可以藉助函式助手,生成__jexl3()
或__groovy()
函式轉成true或false,參考前面如果(If)控制器
4.不用函式,直接用變數也可以:"${user}"=="admin"
Condition 表示式結果不是true或false
如果Condition 表示式結果不是true或false,就一直執行,比如我這裡引用變數${user}, 它的結果是"admin"
表示式結果不是true或false,就一直執行, 直到結果為false就退出迴圈。
總結:記住兩點:1、進入while迴圈的條件,是前一個取樣器執行成功;2、while迴圈停止,是false或者最後一個取樣器報錯才會停止。
轉載:https://www.cnblogs.com/yoyoketang/p/14282669.html