在用工具之前,首先我們來簡單了解一下什么是性能測試?
性能測試是系統(tǒng)在一定的負載和壓力的情況下,系統(tǒng)的響應(yīng)時間,吞吐量,穩(wěn)定性,課擴展性等性能指標(biāo)。也就是我們要驗證系統(tǒng)是否在這些指標(biāo)范圍,或者說驗證這些指標(biāo)是否符合用戶或客戶的需求。性能指標(biāo)包含系統(tǒng)指標(biāo)和資源指標(biāo),今天我們就以用戶角度去看一下如何驗證系統(tǒng)指標(biāo)?(系統(tǒng)指標(biāo):與用戶場景和需求相關(guān)的指標(biāo),關(guān)鍵的一些指標(biāo)包含:響應(yīng)時間,吞吐量,并發(fā)用戶數(shù)等)
以下是按照中文版的jmeter進行編寫的,jmeter的bin目下打開這個文件jmeter.properties,查找language,把這個屬性前面的#去掉并修改值為:zh_CN,修改后的顯示 language=zh_CN
一、打開bin目錄,點擊jmeter.bat 或cmd 輸入 jmeter啟動jmeter工具
二、選中測試計劃右鍵new(添加)---》線程(用戶)----》線程組,進行線程組的添加(在線用戶數(shù))
(1)名稱和注釋任意
(2)線程數(shù)(用戶數(shù)),根據(jù)需求實際情況去添加
(3)Rum-up(秒)幾秒執(zhí)行完用戶數(shù)
(4)循環(huán)次數(shù)這些用戶執(zhí)行多次
三、所有的請求都在線程組的基礎(chǔ)上進行,那么如何發(fā)起一個http請求呢?(在此之前同學(xué)們需要了解一個http請求包含哪些內(nèi)容,以及響應(yīng)包含哪些內(nèi)容)
選中線程組右鍵---》取樣器---》http請求
(1)名稱和注釋最好與此次請求相關(guān),有意義
(2)協(xié)議:http或https
(3)服務(wù)器名稱或ip:(域名或ip地址)
(4)端口號:http是80,https 443 ,mysql 3306
(5)請求方法(根據(jù)請求行中的方法進行填寫):post
(6)路徑:資源的位置
(7)內(nèi)容編碼:UTF8(如果請求中不包含中文可不寫)
(8)post請求是有請求體的,所以要填寫參數(shù):
具體如圖
四、一個http還除了上述http請求中的請求行和請求體,還包含請求頭,如何添加請求頭呢?(有的請求頭不是必填的,此部分可以省略)
如果請求頭是對所有的http請求有效,那么選中線程組進行添加,請求頭僅對本請求有效,那么選中http請求進行添加
選中線程組右鍵--添加--配置元件--http信息頭管理器(把需要的數(shù)據(jù)如圖填寫進來就可以)
以上http請求數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以發(fā)起這個請求了,但是我們要想看到請求的結(jié)果怎么辦呢?需要添加一個察看結(jié)果樹
五、如何添加察看結(jié)果樹呢?可以選中線程組或選中請求添加,作用域不一樣,選中線程組對應(yīng)的作用域為這個線程組下的所有請求,而請求下的呢,僅作用域本請求,一般情況下選擇線程組即可
選中線程組右鍵--添加--監(jiān)聽器---察看結(jié)果樹
準(zhǔn)備好以上數(shù)據(jù)后就可以進行調(diào)試了,在結(jié)果樹中查看我們請求的數(shù)據(jù)添加的是否正確和響應(yīng)結(jié)果是否正確
六、如何運行和結(jié)果顯示如圖
執(zhí)行失敗為紅色顯示,成功為綠色顯示
(1)取樣器結(jié)果:顯示的是Sample的請求和響應(yīng)的總體情況(包含如下內(nèi)容)
Thread Name(線程名稱): 登錄 1-3
Sample Start(開始時間): 2020-03-19 16:37:03 CST
Load time(加載時間): 33
Connect Time(連接時間): 1
Latency(延遲): 33
Size in bytes(字節(jié)): 153
Sent bytes(發(fā)送字節(jié)數(shù)):327
Headers size in bytes: 128
Body size in bytes: 25
Sample Count: 1
Error Count: 0
Data type ("text"|"bin"|""): text
Response code: 200
Response message:
HTTPSampleResult fields:
ContentType: application/json;charset=UTF-8
DataEncoding: UTF-8
(2)請求:請求體和請求頭
(3)響應(yīng)數(shù)據(jù):響應(yīng)體和響應(yīng)頭
在調(diào)試的過程中,如果我們發(fā)起的請求失敗,可以在此查看是請求數(shù)據(jù)有問題還是服務(wù)器本身的問題
六、性能測試不能針對一個用戶進行反復(fù)的登錄吧,不符合常理和邏輯,那如何實現(xiàn)多個用戶進行登錄呢?
(1)方法一:參數(shù)化
(1.1)csv參數(shù)化:選中線程組--右鍵添加--配置元件--csv數(shù)據(jù)文件設(shè)置(如圖)
(1.2)使用變量(如圖)
(2)方法二:函數(shù)助手
(2.1)Tools ---函數(shù)助手對話框或工具欄中的書
(2.2)復(fù)制后,打開請求中需要使用變量的位置,在此處粘貼
用以上兩種方法之一就可以進行多用戶的注冊或登錄了
可以運行一下查看結(jié)果
七、查看結(jié)果的常用方式
(1)聚合報告:把所有的請求數(shù)據(jù)和系統(tǒng)指標(biāo)結(jié)果匯總成表格查看
選中線程組右鍵---監(jiān)聽器--聚合報告
樣本數(shù)量:3
平均值(平均的響應(yīng)時間):12毫秒
中位數(shù)(50%的響應(yīng)時間):12毫秒
90%百分位(90%的響應(yīng)時間):15毫秒
95%百分位(95%的響應(yīng)時間):15毫秒
99%百分位(99%的響應(yīng)時間):15毫秒
最小值(用時最少的):10毫秒
最大值(用時最多的響應(yīng)時間):15毫秒
異常(本次請求中有沒有請求失敗或者響應(yīng)失敗的數(shù)據(jù)有多少個):0
吞吐量(每秒中處理事務(wù)的個數(shù)):4.4個
接收/kB(每秒接收的字節(jié)數(shù)):0.65KB
發(fā)送/kB(每秒發(fā)送的字節(jié)數(shù)):1.4KB
(2)用表格查看結(jié)果:
選中線程組右鍵---監(jiān)聽器--用表格查看結(jié)果(如圖)
可以查看單個請求的情況
(3)還可以匯總成圖表的
選中線程組右鍵---監(jiān)聽器--圖形結(jié)果
以上給大家分享了幾種常用的查看結(jié)果的方式,在監(jiān)聽器下還有好多,有興趣的小伙伴可以進行嘗試使用,方法都是一樣的
八、還可以生成測試報告
(1)win+R 輸入cmd進入dos命令行模式下
(2)輸入:jmeter -n -t D:\work\login.jmx -l result.jtl -e -o D:\work\test ,點擊回車
-n:以非GUI形式運行
-t:指定腳本的路徑
-l:運行后的結(jié)果的文件名
-e:在腳本結(jié)束后生成html報告
-o:保存HTML報告的地址
注意:1.-l 后面跟的文件名是起的名字,該文件名不能為已經(jīng)存在的名字
2. -o 后面跟的文件夾的路徑,最后指定的文件夾不能有數(shù)據(jù),可以自己新起一個任意不存在的文件夾名
(3)D:\work\test目錄下查看index.html 文件就是生成的 測試報告