『動善時』JMeter基礎 — 16、JMeter配置元件【HTTP信息頭管理器】


JMeter提供了豐富的配置元件,常用的包括參數化配置元件、HTTP請求默認值、HTTP信息頭管理器、計數器等,這些配置元件用於設置默認值和變量,提供給后面的sampler(取樣器)使用。

提示:本文同時演示了,使用消息體數據選項頁,配置Post請求的參數。

1、用於演示的項目說明

我們使用JMeter發送Post請求,以學院管理系統項目為例。

接口文檔如下:

學院-新增
    1) 請求方法:POST
    2) 請求地址:http://127.0.0.1:8000/api/departments/
    3) 請求JOSN報文:(需要Content-Type=application/json)
    4) 調用傳入的json串如下(可新增多條,之間用,隔開):
        {
            "data": [
                    {
                        "dep_id":"T01",
                        "dep_name":"Test學院",
                        "master_name":"Test-Master",
                        "slogan":"Here is Slogan"
                    }
              ]
        }
   5) 新增成功返回報文:
    {
      "already_exist": {
        "results": [],
        "count": 0
      },
      "create_success": {
        "results": [
          {
            "dep_id": "T02",
            "dep_name": "Java學院",
            "master_name": "Java-Master",
            "slogan": "java"
          }
        ],
        "count": 1
      }
    }
   6) 新增失敗id已存在-返回報文:
    {
      "already_exist": {
        "results": [
          {
            "dep_id": "T01",
            "dep_name": "Test學院",
            "master_name": "Test-Master",
            "slogan": "Here is Slogan"
          }
        ],
        "count": 1
      },
      "create_success": {
        "results": [],
        "count": 0
      }
    }
7) 新增失敗json格式錯誤:
    {
    "status_code": 400,
    "detail": "請求體參數格式錯誤。"
    }

2、測試計划內包含的元件

添加元件操作步驟

  1. 創建測試計划。
  2. 創建線程組:選中“測試計划”右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組中添加配置元件"HTTP信息頭管理器"組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器。(稍后添加)
  4. 在線程組里面添加取樣器“HTTP請求”組件:選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請求
  5. 在線程組里面添加監聽器“察看結果樹”組件:查看結果,選中“線程組”右鍵 —> 添加 —> 監聽器 —> 察看結果樹

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

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成后會直接自動運行該腳本。

3、HTTP請求界面內容

我們按照接口文檔中學院-新增接口的描述,編寫JMeter取樣器,如下圖所示:

image

4、查看腳本執行結果

學院-新增接口調用如下:

image

我們可以看到上圖中,顯示接口請求失敗,返回的結果說該接口不支持請求中媒體類型text/plain

我們來查看請求頭中的信息,如下:

image

發現請求頭中的Content-Typetext/plain

因為我們之前說過,在JMeter 5.0以后的版本中發送POST請求時,將參數放在body data(消息體數據)中,且沒有設置Content-Type時,默認會將Content-Type的值設置為text/plain

而接口文檔中學院-新增接口,明確寫出需要Content-Type的類型為application/json

所以這時我們需要在請求頭信息中,重新定義Content-Type屬性的值。

5、添加請求頭信息(HTTP信息頭管理器)

在JMeter中添加請求頭信息和Postman是有區別的,需要在線程組中添加一個配置元件,名為HTTP信息頭管理器HTTP Header Manager)。也就是需要在HTTP信息頭管理器組件中,為請求添加需要的請求頭信息。

添加配置元件步驟:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器

如下圖所示:

image

HTTP信息頭管理器界面如下:

image

界面說明

  • 名稱:HTTP信息頭管理器自定義名稱,見名知意最好。
  • 注釋:即添加一些備注信息,對該HTTP信息頭管理器的簡短說明,以便后期回顧時查看。
  • 請求頭中的信息:可以幫助測試人員設定JMeter發送的HTTP請求中,請求頭所包含的信息。HTTP信息頭中包含有User-AgentReferer等屬性。盡可能放在線程組下,除非因為某些原因,測試人員希望不同的HTTP請求使用不同的HTTP信息頭。
    1)添加:可以添加一條請求頭配置信息。
    2)從剪貼板添加:添加來自於剪切板中的信息;(使用key+制表符+value的形式,可以多行。)
    3)刪除:選擇不需要的請求頭信息,可以進行刪除;
    4)載入:載入配置好的信息頭文件。(我使用.txt文件,按上述格式配置,載入成功。工作中使用自己公司配置好的文件即可)
    5)保存測試計划:就是把該測試計划保存。

如上圖,我們添加一條請求頭信息:Content-Type=application/json

此時測試計划內包含的元件,如下圖所示:

image

再次發送請求,請求成功,如下圖:

image

我們再來看一下,該請求的請求頭信息:

image

可以看到請求中的Content-Type屬性為application/json

以上就是HTTP信息頭管理器組件的使用方式,

6、優先級說明

HTTP信息頭管理器組件的優先級:

  • JMeter中支持添加多個HTTP信息頭管理器組件,如果存在多個HTTP信息頭管理器組件,其中的配置信息會合並。
  • 取樣器HTTP信息頭管理器組件的優先級高於線程組下的HTTP信息頭管理器組件。
  • 若有重名的信息頭名稱,則優先取樣器下的HTTP信息頭管理器組件中的配置信息。
  • 同一作用域下,不論添加多少個HTTP信息頭管理器組件,只會取第一個HTTP信息頭管理器組件中的值,不合並。

提示:每個元件都有固定的圖標,我們多用就能區分出來。

7、補充:常見請求頭信息

  • Accept:告訴服務器,客戶機支持的數據類型。
  • Accept-Encoding:告訴服務器,客戶機支持的數據壓縮格式。
  • Cache-Control:緩存控制,服務器通過控制瀏覽器要不要緩存數據。
  • Connection:處理完這次請求,是斷開連接還是保持連接。
  • Cookie:客戶機通過這個可以向服務器帶數據。
  • Host:訪問的主機名。
  • User-Agent:告訴服務器,客戶機的軟件環境。
  • Content-Type:用於指示資源的MIME類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM