線程數(shù)量
一般來說單節(jié)點浓冒,jmeter可以有效地運行線程的最大數(shù)量是300衙吩。硬件性能以及測試計劃設(shè)計都將影響JMETER有效運行的線程數(shù)量。所以如果你的性能測試需求大量并發(fā)或者涉及大量線程使用芥备,那么可采用以下兩種解決方案冬耿。
1. 分布式測試,采用slave-node萌壳,將測試分配到不同節(jié)點主機運行亦镶。
2. 將測試數(shù)據(jù)評估,采用推算的方式來評估大量測試可能會遇到問題袱瓮,例如缤骨,從50線程,到100線程尺借,再到200線程绊起,結(jié)合測試數(shù)據(jù),查看服務(wù)器性能變化燎斩,推算可能會存在的瓶頸虱歪。
在命令行下運行測試
永遠不要在GUI界面運行任何壓力測試!
那么GUI界面下都干些什么呢栅表?
1. debugging笋鄙,有時候你可能需要用一些結(jié)果查看器,查看返回的請求怪瓶,或者你用正則匹配器時喂走,來查看獲取的結(jié)果是否正確等怎虫。
2. record test述寡,我必須要承認(rèn)嫉晶,錄制腳本要比直接寫腳本快的多,也方便的多敛滋。
3. development许布,有時我們或許要對腳本進行一些定制開發(fā),當(dāng)我們需要查看結(jié)果報告時候矛缨,GUI仍然是不錯的選擇爹脾,不過越來越多的第三方插件帖旨,可以直接生成測試報告箕昭。
Jmeter在GUI模式下并不是被設(shè)計成一個高負(fù)載的模式,換句話其實jmeter性能真的不怎么樣解阅,簡單易用以及第三方插件工具較多落竹,才是jmeter被廣泛應(yīng)用的原因,如果你追求高性能的工具货抄,推薦使用gatling述召。
禁用listener
因為大量使用監(jiān)聽器會消耗大量的內(nèi)存,將導(dǎo)致GUI界面卡死或jmeter運行內(nèi)存不足朱转。
當(dāng)然,安全的使用‘結(jié)果樹’listener來查看測試結(jié)果的正確性還是有必要的积暖。
所以無論是在命令行模式還是GUI模式藤为,我們在運行壓力測試時,將無用的listener移除掉夺刑。
使用最新版本的jmeter
jmeter仍然存在各種各樣的問題缅疟,所以一直在發(fā)布新的版本,使用最新版本可能會修復(fù)你的一些bug以及改進工具性能遍愿。
使用斷言
jemter的各種斷言存淫,幫助我們驗證從服務(wù)端返回的響應(yīng)是否正確。
加入think time
真實的場景中沼填,用戶不可能不停歇的點完這個就去點那個按鈕桅咆,所以考慮到真實用戶的行為,我們要在不同動作間坞笙,加入think time來模擬真實用戶的行為岩饼,這樣才能更準(zhǔn)確模擬性能測試場景。