『動善時』JMeter基礎 — 17、JMeter配置元件【HTTP請求預設值】

繁華似錦Fighting發表於2021-05-22

1、HTTP請求預設值介紹

我們在JMeter中編輯測試計劃時,如果有多個Sampler(取樣器)請求中,引數和設定都是相同的,例如請求服務的IP地址、協議、埠號等,這些資訊重複的配置在每個Sampler中,就會增加重複工作量和冗餘度,如果以後專案伺服器地址發生改變,修改起來也是非常麻煩的。

HTTP請求預設值(Http Request Defaults)這個配置元件,可以將這些重複的配置都放在一起,其他的Sampler請求元件就不需要再配置這些重複的內容,那麼只要將這些資訊留空,這個欄位將自動繼承HTTP請求預設值元件中的值,達到了一次配置重複呼叫的效果。

2、HTTP請求預設值介面

配置元件中的HTTP請求預設值HTTP Request Defaults)介面,和取樣器中HTTP請求(HTTP Request)基本相同。

新增HTTP請求預設值元件:選中“執行緒組”右鍵 —> 新增 —> 配置元件 —> HTTP請求預設值

介面如下圖所示:

image

提示:因為HTTP請求預設值元件的介面和HTTP請求元件的介面基本相同,所以在這裡就不進行說明了。如果想檢視HTTP請求預設值元件介面的詳細說明,請看前面取樣器的相關部落格:文章直達

3、HTTP請求預設值的使用

(1)用於演示的專案說明

Httpbin是一個使用Python + Flask編寫的HTTP Request & Response Service專案,該服務主要用於測試 HTTP庫,你可以向他傳送請求,然後他會按照指定的規則將你的請求返回(檢視你所傳送請求中的資訊)。

Httpbin支援HTTP/HTTPS請求,支援所有的HTTP動詞,能測試HTTP請求和響應的各種資訊,比如 cookieipheaders 和登入驗證等。

Httpbin介面地址:http://httpbin.org/

提示:按照規則請求http://httpbin.org/,會返回傳送請求報文的完整內容。

具體可檢視https://www.cnblogs.com/liuyuelinfighting/p/14788860.html文章,有詳細說明。

(2)測試計劃內包含的元件

新增元件操作步驟

  1. 建立測試計劃。
  2. 建立執行緒組:選中“測試計劃”右鍵 —> 新增 —> 執行緒(使用者) —> 執行緒組
  3. 線上程組中,新增配置元件"HTTP請求預設值"元件:選中“執行緒組”右鍵 —> 新增 —> 配置元件 —> HTTP請求預設值
  4. 線上程組裡面,新增取樣器“HTTP請求”元件:選中“執行緒組”右鍵 —> 新增 —> 取樣器 —> HTTP請求
  5. 線上程組裡面,新增監聽器“察看結果樹”元件:檢視結果,選中“執行緒組”右鍵 —> 新增 —> 監聽器 —> 察看結果樹

最終測試計劃中的元件如下:

image

點選執行按鈕,會提示你先儲存該指令碼,指令碼儲存完成後會直接自動執行該指令碼。

(3)說明HTTP請求預設值用法

我們需要把每個請求的公共引數,提取到HTTP請求預設值元件中。

如下圖所示:

image

然後在每個請求的元件中,編輯自己獨有的資訊即可。

例如,編寫每個請求中獨有的訪問路徑,和所需的傳遞引數等。

如下圖所示:

image

而在HTTP請求預設值元件中配置的引數,在這裡都不用重複填寫,留空就可以,會自動的繼承HTTP請求預設值元件中的配置。

如果此時請求取樣器中填寫了和HTTP請求預設值元件中配置相同的選項,則以當前取樣器的配置為準。

(其他請求同理)

4、總結

配置元件中的HTTP請求預設值HTTP Request Defaults)介面,和取樣器中HTTP請求(HTTP Request)基本相同,所以該元件可以為HTTP請求設定預設值。

優先順序說明

  1. JMeter支援在一個測試計劃中新增多個HTTP請求預設值元件,多個HTTP請求預設值元件中的值會合併疊加。
  2. 在相同作用域內,若有多個HTTP請求預設值元件,如果配置了相同的選項,預設使用第一個HTTP請求預設值元件中定義的資訊。

5、擴充知識

這裡我們擴充一下配置元件中使用者定義的變數User Defined Variables)元件的用法。

使用者定義的變數元件和HTTP請求預設值元件的用法基本一樣。

  • HTTP請求預設值元件:管理測試計劃中相同的請求配置,作用域範圍內的sample請求無需重複配置。
  • 使用者定義的變數元件:管理測試計劃中不相同的請求配置,其他的Sample請求直接引用變數即可,方便對變數的統一管理。

參考:https://blog.csdn.net/m0_38039437/article/details/104112804

相關文章