【Jmeter】之批量處理多接口壓力測試


 

 

 

一、需求前提

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提取器應用*****

 


免責聲明!

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



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