使用jmeter對web業(yè)務(wù)進(jìn)行一次完整的性能測試,包括錄制腳本、腳本調(diào)試、設(shè)計場景、執(zhí)行壓測,記錄結(jié)果、性能分析等,全面了解使用jmeter進(jìn)行web性能測試流程。
在錄制腳本前,需要先明確業(yè)務(wù)流程,需要添加的事務(wù),需要創(chuàng)建幾個線程等。
web業(yè)務(wù)中一個頁面操作,會有大量的http請求,我們一般不關(guān)注單個請求的性能,而是某個操作整體的性能狀況,所以需要將操作添加到事務(wù),最終關(guān)注事務(wù)的性能狀況。
本例查詢業(yè)務(wù),需要進(jìn)行的操作主要有登錄、搜索菜單、打開菜單、點擊查詢、注銷登錄等,其中一個虛擬用戶,登錄、注銷操作只需要做一次,查詢業(yè)務(wù)可以做多次,因此將注銷放tearDown Thread Group線程組,所有主線程執(zhí)行完成后,最后執(zhí)行,且為了方便查詢操作能和登錄共用一個有效回話,登錄和查詢業(yè)務(wù)可以放一個線程組,錄制完腳本后登錄操作添加一個Once Only Controller,來實現(xiàn)登錄一次,查詢業(yè)務(wù)多次操作。
另外還需要根據(jù)實際情況,添加公共的默認(rèn)cookie,http默認(rèn)值等。
明確了以上問題,就可以在測試計劃中依次添加,如下圖:
2. 配置http代理服務(wù)器
測試計劃準(zhǔn)備好,就可以對http代理服務(wù)器進(jìn)行設(shè)置,包括代理端口、過濾不需要錄制的頁面元素,如.png、css等頁面元素,還需要對瀏覽器設(shè)置代理服務(wù)器,端口號要和http代理服務(wù)器中設(shè)置的一致
3. 錄制腳本
http代理服務(wù)器和ie代理服務(wù)器都設(shè)置完成后,點擊【start】按鈕就可以進(jìn)行腳本錄制了。jmeter5.0后,在錄制腳本過程中有recording框,和loadrunner類似,可以實時添加事務(wù)。腳本錄制完成后,可以在響應(yīng)的事務(wù)控制器下看到錄制的腳本。
刪掉不相干的請求,在錄制過程中可能有非業(yè)務(wù)相關(guān)的請求,也一塊記錄,刪除這些請求。
參數(shù)化,線程組添加CSV Data Set Config ,將登陸用戶、查詢條件等進(jìn)行參數(shù)化,多并發(fā)時就會模擬不同用戶、不同查詢條件。
關(guān)聯(lián),如果有需要關(guān)聯(lián)的參數(shù),在相應(yīng)的http請求下添加提取器,提取關(guān)聯(lián)參數(shù)進(jìn)行關(guān)聯(lián),關(guān)聯(lián)參數(shù)的確定可以通過fiddler抓包確認(rèn),或直接詢問相關(guān)的開發(fā)人員。
斷言,根據(jù)實際需求在相關(guān)的請求下添加斷言,來判斷請求是否達(dá)到預(yù)期值。
登錄事務(wù)添加一次性控制器
Cookie共享,注銷和登錄在不同線程組,需要將登錄cookie參數(shù)全局化,在注銷線程組中引用。Cookie參數(shù)化還需要修改配置文件jmeter.properties中CookieManager.allow_variable_cookies=true,默認(rèn)是false
測試計劃中勾選Run Thread Group consecutively,這樣多線程組就能順序執(zhí)行
所有事務(wù)控制器都要勾選Generate parent sampler,這樣結(jié)果統(tǒng)計按事務(wù)統(tǒng)計,否則結(jié)果按每個http請求來統(tǒng)計。
以上完成后,就可以添加監(jiān)控器、View Results Tree、Aggregate Report等,運行腳本,在View Results Tree查看,若有失敗的請求,再根據(jù)實際報錯情況進(jìn)行調(diào)試。
參數(shù)化、一次性邏輯控制器:
關(guān)聯(lián):
全局化cookie參數(shù),在注銷中引用:
腳本調(diào)試完成后運行,在View Results Tree中查看,沒有報錯,調(diào)試成功
本例設(shè)計的場景為5并發(fā),每隔3s起1個并發(fā),壓測5min,完成后查看結(jié)果。
在jmeter默認(rèn)的線程組中設(shè)置,不好實現(xiàn)以上場景,可以下載線程組插件,豐富不同場景需求。
本例用Stepping Thread Group (deprecated)來實現(xiàn)以上場景,如下:
jmeter -n -t D:jmeter查詢.jmx -l D:jmeterQry.jtl -e -o D:jmeter
-n: 非GUI模式執(zhí)行腳本
-t: 腳本文件(含路徑)
-l: 測試結(jié)果保存文件(含路徑)
-e: 測試結(jié)束后生成測試報告(html報告)
-o: 存放測試報告路徑
如果壓測結(jié)束,退出壓測時報The JVM should have exited but did not.修改jmeter.properties中jmeterengine.force.system.exit=true,默認(rèn)為false
記錄性能指標(biāo)結(jié)果(事務(wù)平均響應(yīng)時間、TPS等)。
本例查詢業(yè)務(wù),我們只關(guān)注打開菜單和查詢操作的性能狀況,其他操作不關(guān)注,所以記錄結(jié)果只記錄【打開菜單】和【查詢】事務(wù)。
從本例結(jié)果分析,1/5/10并發(fā)TPS按倍數(shù)遞增,平均響應(yīng)時間相差不大,性能平穩(wěn),從20并發(fā)開始,TPS增加明顯變緩,平均響應(yīng)時間增大,性能有下降趨勢,60并發(fā)TPS開始下降,平均響應(yīng)時間持續(xù)增大,錯誤率也明顯增大,60并發(fā)達(dá)到性能瓶頸。
1并發(fā)響應(yīng)時間趨勢圖:
60并發(fā)響應(yīng)時間趨勢圖:
相關(guān)閱讀:
jmeter響應(yīng)斷言闡述
jmeter web性能測試之關(guān)聯(lián)及參數(shù)化
更多精彩干貨分享
點擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129834.html
摘要:有了測試腳本,通過線程組來模擬真實用戶對服務(wù)器的訪問壓力。不同的是,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線程組。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生改變的。邏輯控制器元件只對其子節(jié)點中的取樣器和邏輯控制器作用。 工欲善其事必先利其器,要保證移動應(yīng)用產(chǎn)品在上線之后能穩(wěn)定運行于各種復(fù)雜環(huán)境,僅僅進(jìn)行功能測試是遠(yuǎn)遠(yuǎn)不夠的,壓力測試越來越被應(yīng)用開發(fā)商所重視。而壓力測試從傳統(tǒng)的內(nèi)部...
摘要:為了最大限度的靈活性,允許使用正則表達(dá)式創(chuàng)建斷言。線程組理解一個虛擬用戶組,線程組內(nèi)線程數(shù)量在運行過程中不會發(fā)生改變。測試執(zhí)行后操作,即線程組執(zhí)行完成后執(zhí)行的內(nèi)容。 Jmeter是Apache組織開發(fā)的基于Java的壓力測試工具,它最初被設(shè)計用于Web應(yīng)用測試,但后來擴展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java 對象、數(shù)...
摘要:點擊確定建議練習(xí)的時候,把這個提示框信息仔細(xì)看看奧閱讀題目要求認(rèn)真閱讀性能測試文檔。 目錄 一.環(huán)境的準(zhǔn)備 1.從比賽官網(wǎng)下載jmeter 2.解壓后,啟動 二.答題 1.下載題目 2.閱讀題目要求 3.錄制腳本 ?4.完善和回放腳本 ?4.提交大賽官網(wǎng)運行,查看成績 ?5)點擊?mooc...
jmeter web性能測試之用beanshell轉(zhuǎn)換全局變量 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75...
摘要:認(rèn)為就等于性能測試,其實這是不對的。性能測試定義指通過自動化的測試工具模擬多種正常峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。另外,從業(yè)務(wù)角度來說也可以使用訪問人數(shù)天或頁面訪問量天做為單位。 隨著軟件行業(yè)的快速發(fā)展,現(xiàn)代的軟件系統(tǒng)越來越復(fù)雜,功能越來越多,測試人員除了需要保證基本的...
閱讀 1356·2023-01-11 13:20
閱讀 1706·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2755·2023-01-11 13:20
閱讀 1400·2023-01-11 13:20
閱讀 3670·2023-01-11 13:20