Java使用JMeter進(jìn)行高并發(fā)測試
軟件的壓力測試是一種保證軟件質(zhì)量的行為.在金融,電商等領(lǐng)域應(yīng)用比較普遍.通俗的講,壓力測試即在一定的硬性條件下,模擬大批量用戶對軟件系統(tǒng)進(jìn)行高負(fù)荷測試.需要注意的是,壓力測試的目的不是為了讓軟件變得完美無瑕,而是通過壓力測試,測試出軟件的負(fù)荷極限,進(jìn)而重新優(yōu)化性能或在實際的應(yīng)用環(huán)境中控制風(fēng)險.
常見的壓力測試工具:
1. LoadRunner:支持多種常用協(xié)議多且個別協(xié)議支持的版本比較高;可以設(shè)置靈活的負(fù)載壓力測試方案,
可視化的圖形界面可以監(jiān)控豐富的資源;報告可以導(dǎo)出到Word、Excel以及HTML格式。
LoadRunner官網(wǎng):https://saas.hpe.com/zh-cn/software/loadrunner
2.NeoLoad是Neotys出品的一種負(fù)載和性能測試工具,可真實地模擬用戶活動并監(jiān)視基礎(chǔ)架構(gòu)運行狀態(tài),從而消除所有Web和移動應(yīng)用程序中的瓶頸。NeoLoad通過使用無腳本GUI和一系列自動化功能,可讓測試設(shè)計速度提高5-10倍,并將維護(hù)的腳本維持在原始設(shè)計時間的10%,同時幫助用戶使用持續(xù)集成系統(tǒng)自動進(jìn)行測試。
NeoLoad支持WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技術(shù)協(xié)議,能夠監(jiān)控包括操作系統(tǒng),應(yīng)用服務(wù)器,Web服務(wù)器,數(shù)據(jù)庫和網(wǎng)絡(luò)設(shè)備在內(nèi)的各種IT基礎(chǔ)設(shè)施,同時可以通過Neotys云平臺發(fā)起外部壓力。
官網(wǎng)鏈接:http://www.neotys.com/product/overview-neoload.html
3.JMeter:是開源測試工具,專門為運行和服務(wù)器負(fù)載測試而設(shè)計、100%的純Java桌面運行程序。
原先它是為Web/HTTP測試而設(shè)計的,但是它已經(jīng)擴(kuò)展以支持各種各樣的測試模塊。
它和HTTP和SQL(使用JDBC)的模塊一起運行。它可以用來測試靜止或活動資料庫中的服務(wù)器運行情況,
可以用來模擬服務(wù)器或網(wǎng)絡(luò)系統(tǒng)在重負(fù)載下的運行情況。它也提供了一個可替換的界面用來定制數(shù)據(jù)顯示,
測試同步及測試的創(chuàng)建和執(zhí)行。多平臺支持,可在Linux,Windows,Mac上運行
官網(wǎng)鏈接:http://jmeter.apache.org/
使用JMeter進(jìn)行高并發(fā)測試
1.下載并安裝JMeter
下載JMeter 5.0,并將下載后的apache-jmeter-5.0.zip 解壓到固定目錄.
然后配置jmeter環(huán)境:
1.修改變量JMETER_HOME,值為實際壓縮路徑
2.修改Path變量,追加以下內(nèi)容? %JMETER_HOME%\bin;
3.修改或添加CLASSPATH變量,添加以下內(nèi)容:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar;
2.使用JMeter進(jìn)行測試
打開命令提示符窗口,輸入"jmeter"命令啟動JMeter,或者打開bin下的jmeter.bat,如圖所示:
設(shè)置jmeter語言為中文
添加測試計劃
添加線程組
設(shè)置線程參數(shù)
線程數(shù):要啟動的線程數(shù)目
Ramp-Up Period(in seconds):線程啟動時間間隔,如果為0,則代表同時啟動對應(yīng)線程數(shù)的線程,即并發(fā)數(shù)
循環(huán)次數(shù):請求執(zhí)行次數(shù)
添加http請求
設(shè)置http請求相關(guān)系數(shù)
添加"察看結(jié)果樹"監(jiān)聽器
啟動測試計劃
查看測試結(jié)果
3.生成測試報告
jmeter -n -t D:\jmeter\jmeter-5.0\backups\測試計劃.jmx?-l d:\jmeter\result.jtl -e-o d:\result
?參數(shù)說明:
)n:非GUI模式執(zhí)行JMeter;
)t: 腳本文件(.jmx文件)的路徑;
)l: 指定生成測試結(jié)果的保存文件(.jtl格式),此文件必須不存在;
)e:測試結(jié)束后,生成測試報告;
)o:用于存放測試報告的路徑;
4.分析測試報告
APDEX是一個國際通用標(biāo)準(zhǔn),是用戶對應(yīng)用性能滿意度的量化值.定義了2個用戶滿意度閾值,是綜合并發(fā)測試中的所有線程響應(yīng)時間,并結(jié)合滿意度閾值量化出的具體數(shù)值.
Requests Summary(請求摘要)
表示執(zhí)行成功和失敗的請求數(shù)目的具體占比,OK表示執(zhí)行成功,KO表示執(zhí)行失敗,JMeter主要以HTTP狀態(tài)碼是否為200來判斷請求的成功與失敗.
Statistics(綜合統(tǒng)計圖)
Statistics為綜合性的請求響應(yīng)時間及響應(yīng)狀態(tài)的統(tǒng)計圖,包括了請求數(shù),請求失敗數(shù),請求錯誤比例,平均響應(yīng)時間,最小響應(yīng)時間,最大響應(yīng)時間等.
到此這篇關(guān)于Java使用JMeter進(jìn)行高并發(fā)測試的文章就介紹到這了,更多相關(guān)Java JMeter高并發(fā)測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA過濾標(biāo)簽實現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法示例
這篇文章主要介紹了JAVA過濾標(biāo)簽實現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法,涉及java針對HTML代碼的正則替換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07MyBatis 接收數(shù)據(jù)庫中沒有的字段的解決
這篇文章主要介紹了MyBatis 接收數(shù)據(jù)庫中沒有的字段的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot+Vue項目部署上線的實現(xiàn)示例
本文主要介紹了SpringBoot+Vue項目部署上線的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02