Jmeter多介面測試之引數傳遞

2021-09-27 03:55:19 字數 2374 閱讀 3319

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

關聯就是把應用中動態變化的資料獲取到,將它儲存為引數,提供給後面需要用到的地方進行使用,通過關聯可以實現多介面之間的引數傳遞。jmeter常用兩種關聯元件:

正規表示式提取器

介面示例

介面a:輸入使用者名稱,密碼建立使用者,返回新增使用者id

正規表示式提取器

正規表示式提取器是一種後置處理器,它可以通過正則的方式提取請求中的響應資料,jmeter的正規表示式提取器有如下選項

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

正規表示式:匹配的正規表示式,正規表示式裡面可以有多個正則

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

模板:正規表示式提取器型別,樣式為:n

nn,模板可自由組合,拼接組成新的字串內容。

模板為0

00,則為整個表示式匹配到的內容;

模板為:1

11,則對應正規表示式中的第乙個小括號內()匹配的內容;

模板為2

22,則對應正規表示式中的第二個小括號()匹配的內容;

模板為1112

22,則把2個()所匹配的內容拼接起來,1

11aa2

22拼接兩個變數的內容,並在中間加上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通過新增相應的後置處理器可以解析到請求的返回結果,並且儲存為引數供後續介面使用,通過這種方式實現多請求的引數傳遞,從而實現介面的串聯測試。

作  者:testfan kitty

jmeter介面測試之引數化處理

使用jmeter進行介面自動化時,輸入引數可以進行引數化 1 引數化 資料檔案 1 準備好資料檔案,可以是txt csv ini格式檔案 2 給指令碼新增 csv資料檔案設定 新增 配置元件 csv資料檔案設定 設定如下 引數名稱 如 有幾列引數,在這裡面就寫幾個引數名稱,每個名稱中間用分隔符分割,...

JMeter介面測試 引數化

對應qq群號 616961231 簡介 環境 mac os home 目錄類似windows 的自建目錄 如 d test id.txt 上篇內容介紹了jmeter的基本使用,略微提了如何做引數化,本篇對引數化做進一步深入講解.jmeter大概有以下幾種引數化方法 引數化方式 使用場景 1user ...

jmeter單介面和多介面測試

路漫漫其修遠 最近接觸到了多介面串聯,介面串聯的技術會在其他帖子有說明,其核心技術點就是通過正規表示式和變數來實現介面的關聯。目前為止呢筆者用到的地方還只有乙個,就是關於session保持的時候。但是看到很多資料都說測試過程中經常遇到b介面需要用a介面的返回資料,但是筆者到目前都沒怎麼遇到過,思來想...