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經驗總結
如果取樣器中有引數化需求,可以透過配置元件或者前置處理器來完成;
如果取樣器中有關聯需求,可以通過後置處理器來完成;
如果要模擬負載場景,比如模擬多少使用者,運動多長時間,可以透過執行緒組完成;
如果要模擬併發場景,可以透過定時器來完成;
如果要控制業務的執行邏輯,比如登入只執行一次,可以透過控制器來完成;
相關文章
- 2021-05-09沒人看?華為技術專家首次分享JVM記憶體模型詳解,網友直呼:真香
- 2021-04-26駭客怎麼煉成的?什麼?原來就是滲透測試啊!
- 2021-04-23特斯拉車頂女,電動車制動系統還跟能源相關嗎?| ?上海車展前瞻篇
- 2021-04-21想知道有多少爆米花離我爸媽小店近呀!
- 2021-03-275款私藏的橙光古風戀愛遊戲,快來撩小哥哥~(內附連結)