大話JMter(一),帶你了解JMeter的基礎用法
- 2019 年 11 月 26 日
- 筆記




所謂的性能測試要在功能測試之後。
- 功能測試:關注能不能用
- 性能測試:關注好不好用
常見的性能關注點有:
- 介面響應時間:50毫秒 ~ 1000毫秒
- 吞吐量:1000萬每天,2000萬每天 ……10億每天
- TPS:Transaction Per Second 事務處理能力,每秒處理事物數(打開頁面、登錄、選擇商品、加入購物車、下單、付款)
注意:「日活」每日活躍用戶數,是個運營數據,跟性能沒有必然關聯性
Jemter是什麼?


用更準確的話說,壓力測試包括:
- Spike testing:短時間的極端負載測試
- Extreme testing:在過量用戶下的負載測試
- Hammer testing:連續執行所有能做的操作



開源免費只是眾多優點之一,jmeter有以下幾個優點:
- 開源免費,基於Java編寫,可集成到其他系統可拓展各個功能插件
- 支援介面測試,壓力測試等多種功能,支援錄製回放,入門簡單
- 相較於自己編寫框架或其他開源工具,有較為完善的UI介面,便於介面調試
- 多平台支援,可在Linux,Windows,Mac上運行
官網:https://jmeter.apache.org/
下載:binary可運行文件包

貼心提醒: 官網下載規律: 首頁 -> Download -> 版本號 -> binaries,因為binaries代表已經編譯完,source是還未編譯的源碼。

jemeter包含哪些功能模組









主要功能模組
- 取樣器:進行腳本邏輯控制。
- 執行緒組:壓測場景控制。
- 監視器:監控壓測運行,獲取性能指標。
錄 制









步驟一:
- 打開 JMeter
- 添加 「HTTP(S) Test Script Recorder」



步驟二:
- 添加「Thread Group」


步驟三:
- 在 Thread Group中添加「Recording Controller」





在jmeter中設置埠,你可以打開 HTTP(S) Test Script Recorder:比如設定 Port = 8088與此同時,你也可以指定錄製保存到哪個controller 比如設定 Target Controller = Test Plan > Tread Group > Recording Controller


設置瀏覽器埠,你要打開瀏覽器,將瀏覽器的代理伺服器地址指向 http://localhost:8088


開始錄製:單擊HTTP(S) Test Script Recorder中的Start按鈕,打開代理
單擊彈框中的確定按鈕
JMeter的錄製代理將會開啟

在對應的瀏覽器中訪問百度新聞網站
切換到國際頻道
切換到財經頻道
停止JMeter的代理服務



我們可以利用正則表達式排除一些靜態資源在http(s) Test Script Recoder下找到Requests Filtering 添加「include」與 「Exclude」URL 正則匹配表達式
- Include:.*.(baidu.com).*
- Exclude:.*.(js|css|PNG|jpg|ico|png|gif).*





當我們錄製完畢,你可以添加result tree看請求和響應的細節:添加 View Results Tree

如果你想對錄製進行回放,點擊左上角的綠色三角:






在壓測過程,要例證請求/響應的正確性
- 斷言的實際值與設定值相符 -> 成功
- 斷言的實際值與設定值不相符 -> 失敗
右鍵單擊對應的 HTTP Request,添加 Response Assertion

將校驗條件添加到響應斷言中比如:響應文本內容是否包含某個字元串或者http響應碼是不是200

你可以在 View Results Tree 中查看結果,結果如果錯誤(設置響應碼為2001),會報以下的錯誤




比如設置:
- 並發數:10
- 持續時間:30秒

當一切都設置完畢,點擊運行,我們發現結果井然有序。




添加聚合壓測報告 – Aggregate Report

以下是聚合報告的結果



- Average:單個請求的平均響應時間
- Median:中位數,也就是50%用戶的響應時間
- 90%Line:90%用戶的響應時間
- 95%Line:95%用戶的響應時間
- 99%Line:99%用戶的響應時間
- Min:最小的請求響應時間
- Max:最大的請求響應時間
- Error%:錯誤率
- Throughput:吞吐量
- Received KB/sec:每秒從伺服器端接收到的數據量
- Sent KB/sec:每秒從客戶端發送的請求的數量


寫在最後
本文使用漫畫形式向大家展示了jmeter的基礎用法:錄製回放功能,斷言,聚合報告。
我想你已經獲取到了這些資訊,李政道教授談論學習方法,他表明我們可以獲取很多資訊但是,資訊到理解還有一段路,只有親手練了才能變成理解,能獲取資訊不代表自己理解。
所以請同學們勤加練習,爭取學到更多的知識,本內容出自霍格沃茲測試學院,想進一步學習jmeter的使用?請繼續關注我們。