JMeter筆記:前置處理器-BeanShell預處理程式
阿新 • • 發佈:2022-03-06
本篇用個簡單的例子記錄下前置處理器-BeanShell預處理程式的用法。
測試流程
1、請求userInfo介面,介面會返回多個user資訊,我們需要用返回結果中提取全部userName。
userInfo介面返回引數格式如下:
{ "code":"0", "message":"success", "data":[ { "id":0, "userName":"使用者0", "password":null, "age":0, "gender":0, "phoneNum":"13788881111", "email":"[email protected]", "address":"蘇州市蘇州中心", "createTime":"2022-03-06T03:24:19.701+0000", "updateTime":"2022-03-06T03:24:19.701+0000" }, { "id":1, "userName":"使用者1", "password":null,"age":79, "gender":0, "phoneNum":"13788881039", "email":"[email protected]", "address":"蘇州市蘇州中心", "createTime":"2022-03-06T03:24:19.701+0000", "updateTime":"2022-03-06T03:24:19.701+0000" }, { "id":2, "userName":"使用者2", "password":null, "age":25, "gender":0, "phoneNum":"13788881544", "email":"[email protected]", "address":"蘇州市蘇州中心", "createTime":"2022-03-06T03:24:19.701+0000", "updateTime":"2022-03-06T03:24:19.701+0000" }, { "id":3, "userName":"使用者3", "password":null, "age":81, "gender":0, "phoneNum":"13788881127", "email":"[email protected]", "address":"蘇州市蘇州中心", "createTime":"2022-03-06T03:24:19.701+0000", "updateTime":"2022-03-06T03:24:19.701+0000" }, { "id":4, "userName":"使用者4", "password":null, "age":94, "gender":0, "phoneNum":"13788881039", "email":"[email protected]", "address":"蘇州市蘇州中心", "createTime":"2022-03-06T03:24:19.701+0000", "updateTime":"2022-03-06T03:24:19.701+0000" } ] }
2、將第一步獲取的userName遍歷登入login一遍,需要替換請求引數中的userName值。
login介面請求引數如下:
{ "userName": "admin", "password": 123456 }
指令碼編寫
1、userInfo介面下新增json提取器來提取userName,同時新增除錯取樣器方便檢視取樣變數值
2、執行指令碼,檢視結果樹,檢視除錯取樣器的響應結果
從取樣器結果來看,userName取出來10個值,userName_matchNr=10且變數名分別為userName_1、userName_2、userName_3......userName_10
3、新增迴圈控制器,迴圈控制器下新增login請求
迴圈次數填寫變數名${userName_matchNr},不管userInfo介面返回多少個使用者資訊,保證每個使用者登入一次。
4、從第2步除錯取樣器的結果來看,指令碼執行的時候我們需要用userName_1、userName_2、userName_3......userName_10替換下login請求引數中userName。
這時候我們就需要新增前置處理器,這裡新增BeanShell預處理如下:
5、執行指令碼,結果如下,userInfo介面返回10個使用者資料,login用這10個使用者名稱依次請求login介面