Jmeter系列(37)- 詳解 ForEach控制器


如果你想從頭學習Jmeter,可以看看這個系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

前言

  • ForEach 控制器一般和用戶自定義變量/JDBC結果變量一起使用,用於可以遍歷讀取相關的返回值
  • 該控制器下的 Samplers 和控制器都會被執行一次或多次,每次讀取不同的變量值
  • ForEach 控制器和正則提取器是個好搭檔,因為正則提取出來的變量值會用_分隔,而 ForEach 可以省略 _ 

 

ForEach

 

ForEach 界面介紹

 

字段含義

字段 含義
Input Variable Prefix 輸入變量名的前綴,默認為一個空字符串作為前綴。
Start index for loop(exclusive)
  • 循環開始的索引
  • 不包括此值
  • 默認從 1 開始
  • 填 0 則起始索引是 1,填 1 則是 2
End index for loop(inclusive)
  • 循環結束的索引
  • 包括此值
  • 填 100 則結束索引是 100
Output variable
  • 輸出的變量名
  • 在后續循環中,samplers 可使用的變量名
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 字段的值提取出來

 

正則提取器

關於正則提取器更多知識點可看:https://www.cnblogs.com/poloyy/p/13179150.html

 

正則提取結果

我們要的其實是箭頭的那些,但是正則會提取不必要的字段值(如:mobile_new_11_g0),所以注意 ForEach 的輸入變量前綴要寫正確

 

ForEach

循環 100 次,輸入變量 mobile_new_1 - mobile_new_100 並輸出為 mobile_1 - mobile_100

 

運行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM