Jmeter实战:零基础也能看懂的性能测试
經(jīng)常聽(tīng)到性能?何為性能,從來(lái)沒(méi)做過(guò)性能測(cè)試的人該如何上手?這篇文章非常適合零基礎(chǔ)的同學(xué)看,看完之后基本上就能知道性能測(cè)試的全流程。
性能指標(biāo)
?1.什么是性能測(cè)試
在一定情況下,通過(guò)工具模擬用戶負(fù)載系統(tǒng)的響應(yīng)時(shí)間、吞吐量等指標(biāo)是否滿足需求。
2.性能的指標(biāo)
基本上做過(guò)性能測(cè)試的人都知道性能指標(biāo)這個(gè)詞,一般執(zhí)行腳本成功后都會(huì)通過(guò)指標(biāo)判定服務(wù)器性能從而判斷是否符合當(dāng)前業(yè)務(wù)需要,再有,面試時(shí)經(jīng)常會(huì)問(wèn)到通過(guò)哪些指標(biāo)來(lái)觀察服務(wù)器性能。
性能指標(biāo)可以從以下5個(gè)方面觀察:
-
并發(fā)數(shù):模擬用戶數(shù),比如淘寶網(wǎng)雙11模擬上千萬(wàn)級(jí)用戶執(zhí)行加入購(gòu)物車操作,這里的用戶數(shù)就是并發(fā)數(shù)。
-
響應(yīng)時(shí)間:完成一個(gè)事務(wù)的時(shí)間(客戶端-網(wǎng)絡(luò)-服務(wù)器-數(shù)據(jù)庫(kù)),完成特定場(chǎng)景用時(shí),比如千萬(wàn)級(jí)用戶執(zhí)行加入購(gòu)物車操作的完成時(shí)間,最有名的為2-5-8原則為準(zhǔn)則。
-
穩(wěn)定性 :長(zhǎng)時(shí)間運(yùn)行場(chǎng)景系統(tǒng)有無(wú)異常,系統(tǒng)12-24小時(shí)運(yùn)行正常無(wú)報(bào)錯(cuò)。
-
資源使用率:CPU\內(nèi)存使用率,通過(guò)觀察服務(wù)器的CPU\內(nèi)存使用率大小,一般《=80%
-
思考時(shí)間(think time):為了模擬真實(shí)的用戶場(chǎng)景,在設(shè)計(jì)腳本時(shí)需要加上思考時(shí)間,比如執(zhí)行完加入購(gòu)物車,到結(jié)算頁(yè)面需要2-3s時(shí)間,這段時(shí)間可以為思考時(shí)間。
3.性能測(cè)試過(guò)程
大致分為需求分析->指標(biāo)分析->場(chǎng)景用例設(shè)計(jì)->腳本用例設(shè)計(jì)->構(gòu)建測(cè)試數(shù)據(jù)->腳本開(kāi)發(fā)->執(zhí)行運(yùn)行結(jié)果并收集->輸出測(cè)試報(bào)告->性能調(diào)優(yōu)與回歸幾大過(guò)程。
性能測(cè)試工具的選擇
目前主流的性能測(cè)試工具有Jmeter 和Loadrunner,大部分公司基本上都用Jmeter,原因loadrunner有下面三個(gè)缺點(diǎn) :
1)價(jià)格昂貴,一般是按協(xié)議和虛擬用戶數(shù)量收費(fèi);
2)不能二次開(kāi)發(fā),比如實(shí)現(xiàn)額外的功能,不支持自己寫的腳本;
3)支持的最大并發(fā)數(shù)是50,想要支持大量并發(fā)數(shù)有限制。
所以這篇文章介紹的是Jmeter工具的使用。
測(cè)試計(jì)劃
1.?明確實(shí)現(xiàn)功能
不知道哪些場(chǎng)景 需要測(cè)試,可從以下幾個(gè)方面考量:
-
比如登錄場(chǎng)景,幾乎所有的系統(tǒng)及系統(tǒng)操作都在登錄基礎(chǔ)上完成,所以一般登錄場(chǎng)景都在計(jì)劃內(nèi)
-
用戶量大的功能:購(gòu)物系統(tǒng)的加入購(gòu)物車功能,支付功能等
-
重要的功能:系統(tǒng)的核心業(yè)務(wù)功能,支付等
2.?確定指標(biāo)值
一般指標(biāo)值大部分下面產(chǎn)品/項(xiàng)目經(jīng)理會(huì)根據(jù)用戶使用習(xí)慣提供,但是部分小公司流程不完善,每個(gè)指標(biāo)都需要測(cè)試人員自己制定,提供一下思路。
根據(jù)公式計(jì)算
QPS:一般找到一天總最高的峰值,比如淘寶網(wǎng)上午10點(diǎn)是訪問(wèn)高峰,pv峰值為5208,那么他的QPS=5208*0.8/(3600*0.2),其中2-8原則的意思是80%的業(yè)務(wù)量由20%的時(shí)間來(lái)完成,3600為小時(shí)轉(zhuǎn)化為秒。
并發(fā)數(shù)
一般有3種方法:
A.根據(jù)公式QPS=并發(fā)數(shù)/平均響應(yīng)時(shí)間,其中時(shí)間和qps已知,可得出并發(fā)數(shù)
B.根據(jù)在線活動(dòng)數(shù)來(lái)估算
C.根據(jù)以往經(jīng)驗(yàn)
下面以在線活動(dòng)數(shù)為例:
首先明確3個(gè)用戶數(shù)
系統(tǒng)用戶數(shù):系統(tǒng)注冊(cè)的人數(shù)
在線用戶數(shù):系統(tǒng)用戶注冊(cè)的人數(shù)有一部分為僵尸用戶,不使用產(chǎn)品的,刨除這一部分使用產(chǎn)品功能的用戶為在線用戶數(shù)
并發(fā)用戶數(shù):?計(jì)算平均的并發(fā)用戶數(shù):C = nL/T,其中T為考核時(shí)長(zhǎng),n為登錄系統(tǒng)用戶數(shù),L為登錄時(shí)長(zhǎng),一般考核時(shí)長(zhǎng)為1天,登錄時(shí)長(zhǎng)2小時(shí),比如一個(gè)系統(tǒng)用戶數(shù)為500,則C=500*2/8=125
一般在實(shí)際工作中,根據(jù)公司的業(yè)務(wù)需求,小公司更傾向于不利用公式計(jì)算,先自己設(shè)定一個(gè)值看看服務(wù)器反應(yīng),再逐步遞增,這種比較費(fèi)時(shí),還有一種利用階梯壓測(cè)直接分析服務(wù)器性能瓶頸從而進(jìn)一步分析。
腳本錄制實(shí)例
舉幾個(gè)我在實(shí)際實(shí)際工作中認(rèn)為對(duì)大家有用處的例子。
1.錄制腳本-jmeter/badboy
前提:各個(gè)控件已經(jīng)搭建好(添加測(cè)試計(jì)劃-代理服務(wù)器-線程組-僅一次控制器-事務(wù)控制器等)。
Jmeter錄制登錄腳本
1)IE瀏覽器設(shè)置代理
首先在瀏覽器找到局域網(wǎng)設(shè)置對(duì)話框,填寫代理服務(wù)器ip地址(jmeter工具使用電腦ip地址),端口默認(rèn)8888,一般不用改變,點(diǎn)擊確定。
2)代理服務(wù)器設(shè)置你的目標(biāo)控制器,腳本想放到哪個(gè)控制器下選中哪個(gè),這里登錄要和其他功能一起調(diào)試,所以選擇僅一次控制器。
3)代理服務(wù)器點(diǎn)擊上圖 中的啟動(dòng)按鈕,ie瀏覽器輸入網(wǎng)址->輸入賬號(hào)、密碼點(diǎn)擊執(zhí)行登錄操作。
4)登錄成功后點(diǎn)擊jmeter左上角的停止按鈕。
5)查看登錄控制器下的session,會(huì)出現(xiàn)登錄過(guò)程中執(zhí)行的一系列會(huì)話腳本。
6)調(diào)試運(yùn)行查看結(jié)果樹,沒(méi)有紅色記錄表明成功了,一般響應(yīng)數(shù)據(jù)下有返回值就可以了。
2.Badboy錄制登錄接口
為什么要用Badboy錄制了,有時(shí)候用Jmeter錄制的時(shí)候會(huì)出現(xiàn)錄制的內(nèi)容不出現(xiàn),導(dǎo)致流程無(wú)法往下進(jìn)行,比如下拉框選擇,其實(shí)是有內(nèi)容的,但是錄制的時(shí)候內(nèi)容就不出現(xiàn),這時(shí)候可以嘗試使用badboy試試看。
1)啟動(dòng)badboy,輸入ip地址后點(diǎn)擊運(yùn)行安妮。
2)頁(yè)面右側(cè)顯示登錄界面,點(diǎn)擊錄制圖標(biāo),輸入用戶名、密碼登錄后點(diǎn)擊停止運(yùn)行。
3)停止錄制后,選擇文件->選中Export to JMeter。
4)打開(kāi)JMeter導(dǎo)入剛才的腳本,到此badboy腳本錄制成功。
學(xué)習(xí)安排上
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來(lái)總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走
這些資料,對(duì)于想進(jìn)階【自動(dòng)化測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過(guò)了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對(duì)大家有所幫助…
總結(jié)
以上是生活随笔為你收集整理的Jmeter实战:零基础也能看懂的性能测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【】每日360题,2019.11.05日
- 下一篇: 10分钟健身法读书笔记(2/5)