Jmeter多接口測試之參數傳遞


接口測試包含單接口測試和多接口測試,通過組合多個接口實現一組功能的驗證稱為多接口測試,單接口重在單個接口多種請求組合的響應斷言,多接口重在組合不同接口,實現流程的串聯和驗證。多接口測試涉及到接口之間參數的傳遞,比如AB兩個接口協同完成一個功能,A接口的響應要作為B接口的輸入,此處就需要用到Jmeter的關聯功能。本文提供兩個接口的串聯示例,展示如何應用Jmeter實現多接口的參數傳遞。

關聯就是把應用中動態變化的數據獲取到,將它保存為參數,提供給后面需要用到的地方進行使用,通過關聯可以實現多接口之間的參數傳遞。Jmeter常用兩種關聯組件:

  • 正則表達式提取器

  • Json Extractor

 

 

 

接口示例

 接口A:輸入用戶名,密碼創建用戶,返回新增用戶id

 接口B:輸入用戶id,用戶名,密碼等信息實現編輯用戶(B接口基於A接口返回的新增用戶id實現數據修改)

正則表達式提取器

正則表達式提取器是一種后置處理器,它可以通過正則的方式提取請求中的響應數據,Jmeter的正則表達式提取器有如下選項

 引用名稱:存儲匹配結果的變量名稱,可以是一個值也可以是一組值

 正則表達式:匹配的正則表達式,正則表達式里面可以有多個正則

 正則貪婪模式和非貪婪模式匹配:貪婪模式會盡可能多的匹配內容,非貪婪模式會盡可能少的匹配內容,貪婪模式和非貪婪模式的區別是在正則匹配后是否有?

 

 模板:正則表達式提取器類型,樣式為:$n$,模板可自由組合,拼接組成新的字符串內容。

 模板為$0$,則為整個表達式匹配到的內容;

 模板為:$1$,則對應正則表達式中的第一個小括號內()匹配的內容;

 模板為$2$,則對應正則表達式中的第二個小括號()匹配的內容;

 模板為$1$$2$,則把2個()所匹配的內容拼接起來,$1$aa$2$拼接兩個變量的內容,並在中間加上aa

 

 匹配數字:-1代表取全部數據,0代表隨機取值,1代表取第1個數據,2代表取第2個數據

 缺省值:找不到匹配時的值

正則表達式提取實例

獲取接口A的響應報文

 

 

 

基於Jmeter正則表達式提取器編寫如下所示后置處理器,提取出響應報文的id

 

 通過debugSampler查看變量的提取結果

 

 在接口B(修改用戶)中使用接口A返回(新增用戶)的參數

 

 
Json提取器

Json提取器是一種后置處理器,它可以通過解析Json報文的方式提取請求中的響應數據,Jmeter的Json提取器有如下選項

 變量名:存儲提取的變量名字

 Json Path Expressions:Json Path 表達式

 Match Numbers: 匹配的數量,0代表隨機獲取,1代表獲取第1個數據,-1代表獲取所有數據

 Compute concatenation var (suffix_ALL):是否統計所有,即將匹配到的所有值保存為變量_ALL。

 Default Values: 沒有匹配值時的提示信息

Json Extractor 提取到的值會存儲在變量里,使用方法和普通變量一樣,通過${}引用Json Extractor 的變量即可。Json Extractor存儲的變量名是基於提取器中變量名稱擴展的,建議通過添加DebugSampler獲取Json Extractor實際存儲值的變量名。

Json提取器實例

獲取接口A的響應報文

 

 

基於Jmeter Json提取器編寫如下所示后置處理器,提取出響應報文的id

 

 

 通過debugSampler查看變量的提取結果

 

 

在接口B(修改用戶)中使用接口A返回(新增用戶)的參數

 

 

 通過上述示例可以看到,正則表達式提取器和Json提取器的處理流程是一致的,只是提取方式不同。Jmeter通過添加相應的后置處理器可以解析到請求的返回結果,並且存儲為參數供后續接口使用,通過這種方式實現多請求的參數傳遞,從而實現接口的串聯測試。

 


免責聲明!

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



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