近日在使用JMeter編寫壓力測試腳本時,遇到一個情況:一個接口返回了了多條數據,每條數據都有不一樣的id,而下一個接口需要循環調用上一個接口返回的id字段的所有值。
下面就對此情況的腳本實現進行說明:
一、給第一個http請求添加后置處理器
正則處理器、json處理器等均可,下文以正則處理器為例:
正則處理器提取參數,並將匹配數字設為-1,即可提取到所有的id
二、添加循環控制器
循環次數改為${Id_matchNr},用正則提取器的變量名和_matchNr函數控制循環次數,使循環次數和id值的總數一致
三、循環控制器下增加第二個http請求,並自動更新每次http請求的圖片id值
在http請求的圖片id的參數值處填寫${__V(Id_${__counter(true,)})}
__V函數為連接函數;id是第一個http的正則提取器提取的變量名稱;_為連接符,用來連接變量名稱和計數器結果;__counter函數為計算器函數,True,確保每個虛擬用戶的計數器保持獨立,與其他用戶的計數器相區別。False則為全局計數器
四、添加監聽器察看結果樹、聚合報告等驗證結果
以上就是實現JMeter循環提取接口返回的某個字段的所有值的辦法。