Jmeter系列(37)- 詳解 ForEach控制器
- 2020 年 7 月 3 日
- 筆記
- Jmeter, 測試高級進階技能系列 - Jmeter
如果你想從頭學習Jmeter,可以看看這個系列的文章哦
//www.cnblogs.com/poloyy/category/1746599.html
前言
- ForEach 控制器一般和用戶自定義變數/JDBC結果變數一起使用,用於可以遍歷讀取相關的返回值
- 該控制器下的 Samplers 和控制器都會被執行一次或多次,每次讀取不同的變數值
- ForEach 控制器和正則提取器是個好搭檔,因為正則提取出來的變數值會用_分隔,而 ForEach 可以省略 _
ForEach
ForEach 介面介紹
欄位含義
欄位 | 含義 |
---|---|
Input Variable Prefix | 輸入變數名的前綴,默認為一個空字元串作為前綴。 |
Start index for loop(exclusive) |
|
End index for loop(inclusive) |
|
Output variable |
|
Add」_」before number |
|
ForEach 結合用戶自定義變數的栗子
執行緒組樹結構
執行緒組,只有一個執行緒
用戶自定義變數
一共有四個
ForEach
前綴為 name 的有四個變數,所以循環四次
運行結果
如果輸出變數名稱為空,需要怎麼取循環的值?
直接取空即可 ${}
ForEach 不勾選 Add」_」before number 的栗子
執行緒組樹結構
用戶自定義變數
ForEach
運行結果
ForEach 結合 JDBC Request 的栗子一
執行緒組樹結構
JDBC 運行結果
JDBC 一共返回 100 條數據,這裡我們是通過 Variable names 去接住所有數據,對應有 100 個變數(mobile_1 到 mobile_100)
ForEach
循環 100 次,輸入變數 mobile_1 – mobile_100 並輸出為 new_mobile_1 – new_mobile_100
運行結果
ForEach 結合 JDBC Request 的栗子二
執行緒組樹結構
JDBC 運行結果
- 這裡通過 Result Variable name 去接住所有數據,只有一個變數,是無法循環的
- 所以我們需要通過正則提取器將需要的 mobile 欄位的值提取出來
正則提取器
關於正則提取器更多知識點可看://www.cnblogs.com/poloyy/p/13179150.html
正則提取結果
我們要的其實是箭頭的那些,但是正則會提取不必要的欄位值(如:mobile_new_11_g0),所以注意 ForEach 的輸入變數前綴要寫正確
ForEach
循環 100 次,輸入變數 mobile_new_1 – mobile_new_100 並輸出為 mobile_1 – mobile_100
運行結果