注:
本文參考:http://www.cnblogs.com/TankXiao/p/4045439.html
http://blog.csdn.net/lan_shu/article/details/55190127
http://blog.csdn.net/chwshuang/article/details/48830273
Jmeter是一款優秀的開源測試工具, 是每個資深測試工程師,必須掌握的測試工具,熟練使用Jmeter能大大提高工作效率。
熟練使用Jmeter后, 能用Jmeter搞定的事情,你就不會使用LoadRunner了。
Jmeter 介紹
Jmeter 是一款使用Java開發的,開源免費的,測試工具, 主要用來做功能測試和性能測試(壓力測試/負載測試).
而且用Jmeter 來測試 Restful API, 非常好用。
如何學好Jmeter
如果你用Jmeter去對Web進行功能測試,或者性能測試。 你必須熟練HTTP協議,才能學好Jmeter。 否則你很難理解Jmeter中得概念。
不熟悉HTTP協議的話, 可以參考我的 【HTTP 協議教程】
Jmeter 下載和運行
官方網站:http://jmeter.apache.org/
下載地址http://jmeter.apache.org/ 點擊下載,Windows環境下,下載后解壓,在bin目錄中,雙擊 jmeter.bat運行。
運行方式一:
解壓后, 運行 “bin/jmeter.bat”
運行方式二:
然后配置環境變量:
變量名JMETER_HOME,變量值D:\java\apache-jmeter-3.1 在變量名CLASSPATH新增
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;
%JMETER_HOME%\lib\jorphan.jar;
%JMETER_HOME%\lib\logkit-2.0.jar;
在Path新增%JMETER_HOME%/bin
配置好后,在cmd輸入jmeter.bat或者在安裝目錄bin里面直接點擊也是可以的;
實際測試的例子
啟動成功后的界面
如果是英文版請點擊Options>Choose Language>Chinese(Simplified),切換成簡體中文
接下來,我們首先模擬100用戶訪問某個網站或者功能
1、新建線程組,右鍵點擊測試計划,添加>Threads(Users)>線程組
設置線程數100,Ramp-Up period(in seconds):10,循環次數:1
Ramp-Up period指的是每個線程間隔多長時間,如果設置為0,就是並發;
2、新建HTTP請求,右鍵點擊線程組>添加>Sampler>HTTP請求
設置訪問的地址,參數等
3、新建概要報告(請求數,響應時間等),右鍵點擊HTTP請求>添加>監聽器>Summary Report
4、新建察看結果數,右鍵點擊HTTP請求>添加>監聽器>察看結果數
5、點擊開始進行壓力測試
期間會提示你保存結果文件,找個地方存起來就ok。
測試結果
6、有時候我們需要進行登錄后的操作,那么我們需要對Cookie進行傳遞設置
新建HTTP信息頭管理器,右鍵點擊HTTP請求>添加>配置原件>HTTP信息頭管理器
以上基本能滿足日常開發測試的需求了,如果測試並發,請把線程組的Ramp-Up period設置為0即可
測試腳本編寫
測試web項目需要編寫測試腳本,就是告訴jmeter你的網站地址,登錄參數,瀏覽網頁地址,請求按鈕的內容、請求次數、循環次數等等。目前的腳本編寫有兩種方式,一種是手動編寫,一個字母一個字母的敲,另外一種是利用工具錄制生成,用工具打開網站,然后在網站上操作,工具會記錄所有與服務器的交互,自動生成腳本。
手動編寫:
第一步是創建【線程組】, 然后在線程組基礎上創建【循環控制器】、【聚合報告】,然后在【循環控制器】中創建【HTTP請求】,在【HTTP請求】中輸入要測試的網站地址,點擊工具欄的開始測試按鈕,測試完成后到【聚合報告】中查看結果。
自動錄制:
測試計划
測試計划是將測試目標進行細化的方案,是明確測試過程和測試用例的內容。例如我們要測試網站數據的訪問速度,那么首先要模擬一個用戶登錄,然后循環測試數據訪問,然后通過報表來查看統計結果。那么第一步就是通過打開錄制的測試腳本,然后在【線程組】中添加監聽器,這里的監聽器就是統計報表。
我這里使用的測試計划是提前用bodboy這個工具錄制好的。
測試報告
Web項目測試報告中主要三種比較常見的報表,【聚合報告】【查看結果樹】【用表格查看結果】
聚合報告:
能顯示測試次數、平均請求耗時、請求耗時百分百、最小、最大請求耗時、錯誤率、吞吐量、數據量等參數。
查看結果樹:
能查看每個請求的取樣器結果、請求、詳細返回結果
用表格查看結果
通過請求順序查看請求地址,耗時、狀態、數據量、延遲、連接耗時等信息。