一、需求前提
1、有以下三個步驟:
①創建單據
②審核單據
③確認單據
讓三個相關接口進行一連串批量請求操作,直到所有批量數據確認單據成功。
二、測試計划
需要說明的是,因為每個接口可能處理的不太一樣,所以不能把所有的HTTP接口請求都放到一個線程組里,需要創建多個線程組。需要勾選一個選項,否則所有的接口串聯不起來。
三、線程組
根據需求分析,創建三個線程組
1、創建單據線程組
目錄結構如下:
①HTTP信息頭管理器
需要添加信息頭:
Authorization 【token】
token如何獲取,通過F12或者抓包工具,隨意請求一個接口獲取token
②CSV 數據文件設置
- 【變量名稱】:通過讀取CSV文件,獲取每一個參數變量的值
- 【文件名】:導入CSV文件的路徑
其他的不變
④HTTP請求
請求參數里換成${XXX}變量寫法,對應CSV文件設置。
其他參數一一對應填寫進去。
⑤監聽器
添加結果樹和聚合報告,獲取其他
2、審核單據線程組
目錄結構如下:
①HTTP信息頭管理器
同上操作
②HTTP請求
通過上面的目錄可知有兩個請求,是因為審核接口的時候“order_ids”是獲取列表數據的id,所以需要查詢接口獲取到列表id的值,然后兩個接口互相傳送
查詢接口會查出來多條數據,但是如何提取每一條數據的id呢,先把結果樹選擇“JSON Path Tester”,然后再在“JSON Path Expression”里進行查詢測試,輸入【$.data[*]..id】
$.data[*]..id,代表的意思是
.代表一層結構
data[*]代表所有data參數
..id代表兩層下的id
返回結果值:Result[index] = id號
③JSON提取器
④調試后置處理程序
加上這個元件,請求接口后還有一個結果樹生成,調試的結果
⑤循環控制器
把上面的調試參數放到循環控制器中,代表獲取循環的次數
最后把“id_XXX”的值循環傳入請求參數中
${__V(id_${__counter(,)},)}
【轉】因為要把JSON提取器中匹配到的id_1,....id_22循環傳遞給“用戶流水記錄”,
__counter為jmeter自帶的一個計數函數,${__counter(,)}引用這個函數,每運行1次+1,從1開始;
id_${__counter(,)}運行第1次id_1,運行第2次id_2,以此類推,直到運行到循環次數id_22
__V為jmeter自帶的一個嵌套變量函數,運行第1次id_${__counter(,)}為id_1,${__V(id_${__counter(,)},)}則為${id_1},值80;以此類推,一直循環到${id_22}
參考文章《Jmeter之JSON提取器應用》
3、確認單據線程組
跟“2、審核單據線程組”同理。
最終結構如下:
四、附錄
①感謝:老陳酒~~的《jmeter之多個線程組順序執行操作》***
②感謝:豆姐姐 的《Jmeter之JSON提取器應用》*****