一兼呵、接口測(cè)試方案選型
? ? ? ? 預(yù)研最常用的幾款性能測(cè)試工具兔辅,loadrunner不支持mac先排除,jmeter能夠支持錄制击喂、傳參维苔、壓力測(cè)試、輸出報(bào)告等基本功能懂昂,還有各種強(qiáng)大功能沒(méi)有使用過(guò)介时,小安然判斷支持將來(lái)項(xiàng)目的性能測(cè)試肯定是夠用的了,因此接口測(cè)試工具選擇了jmeter凌彬。
? ? ? ? jmeter測(cè)試報(bào)告原本以為必須用ant等工具去編譯才能生成沸柔,傻乎乎的裝了ant編譯出報(bào)告后再去用jenkins發(fā)郵件時(shí),才發(fā)現(xiàn)jmeter3.0之后已經(jīng)優(yōu)化過(guò)報(bào)告這一塊铲敛,一條命令就能生成html報(bào)告褐澎,而jenkins的插件Performance Plugin生成的性能測(cè)試報(bào)告更加豐富,總之實(shí)現(xiàn)起來(lái)都很簡(jiǎn)單伐蒋,工具非常成熟工三,OK動(dòng)手實(shí)現(xiàn)吧。
二先鱼、jmeter的安裝與使用
安裝一句命令就可以搞定:brew install jmeter
啟動(dòng)命令:open /usr/local/bin/jmeter
三俭正、jmeter一鍵錄制
主要注意jmeter中添加代理服務(wù)器以及在網(wǎng)絡(luò)或?yàn)g覽器設(shè)置使用代理服務(wù)器。
1.工作臺(tái)右鍵焙畔,添加http代理服務(wù)器掸读;
2.注意此處端口對(duì)應(yīng)后面步驟網(wǎng)絡(luò)或?yàn)g覽器設(shè)置代理的端口號(hào),設(shè)置好后必須點(diǎn)擊啟動(dòng)按鈕闹蒜,否則使用此代理端口的網(wǎng)絡(luò)請(qǐng)求會(huì)不通;
3.建議設(shè)置下請(qǐng)求過(guò)濾抑淫,不錄制圖片js等無(wú)需關(guān)注的請(qǐng)求绷落;
排除模式設(shè)置為(?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)
4.設(shè)置網(wǎng)絡(luò)或?yàn)g覽器代理
? ? ? ? 小安然不想限制使用某個(gè)瀏覽器來(lái)錄制,直接配置網(wǎng)絡(luò)代理始苇。
? ? ? ? 具體步驟為砌烁,mac上點(diǎn)擊網(wǎng)絡(luò)圖標(biāo),選擇打開(kāi)網(wǎng)絡(luò)偏好設(shè)置——高級(jí)——代理,勾上網(wǎng)頁(yè)代理函喉,代理服務(wù)器寫本機(jī)IP避归,端口寫前面步驟jmeter中設(shè)置的端口號(hào),點(diǎn)“好”按鈕保存設(shè)置管呵。
? ? ? ? 此時(shí)http的網(wǎng)絡(luò)請(qǐng)求都會(huì)被自動(dòng)錄制到j(luò)meter中了梳毙,錄制完成后關(guān)閉代理服務(wù)器,自行編輯即可捐下。
jmeter腳本執(zhí)行命令:
jmeter -n -t /usr/local/Cellar/ant/1.10.5/bin/aibot.jmx -l aibot.jtl -e -o output
(此命令執(zhí)行前必須保證不存在jtl文件账锹,否則命令會(huì)報(bào)錯(cuò))
四、jmeter持續(xù)集成
jenkins中安裝兩個(gè)插件Performance Plugin坷襟、Performance Publisher plugin奸柬,
Jenkins任務(wù)按下圖配置,即可自動(dòng)進(jìn)行接口測(cè)試生成測(cè)試報(bào)告婴程。
測(cè)試結(jié)果:
——踩到一個(gè)坑記錄下:
jenkins生成的HTML Report網(wǎng)頁(yè)使用了css廓奕,權(quán)限問(wèn)題導(dǎo)致生成的報(bào)告會(huì)顯示成空?qǐng)?bào)告,解決方法為在jenkins系統(tǒng)管理中輸入以下腳本運(yùn)行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
千萬(wàn)注意:萬(wàn)惡的jenkins重啟之后就會(huì)失效啊失效啊失效档叔。桌粉。。蹲蒲。番甩。。届搁。缘薛。。卡睦。宴胧。。表锻。恕齐。
寫到這個(gè)坑,突然覺(jué)得這個(gè)問(wèn)題應(yīng)該有辦法徹底解決的吧瞬逊,需要去研究下jenkins權(quán)限相關(guān)显歧。