jmeter分析性能报告时的误区
概述
我們用jmeter做性能測(cè)試,必然需要學(xué)會(huì)分析測(cè)試報(bào)告。但是初學(xué)者常常因?yàn)閷?duì)概念的不清晰,最后被測(cè)試報(bào)告帶到溝里去。
?
常見的誤區(qū)
- 分析響應(yīng)時(shí)間全用平均值
- 響應(yīng)時(shí)間不和吞吐量掛鉤
- 響應(yīng)時(shí)間和吞吐量不和成功率掛鉤
。。。。。
?
平均值特別不靠譜
平均值為什么不靠譜?相信大家讀新聞的時(shí)候經(jīng)常可以看到,平均工資,平均房?jī)r(jià),平均支出,等等字眼,你就知道為什么平均值不靠譜了。
(這些都是數(shù)學(xué)游戲)
性能測(cè)試也一樣,平均數(shù)也是不靠譜,推薦一篇詳細(xì)的文章《Why Averages Suck and Percentiles are Great》
我們做性能測(cè)試時(shí),得到的結(jié)果數(shù)據(jù)不會(huì)總是一樣的,而是波動(dòng)的。
如果算平均值就會(huì)出現(xiàn)這樣的情況:測(cè)試了10次,有9次是1ms,而有1次是10s,那么平均數(shù)據(jù)就是1s。
很明顯,這完全不能反應(yīng)性能測(cè)試的實(shí)際情況,因?yàn)槟莻€(gè)10s的請(qǐng)求就是一個(gè)不正常的值。
另外,中位數(shù)(Median)可能會(huì)比平均數(shù)要稍微靠譜一些,中位數(shù)的意就是把將一組數(shù)據(jù)按大小順序排列,處在最中間位置的一個(gè)數(shù)叫做這組數(shù)據(jù)的中位數(shù) ,這意味著有50%的數(shù)據(jù)低于或高于這個(gè)中位數(shù)。
最為正確的統(tǒng)計(jì)做法是用百分比分布統(tǒng)計(jì)。TP50的意思是50%的響應(yīng)時(shí)間都小于某個(gè)值,TP90表示90%的響應(yīng)時(shí)間小于某個(gè)值。
我們有一組數(shù)據(jù):[ 10ms,? 1s, 200ms, 100ms],我們把其從小到大排個(gè)序:[10ms, 100ms, 200ms, 1s]。
于是我們知道,TP50,就是50%的請(qǐng)求ceil(4*0.5)=2時(shí)間是小于100ms的,TP90就是90%的請(qǐng)求ceil(4*0.9)=4時(shí)間小于1s。
于是:TP50就是100ms,TP90就是1s
因此,通常嚴(yán)格一點(diǎn)的響應(yīng)時(shí)間要求是這樣的:99%的請(qǐng)求必須小于XXms
?
響應(yīng)時(shí)間務(wù)必和吞吐量(Thoughput)掛鉤
系統(tǒng)的性能如果只看吞吐量,不看響應(yīng)時(shí)間是沒(méi)有意義的。
我的系統(tǒng)tps可以達(dá)到10000,但是響應(yīng)時(shí)間已經(jīng)到了20秒鐘,這樣的系統(tǒng)已經(jīng)不可用了,吞吐量也是沒(méi)有意義的。
當(dāng)負(fù)載上升的時(shí)候,系統(tǒng)會(huì)逐漸變的不穩(wěn)定,響應(yīng)時(shí)間也會(huì)變得越來(lái)越慢,波動(dòng)越來(lái)越大,而吞吐率卻開始下降,包括CPU的使用率情況也會(huì)如此。
所以,當(dāng)系統(tǒng)變得不穩(wěn)定的時(shí)候,吞吐量已經(jīng)沒(méi)有意義了。
?
所以,吞吐量的值必需配合響應(yīng)時(shí)間來(lái)看。例如:TP99小于100ms的時(shí)候,系統(tǒng)可以承載的最大并發(fā)數(shù)是1000。
?
響應(yīng)時(shí)間吞吐量和成功率要掛鉤
應(yīng)該不難理解,如果請(qǐng)求都是錯(cuò)誤的,還做什么性能測(cè)試。
比如,我說(shuō)我的系統(tǒng)并發(fā)可以達(dá)到10萬(wàn),但是失敗率是50%,那么這10萬(wàn)的并發(fā)完全就是一個(gè)笑話。
性能測(cè)試的失敗率的容忍是非常低的。對(duì)于一些關(guān)鍵系統(tǒng),成功率必須在100%
?
轉(zhuǎn)載于:https://www.cnblogs.com/Zfc-Cjk/p/11152360.html
總結(jié)
以上是生活随笔為你收集整理的jmeter分析性能报告时的误区的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 萨摩耶多少钱一只啊?
- 下一篇: python列表(数组)