今天通過一個簡單的例子梳理一下用jmeter進行測試的流程
1.確定被測網站:gogomall.com
2.制定測試指標:響應時間和錯誤率
3.設計測試場景
4.具體測試步驟
1>創建一個測試計划,測試計划里創建線程組,線程組中再創建取樣器,一般是http請求,創建成功如下圖:
下面來解釋一下http請求的設置:
①名稱:用於標識一個取樣器,建議使用一個有意義的名稱,自己能夠區分
②注釋:僅用於記錄用戶可讀的注釋信息,對測試無任何作用
③協議:向目標服務器發送http請求時的協議,可以是http或者是https,默認為http
④服務器名稱或IP:http請求發送的目標服務器名稱或IP地址
⑤端口號:目標服務器的端口號,默認值為80
⑥方法:發送http請求的方法,可用方法包括GET,POST,HEAD,PUT.......等
⑦路徑:目標url路徑,不包括服務器地址和端口
⑧內容編碼:內容的編碼方式
⑨自動重定向:如果選中,當發送http請求后得到的響應是302/301時,jmeter自動重定向到新的頁面
⑩使用KeepAlive(持久常連接):如果選中,jmeter和目標服務器之間使用Keep-Alive方式進行HTTP通信,默認選中
⑪對POST使用multipart/form-data:當發送HTTP POST請求時,使用multipart/from-data方法發送,默認不選中
⑫同請求一起發送參數:在請求中發送url參數,用戶可以將url中所有參數設置在本表,表中的每一行是一個參數值對(對應url中的名稱1=值1)
⑬同請求一起發送文件:在請求中發送文件,通常,HTTP文件上傳行為可以通過這種方式模擬
⑭從HTML文件獲取所有內含的資源:當該選項被選中時,jmeter在發出HTTP請求並獲得響應的HTML文件內容后,還對該HTML進行解析並獲取HTML中包含的所有資源,默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的【網址必須匹配】文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的url指向資源會被下載
⑮保存響應為MD5哈希:選中該項,在執行時僅記錄服務端響應數據的MD5值,而不是記錄完整的響應數據,在需要進行數據量非常大的測試時,建議選中該項以減少取樣器記錄響應數據的開銷
2>測試場景設計—線程組設置
①線程數:虛擬用戶數
②Ramp-Up時間:設置的虛擬用戶數需要多長時間全部啟動完
③循環次數:每個線程發送請求的次數,如果勾選了【永遠】,那么所有線程會一直發送請求,一直到選擇停止運行腳本
④調度器:可以更靈活的設置運行時間等
3>設置監聽器
4>運行腳本
點擊啟動,開始執行測試
5>查看報告
報告數據詳解:
①Label:定義HTTP請求名稱
②Samples:表示這次測試中一共發出了多少個請求,我設置的20個,循環10次,所以是200個
③Average:平均響應時長,默認情況下是單個請求的平均響應時長,當使用了事務控制器時,也可以以事務為單位顯示平均響應時長
④Median:中位數,也就是50%的響應時長
⑤90%Line:90%用戶的響應時長
⑥95%Line:95%用戶的響應時長
⑦99%Line:99%用戶的響應時長
⑧Min:訪問頁面的最小響應時長
⑨Max:訪問頁面的最大響應時長
⑩Error%:錯誤請求的數量/請求的總數
⑪Throughput(吞吐量):默認情況下表示每秒完成的請求數,當使用了事務控制器時,也可以表示每秒處理的事務個數
⑫Received KB/sec:每秒從服務器端接收到的數據量
⑬Sent KB/sec:每秒向服務器端發送的數據量
注:jmeter中,時間單位都為毫秒
6>保存報告,注意,文件后綴為.jtl
注:上面的例子中只有一個HTTP請求,所以監聽器放線程組下或者HTTP請求下結果都是一樣的,當請求多了之后,可以在每個請求下都添加一個監聽器