今天通過一個簡單的例子梳理一下用jmeter進行測試的流程

  1.確定被測網(wǎng)站:gogomall.com

  2.制定測試指標:響應(yīng)時間和錯誤率

  3.設(shè)計測試場景

  4.具體測試步驟

  1>創(chuàng)建一個測試計劃,測試計劃里創(chuàng)建線程組,線程組中再創(chuàng)建取樣器,一般是http請求,創(chuàng)建成功如下圖:

下面來解釋一下http請求的設(shè)置:

  ①名稱:用于標識一個取樣器,建議使用一個有意義的名稱,自己能夠區(qū)分

  ②注釋:僅用于記錄用戶可讀的注釋信息,對測試無任何作用

 ?、蹍f(xié)議:向目標服務(wù)器發(fā)送http請求時的協(xié)議,可以是http或者是https,默認為http

  ④服務(wù)器名稱或IP:http請求發(fā)送的目標服務(wù)器名稱或IP地址

 ?、荻丝谔枺耗繕朔?wù)器的端口號,默認值為80

 ?、薹椒ǎ喊l(fā)送http請求的方法,可用方法包括GET,POST,HEAD,PUT.......等

 ?、呗窂剑耗繕藆rl路徑,不包括服務(wù)器地址和端口

  ⑧內(nèi)容編碼:內(nèi)容的編碼方式

 ?、嶙詣又囟ㄏ颍喝绻x中,當(dāng)發(fā)送http請求后得到的響應(yīng)是302/301時,jmeter自動重定向到新的頁面

 ?、馐褂肒eepAlive(持久常連接):如果選中,jmeter和目標服務(wù)器之間使用Keep-Alive方式進行HTTP通信,默認選中

  ?對POST使用multipart/form-data:當(dāng)發(fā)送HTTP   POST請求時,使用multipart/from-data方法發(fā)送,默認不選中

  ?同請求一起發(fā)送參數(shù):在請求中發(fā)送url參數(shù),用戶可以將url中所有參數(shù)設(shè)置在本表,表中的每一行是一個參數(shù)值對(對應(yīng)url中的名稱1=值1)

  ?同請求一起發(fā)送文件:在請求中發(fā)送文件,通常,HTTP文件上傳行為可以通過這種方式模擬

  ?從HTML文件獲取所有內(nèi)含的資源:當(dāng)該選項被選中時,jmeter在發(fā)出HTTP請求并獲得響應(yīng)的HTML文件內(nèi)容后,還對該HTML進行解析并獲取HTML中包含的所有資源,默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的【網(wǎng)址必須匹配】文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的url指向資源會被下載

  ?保存響應(yīng)為MD5哈希:選中該項,在執(zhí)行時僅記錄服務(wù)端響應(yīng)數(shù)據(jù)的MD5值,而不是記錄完整的響應(yīng)數(shù)據(jù),在需要進行數(shù)據(jù)量非常大的測試時,建議選中該項以減少取樣器記錄響應(yīng)數(shù)據(jù)的開銷

  2>測試場景設(shè)計—線程組設(shè)置

①線程數(shù):虛擬用戶數(shù)

 ?、赗amp-Up時間:設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動完

  ③循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù),如果勾選了【永遠】,那么所有線程會一直發(fā)送請求,一直到選擇停止運行腳本

  ④調(diào)度器:可以更靈活的設(shè)置運行時間等

  3>設(shè)置監(jiān)聽器

4>運行腳本

點擊啟動,開始執(zhí)行測試

  5>查看報告

報告數(shù)據(jù)詳解:

 ?、貺abel:定義HTTP請求名稱

  ②Samples:表示這次測試中一共發(fā)出了多少個請求,我設(shè)置的20個,循環(huán)10次,所以是200個

  ③Average:平均響應(yīng)時長,默認情況下是單個請求的平均響應(yīng)時長,當(dāng)使用了事務(wù)控制器時,也可以以事務(wù)為單位顯示平均響應(yīng)時長

  ④Median:中位數(shù),也就是50%的響應(yīng)時長

 ?、?0%Line:90%用戶的響應(yīng)時長

 ?、?5%Line:95%用戶的響應(yīng)時長

 ?、?9%Line:99%用戶的響應(yīng)時長

 ?、郙in:訪問頁面的最小響應(yīng)時長

 ?、酠ax:訪問頁面的最大響應(yīng)時長

  ⑩Error%:錯誤請求的數(shù)量/請求的總數(shù)

  ?Throughput(吞吐量):默認情況下表示每秒完成的請求數(shù),當(dāng)使用了事務(wù)控制器時,也可以表示每秒處理的事務(wù)個數(shù)

  ?Received KB/sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量

  ?Sent KB/sec:每秒向服務(wù)器端發(fā)送的數(shù)據(jù)量

  注:jmeter中,時間單位都為毫秒

  6>保存報告,注意,文件后綴為.jtl

  注:上面的例子中只有一個HTTP請求,所以監(jiān)聽器放線程組下或者HTTP請求下結(jié)果都是一樣的,當(dāng)請求多了之后,可以在每個請求下都添加一個監(jiān)聽器