1. 首先去官網下載JMeter: http://jmeter.apache.org/download_jmeter.cgi
2. 解壓縮后到目錄 \apache-jmeter-5.0\bin 下找到 jmeter.bat 點擊執行,出現以下界面:

3. 然后新建需要測試的http請求,以 ”http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試“ 為例:
Test Plan -> Add -> Threads(Users) -> Thread Group
Name: 線程組名稱
Number of Threads(users) : 虛擬用戶數。一個虛擬用戶占用一個線程或進程,設置多少虛擬用戶在這里就是設置多少個線程數。
Ramp-Up Period(in seconds):准備時長,設置的虛擬用戶數需要多長時間全部啟動,如果線程數為10,准備時長為2,那么需要2秒鍾啟動10個線程,即每秒鍾啟動5個線程。
Loop Count: 循環次數,每個線程發送請求的次數,如果線程數為10,循環次數為100,那么每個線程發生100次請求。總請求數為10 * 100 = 1000,如果勾選了 Forever,那么所有線程會一直發送請求,直到選擇停止運行腳本。
Delay Thread creation until needed:知道需要時延遲線程的創建。
Scheduler:調度器,設置線程組啟動的開始時間和結束時間(配置調度器時,需要勾選循環次數為永遠)。

4. 添加需要測試的請求: Thread Group -> Add -> Sampler -> HTTP Request
填寫參數內容如下:
ie: 編碼方式,默認為utf-8
wd: 搜索詞,為jmeter性能測試

5. 添加查看結果樹: 右鍵點擊Thread Group -> Add -> Lisenter -> View Results Tree
修改響應數據格式為:HTML Source Formatted,Response Data中可以看到本次請求返回的數據:

6. 添加用戶自定義變量,右鍵 -> Thread Group -> Add -> Config Element -> User Defined Variables
將wd(搜索詞)設置為自定義變量:

並可在http請求中使用該參數,格式為:${wd},之前為:jmeter性能測試

7. 添加斷言
右鍵點擊 HTTP Request -> Assertions -> Response Assertion
主要選中: Main sample only, Document [text], Contains, 在Patterns to Test中添加用戶自定義變量,因為查到的結果中一定會包含搜索詞,否則判斷為請求失敗。

8. 添加斷言結果
右鍵點擊 HTTP Request -> Add -> Lisenter -> Assertion Results
如果請求成功,則會直接顯示HTTP Request, 否則會顯示Response Assertion: Test failed: document expected to contain /斷言中寫的匹配內容/ (我故意改成了${wd} 111, 所以會斷言失敗)

9. 添加聚合報告
右鍵點擊 Thread Group -> Add -> Lisenter -> Aggregate Report
執行請求后(可以先修改性能測試相關參數配置:線程數、循環次數、持續時間等,目前我這里還是單線程作業),聚合報告就會顯示如下:

聚合報告參數詳解:
Lable:每個JMeter 都有一個Name屬性,這里顯示的就是Name屬性的值。
#Samples: 請求數,表示這次測試中一共發出了多少請求,如果模擬10個用戶,每個用戶迭代10次,那么這里顯示100。
Average: 平均響應時間,默認情況下是單個 Request 的平均響應時間,當使用了Transaction Controller 時,以Transaction為單位顯示平均響應時間。
Median: 中位數,即50%用戶的響應時間。
90% Line: 90%用戶的響應時間。
Min: 最小響應時間。
Max: 最大響應時間。
Error%:錯誤率--錯誤請求數/請求總數
Throughput:吞吐量--默認情況下表示每秒完成的請求數。
KB/Sec: 每秒從服務器端接收到的數據量,相當於Load Runner中的Throughput/Sec。
一般來說,性能測試中我們需要重點關注的數據有:#Samples請求數、Average平均響應時間,Min最小響應時間,Max最大響應時間,Error% 錯誤率及Throughput吞吐量。
