Jmeter入門基礎實踐

Jmeter簡介

1、JMeter是一款使用Java開發的可用於效能測試、功能測試、自動化測試的開源免費工具

2、支援數十種協議(如我們常見的應用協議http/https,jdbc,soap,smtp等等,還包括網路協議TCP,UDP)

3、同時支援即插即用指令碼和二次開發

4、幾乎可以適用任何測試場景

Jmeter目錄介紹

bin:放置各項配置檔案(如日誌設定、JVM設定)、啟動檔案、啟動Jar包、示例指令碼等

docs:放置JMeter API的離線幫助文件

extras:JMeter輔助功能,提供與Ant、Jenkins提成的可能性,用來構建效能測試自動化框架

lib:JMeter元件以Jar包的形式放置在lib/ext目錄下,如果要擴充套件JMeter元件,Jar包就放在此目錄下,JMeter啟動時會載入此目錄下的Jar包

printable_docs:放置JMeter的離線幫助檔案,可用來學習JMeter

Jmeter體系結構

取樣器:用來模擬使用者操作,向伺服器發出請求

斷言:用來驗證請求返回結果是否正確

監聽器:收集Jmeter的測試結果

前置處理器:配置測試需要提前準備的資料

配置元件:引數化等Jmeter提供的眾多函式

後置處理器:一般放在取樣器之後,用來處理伺服器的返回結果

控制器:邏輯控制器

定時器:集合點,模擬請求同一時刻傳送

執行緒組:生成虛擬使用者數、執行場景、迴圈次數及執行時間;一個執行緒表示一個使用者

工作臺:不直接參與執行,在Jmeter錄製指令碼時會用到,也可以用來備份指令碼

Jmeter執行邏輯

1、使用執行緒組來設定執行場景

2、利用取樣器模擬使用者操作

3、利用監聽器來收集測試結果

Jmeter工作原理

1、Jmeter是以執行緒的方式來執行,執行在JVM虛擬機器上

2、JMeter透過執行緒組來驅動多個執行緒(虛擬使用者)執行測試指令碼對被測伺服器發起負載

3、每一個負載機上都可以執行多個執行緒組

Jmeter查詢業務場景示例

新增執行緒組

說明:

繼續:當取樣器錯誤時繼續執行

執行緒屬性組合值:建立一個虛擬使用者執行場景並迴圈1次

新增HTTP請求預設值

說明:

在同一個執行緒組下HTTP訊息公用的資訊可以在HTTP請求預設值頁面配置

當HTTP請求預設值與HTTP訊息同時設定的情況下,優先使用HTTP訊息裡面的設定

新增HTTP資訊頭管理器

說明:

在瀏覽器開發者模式下可以獲取 名稱列的值 與 值列的值

參考下圖,點選上圖的 Add from Clipboard 可實現自動生成名稱列的值 與 值列的值

HTTP Cookie 管理器

說明:

名稱: 參考下圖,在開發者模式下找到對應Cookies中的Name值

值: 參考下圖,在開發者模式下找到對應Cookies中的Value值

域: 參考下圖,在開發者模式下找到對應Cookies中的Domian值

路徑:參考下圖,在開發者模式下找到對應Cookies中的Paht值

新增HTTP請求

說明:(因為Fiddler中可以將引數直接複製過來,開發者模式下複製的有問題)

方法 / 路徑:參考下圖1,在Fiddler中找到對應Request Headers中的 GET值 與 /api/ip/ipmim/mimlist值

Parameters:

名稱 / 值:參考下圖2,在Fiddler中找到對應WebForms中的全選複製,並點選 Add from Clipboard 即可自動生成上圖效果

新增響應斷言

說明:

在響應文字中包含 “status” : true 則表示成功,否則失敗

新增檢視結果樹

新增聚合報告

執行緒組效果圖 並儲存

執行

檢視測試結果

聚合報告引數說明:

Label:每個請求的名稱

#Samples:發給伺服器的請求數量

Average:單個請求的平均響應時間

Median:50%請求的響應時間

90%Line:90%請求響應時間

95%Line:95%請求響應時間

99%Line:99%請求的響應時間

Min:最小的響應時間

Max:最大的響應時間

Error%:錯誤率=錯誤的請求的數量/請求的總數

Throughput:吞吐量即表示每秒完成的請求數

Received KB/sec:每秒從伺服器端接收到的資料量

Sent KB/sec:每秒從客戶端傳送的請求的數量

處理亂碼問題

\apache-jmeter-2。13\bin\jmeter。properties 檢索

sampleresult。default。encoding

去掉預設的註釋,並將預設值修改為utf-8 然後重啟下Jmeter即可解決亂碼問題

Jmeter經驗總結

如果取樣器中有引數化需求,可以透過配置元件或者前置處理器來完成;

如果取樣器中有關聯需求,可以通過後置處理器來完成;

如果要模擬負載場景,比如模擬多少使用者,運動多長時間,可以透過執行緒組完成;

如果要模擬併發場景,可以透過定時器來完成;

如果要控制業務的執行邏輯,比如登入只執行一次,可以透過控制器來完成;

相關文章