更新時間:2022-01-17 10:17:42 來源:動力節(jié)點 瀏覽934次
小編下載的是apache-jmeter-2.13,因為這個包是為一般的linux和windows下載的,所以我們現(xiàn)在在windows下打開。
直接點擊bat打開jmeter:
添加線程組:
添加后,先設(shè)置這兩項:
然后右擊左邊的線程組,添加一個http請求
添加完成后,我們可以看到右邊有一個可編輯的地方:
這里要對這樣一個url進行壓力測試,url請求為http://cm.browser.qq.com/test_xianwu/api/buy
即從App首頁拉取信息
我們直接用瀏覽器打開是這樣的:
見下圖,我們需要將URL分成兩部分填寫
此時點擊保存,保存的文件路徑是自己指定的。我將它保存到 bin 目錄中。保存后是一個jmx文件。
保存后,我們需要在壓力測試的時候查看請求的結(jié)果,所以我們需要添加一個“查看結(jié)果樹”
添加后的樣子:
這時候我們點擊開始,看看效果:
這時候我們增加線程數(shù),首先增加到100
添加后,我去App看了看,然后發(fā)現(xiàn)首頁悲劇了,黑屏:
這時候我們在網(wǎng)站上一看,發(fā)現(xiàn)在返回的子字符串中,列表的內(nèi)容是空的,而這個列表就是我們首頁要顯示的項目:
既然知道了返回失敗請求的特點就是列表為空,那么我們添加一個斷言,讓他直接幫我們過濾掉失敗請求的樣本。
同樣右鍵,“Add”-“Assertion”-“Response Assertion”,添加完成后,我們添加一個子串:
這就是地獄的位置。因為在請求成功的情況下,返回列表中的信息包含了位置,所以我們可以簡單地認為,當位置字段存在時,請求就成功了。
這時候,我們再運行一??遍,看看結(jié)果樹是否能幫助我們識別:
我們可以看到紅色是失敗的次數(shù)。數(shù)字有點大,所以我們需要使用Aggregate Graph
添加完成后,我們開始我們的服務(wù)。這時候,我們可以在這里看到一個粗略的數(shù)據(jù):
這樣,我們就可以不斷地改變線程的數(shù)量,然后觀察失敗率和吞吐量,得到一個當前請求的最優(yōu)對應(yīng)數(shù)量。
測試過程中發(fā)現(xiàn)如果手動停止,最后幾個請求會因為手動停止而拋出異常。所以我們決定讓他請求2w次,2w次后自動停止。然后我們需要在開始時設(shè)置集合的數(shù)量:
這里需要注意的是線程數(shù)和循環(huán)數(shù)的乘積等于一個固定值,然后可以改變兩個乘數(shù),最后我選擇線程數(shù)為10、20、50, 80、100、200,結(jié)果是:
最后生成圖表,可以看出性能瓶頸。結(jié)果如下:
從圖中不難看出響應(yīng)時間延遲很大,而且錯誤率很高,最大qps可以達到50s初期,所以初步懷疑是性能問題,而最后反饋給開發(fā),開發(fā)添加緩存機制。并添加了機器。優(yōu)化后,再來看看數(shù)據(jù)對比:
顯然,優(yōu)化效果顯著,達到了預(yù)期的效果。如果大家想了解更多相關(guān)知識,可以來關(guān)注一下動力節(jié)點的JMeter教程,里面還有更多的知識在等著大家去學習,希望對大家能夠有所幫助。