JMeter關聯陌生又熟悉

自動化程式碼美學發表於2021-05-15

JMeter關聯是什麼

JMeter關聯,這幾個字看著可能會有點陌生,實際上卻是工作中經常會做的一件事情,尤其是介面自動化,它指的是把一個介面的響應作為另一個介面的引數,從而把介面關聯起來

JMeter關聯是通過後置處理器來實現的,本文將介紹兩個主流提取器:正規表示式提取器和JSON JMESPath提取器。

正規表示式提取器

image-20210510205412542

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提取器

image-20210510205427584

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

相關文章