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

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

  2.制定測試指標:響應時間和錯誤率

  3.設計測試場景

  4.具體測試步驟

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

下面來解釋一下http請求的設置:

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

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

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

 ?、芊掌髅Q或IP:http請求發(fā)送的目標服務器名稱或IP地址

 ?、荻丝谔枺耗繕朔掌鞯亩丝谔枺J值為80

  ⑥方法:發(fā)送http請求的方法,可用方法包括GET,POST,HEAD,PUT.......等

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

 ?、鄡?nèi)容編碼:內(nèi)容的編碼方式

  ⑨自動重定向:如果選中,當發(fā)送http請求后得到的響應是302/301時,jmeter自動重定向到新的頁面

  ⑩使用KeepAlive(持久常連接):如果選中,jmeter和目標服務器之間使用Keep-Alive方式進行HTTP通信,默認選中

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

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

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

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

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

  2>測試場景設計—線程組設置

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

  ②Ramp-Up時間:設置的虛擬用戶數(shù)需要多長時間全部啟動完

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

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

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

4>運行腳本

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

  5>查看報告

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

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

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

 ?、跘verage:平均響應時長,默認情況下是單個請求的平均響應時長,當使用了事務控制器時,也可以以事務為單位顯示平均響應時長

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

 ?、?0%Line:90%用戶的響應時長

  ⑥95%Line:95%用戶的響應時長

 ?、?9%Line:99%用戶的響應時長

 ?、郙in:訪問頁面的最小響應時長

 ?、酠ax:訪問頁面的最大響應時長

 ?、釫rror%:錯誤請求的數(shù)量/請求的總數(shù)

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

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

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

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

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

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