Jmeter多接口測試之參數傳遞

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

關聯就是把應用中動態變化的數據獲取到,將它保存爲參數,提供給後面須要用到的地方進行使用,經過關聯能夠實現多接口之間的參數傳遞。Jmeter經常使用兩種關聯組件:測試

  • 正則表達式提取器spa

  • Json Extractordebug

 

 

 

接口示例blog

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

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

正則表達式提取器io

正則表達式提取器是一種後置處理器,它能夠經過正則的方式提取請求中的響應數據,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經過添加相應的後置處理器能夠解析到請求的返回結果,而且存儲爲參數供後續接口使用,經過這種方式實現多請求的參數傳遞,從而實現接口的串聯測試。

相關文章
相關標籤/搜索