JMeter關聯是什麼
JMeter關聯,這幾個字看著可能會有點陌生,實際上卻是工作中經常會做的一件事情,尤其是介面自動化,它指的是把一個介面的響應作為另一個介面的引數,從而把介面關聯起來。
JMeter關聯是通過後置處理器來實現的,本文將介紹兩個主流提取器:正規表示式提取器和JSON JMESPath提取器。
正規表示式提取器
Name
最好有業務含義的名稱。
Comments
可以為空的註釋。
Apply to
匹配範圍。
Main sample and sub-samples
匹配當前父取樣器及其子取樣器。
Main sample only
僅匹配當前父取樣器。
Sub-samples only
僅匹配子取樣器。
JMeter Variable Name to use
匹配JMeter變數。
Field to check
匹配響應的欄位,共七個選項。
Body:主體,最常用。
Body(unescaped) :替換了所有的html轉義符的響應主體內容,注意html轉義符處理時不考慮上下文,因此可能有不正確的轉換,不太建議使用。
Body as a Document:從不同型別的檔案中提取文字,注意這個選項比較影響效能。
Response Headers:響應Headers。
Request Headers:請求Headers。
URL:請求URL。
Response Code:響應程式碼,比如200、404返回碼。
Response Message:響應資訊,比如“成功”、“OK”字樣。
Name of created variable
建立的變數名,比如變數名為token,通過${token}
進行訪問。
Regular Expression
正規表示式。
正規表示式可閱讀這篇文章進一步瞭解:https://dongfanger.gitee.io/blog/未分類/001-5分鐘輕鬆學正規表示式.html
Template($i$
where i is capturing group number, starts at 1)
用$$
引用起來,如果在正規表示式中有多個正規表示式(多個括號括起來的),則可以是$1$
、$2$
等等,$1$
指第一個模板,$2$
指第二個模板,依次類推,$0$
指全文匹配,$1$$2$
指同時取第一個和第二個模板。
Match No.(0 for Random)
在匹配時往往會出現多個值匹配的情況,如果匹配數為0則代表隨機取匹配值;可以用匹配數字來確定多個值中的哪一個;負數取所有值,可以與For Each Controller一起使用來遍歷。
Default Value
預設值,如果沒有匹配到可以指定一個預設值。
Use empty default value勾選後把空作為預設值,跟不填寫效果一樣。如果填寫了預設值同時勾選此選項,預設值仍然為空。
JSON JMESPath提取器
Name
最好有業務含義的名稱。
Comments
可以為空的註釋。
Apply to
匹配範圍。
Main sample and sub-samples
匹配當前父取樣器及其子取樣器。
Main sample only
僅匹配當前父取樣器。
Sub-samples only
僅匹配子取樣器。
JMeter Variable Name to use
匹配JMeter變數。
Name of created variable
建立的變數名,比如變數名為token,通過${token}
進行訪問。
JMESPath expressions
JMESPath表示式。
可以訪問官網進一步瞭解:https://jmespath.org/
Match No.(0 for Random)
在匹配時往往會出現多個值匹配的情況,如果匹配數為0則代表隨機取匹配值;可以用匹配數字來確定多個值中的哪一個;負數取所有值,可以與For Each Controller一起使用來遍歷。
Default Value
預設值,如果沒有匹配到可以指定一個預設值。
小結
本文首先介紹了JMeter關聯的概念,實際上指的就是把一個介面的響應作為另一個介面的引數,從而把介面關聯起來。然後分別以元件編輯區為內容,講解了JMeter關聯常用的兩個後置處理器:正規表示式提取器和JSON JMESPath提取器。
參考資料:
《全棧效能測試修煉寶典JMeter實戰》
https://blog.csdn.net/weixin_43507959/article/details/104068508
https://blog.csdn.net/doubledog1112/article/details/93480458