JMeter - HTTP請求

JMeter & JDK 下載、安裝、配置(windows 10)

1. 啓動

  • 打開JMeter文件夾,bin文件→jmeter.bat(Windows執行文件)文件,就可以啓動jmeter了
    在這裏插入圖片描述
    • tips:爲了後續使用方便,可右擊jmeter.bat,發送桌面快捷方式在這裏插入圖片描述

2. 新建測試計劃(test plan)

  • 測試計劃(test plan):描述一個性能測試,包含本次測試所有相關功能

  • 啓動JMeter,默認有一個測試計劃,修改測試計劃名稱,儘量使其變得有意義,容易看懂
    在這裏插入圖片描述

3. 新建一個線程組 threads(users)

  • 右擊測試計劃 - Add - Threads - Thread Group
    在這裏插入圖片描述

  • 線程數設置爲1,方便演示
    在這裏插入圖片描述

  • Setup thread group:
    一種特殊類型的線程,可用於執行預測試操作。即執行測試前進行定期線程組的執行

  • Teardown thread group:
    一種特殊類型的線程,可用於執行測試後動作。即執行測試結束後執行定期的線程組

  • 以上兩個線程組,舉個例子:loadrunner的腳本除了action裏是真正的腳本核心內容,還有初始化“環境”的初始化腳本和測試完畢後對應的清除信息的腳本塊,與其對應

  • Thread group:
    通常添加使用的線程,一般一個線程組可看做一個虛擬用戶組,其中每個線程爲一個虛擬用戶

4. 添加http信息頭管理器

  • 右擊線程組 - Add - Config Element - HTTP Header Manager
    在這裏插入圖片描述
  • http信息頭管理器添加好之後,需要填入信息頭的名稱以及對應的值,例:
    在這裏插入圖片描述
  • 解釋一下爲什麼添加http信息頭管理器:
    JMeter不是瀏覽器,其行爲並不和瀏覽器完全一致。這些JMeter提供的配置元件中的HTTP屬性管理器用於儘可能模擬瀏覽器行爲,在HTTP協議層上發送給被測應用http請求。
  1. HTTP Request Defaults(請求默認值)

    用於設置其作用範圍內的所有HTTP的默認值,可被設置的內容包括HTTP請求的host、端口、協議等

  2. HTTP Authorization Manager(授權管理器)

    用於設置自動對一些需要NTLM驗證的頁面進行認證和登錄

  3. HTTP Cache Manager

    用於模擬瀏覽器的Cache行爲。爲Test Plan增加該屬性管理器後,Test Plan運行過程中會使用Last-Modified、ETag和Expired等決定是否從Cache中獲取相應的元素

  4. HTTP Cookie Manager(cookie管理器)

    用於管理Test Plan運行時的所有Cookie。HTTP Cookie Manager可以自動儲存服務器發送給客戶端的所有Cookie,並在發送請求時附加上合適的Cookie

    同時,用戶也可以在HTTP Cookie Manager中手工添加一些Cookie,這些被手工添加的Cookie會在發送請求時被自動附加到請求

  5. HTTP Header Manager(信息頭管理器)

    用於定製Sampler發出的HTTP請求的請求頭的內容。不同的瀏覽器發出的HTTP請求具有不同的Agent

    訪問某些有防盜鏈的頁面時需要正確的Refer…這些情況下都需要通過HTTP Header Manager來保證發送的HTTP請求是正確的

5. 添加Sampler(取樣器)→ http請求

  • 取樣器(Sampler):是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter 原生支持多種不同的sampler

  • 右擊線程組 - Add - Sampler - HTTP Request
    在這裏插入圖片描述

  • 按照截圖所示,填入測試的服務器地址、端口、所用的協議、方法、路徑、參數
    在這裏插入圖片描述

關於http請求的的屬性參數說明:

  1. 名稱:用於標識一個sample。建議使用一個有意義的名稱

  2. 註釋:對於測試沒任何影響,僅用來記錄用戶可讀的註釋信息

  3. 服務器名稱或IP:http請求發送的目標服務器名稱或者IP地址,比如www.baidu.com

  4. 端口號:目標服務器的端口號,默認值爲80,可不填

  5. 協議:向目標服務器發送http請求時的協議,http/https,大小寫不敏感,默認http

  6. 方法:發送http請求的方法: http協議幾種數據傳輸方式

  7. Content encoding:內容的編碼方式(ContentType=application/json;charset=utf-8)

  8. 路徑:目標的URL路徑(不包括服務器地址和端口)

  9. 自動重定向:如果選中該項,發出的http請求得到響應是301/302,jmeter會重定向到新的界面

  10. Use keep Alive:jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信(默認選中)

  11. Use multipart/from-data for HTTP POST :當發送HTTP POST 請求時,使用

  12. Parameters、Body Data以及Files Upload的區別

  • parameter是指函數定義中參數,而argument指的是函數調用時的實際參數

  • 簡略描述爲:parameter=形參(formal parameter), argument=實參(actual parameter)

  • 在不很嚴格的情況下,現在二者可以混用,一般用argument,而parameter則比較少用

    • While defining method, variables passed in the method are called parameters.

    • 當定義方法時,傳遞到方法中的變量稱爲參數.

    • While using those methods, values passed to those variables are called arguments.

    • 當調用方法時,傳給變量的值稱爲引數.(有時argument被翻譯爲“引數“)

    4、Body Data指的是實體數據,就是請求報文裏面主體實體的內容,一般我們向服務器發送請求,攜帶的實體主體參數,可以寫入這裏

    5、Files Upload指的是:從HTML文件獲取所有有內含的資源:被選中時,發出HTTP請求並獲得響應的HTML文件內容後還對該HTML

    進行Parse 並獲取HTML中包含的所有資源(圖片、flash等):(默認不選中)

    如果用戶只希望獲取特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,只有能匹配指定正則表達式的URL指向資源會被下載

6. 添加監視器(Listener)

  • 監視器:對測試結果進行處理和可視化展示的一系列組件,常用的有圖形結果、查看結果樹、聚合報告等
    在這裏插入圖片描述

  • 添加好監視器,點擊運行,開始測試
    在這裏插入圖片描述

  • 如上,測試結束後,如果我們的請求成功發送給服務器,那麼結果樹裏面的模擬請求會顯示爲綠色,可以通過取樣器結果裏面的響應狀態碼信息來判斷

  • 也可以點擊請求模塊,查看我們發送的請求
    在這裏插入圖片描述

  • 裏面有我們發送的請求的方法、協議、地址以及實體主體數據,以及數據類型,大小,發送時間,客戶端版本等信息

  • 響應數據:裏面包含服務器返回給我們的響應數據實體,如下圖
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章