Apache JMeter是Apache組織基于Java開發(fā)的壓力測試工具,用于對(duì)軟件做壓力測試。
JMeter最初被設(shè)計(jì)用于Web應(yīng)用測試,但后來擴(kuò)展到了其他測試領(lǐng)域,可用于測試靜態(tài)和動(dòng)態(tài)資源,如靜態(tài)文件、Java 小服務(wù)程序、CGI腳本、Java對(duì)象、數(shù)據(jù)庫和FTP服務(wù)器等等。JMeter可對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,在不同壓力類別下測試它們的強(qiáng)度和分析整體性能。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證程序是否返回了期望結(jié)果。為了最大限度的靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。
Apache Software Foundation的Stefano Mazzocchi是JMeter的初始開發(fā)人員。他編寫它主要用于測試Apache JServ的性能(一個(gè)后來被Apache Tomcat項(xiàng)目替代的項(xiàng)目)。我們重新設(shè)計(jì)了JMeter,增強(qiáng)了它的GUI和添加了功能測試支持。
我們希望看到隨著開發(fā)人員利用插件架構(gòu)的優(yōu)勢,JMeter的能力能夠迅速擴(kuò)展。將來開發(fā)的主要目標(biāo)是使得JMeter盡可能地變成一個(gè)有用的回歸測試工具,而不僅是JMeter的壓力測試能力。
JMeter的作用
1.能夠?qū)TTP和FTP服務(wù)器進(jìn)行壓力和性能測試,也可以對(duì)任何數(shù)據(jù)庫進(jìn)行同樣的測試(通過JDBC)。
2.完全的可移植性和100%純java。
3.完全Swing和輕量組件支持(預(yù)編譯的JAR使用javax.swing.*)包。
4.完全多線程 框架允許通過多個(gè)線程并發(fā)取樣和通過單獨(dú)的線程組對(duì)不同的功能同時(shí)取樣。
5.精心的GUI設(shè)計(jì)允許快速操作和更精確的計(jì)時(shí)。
6.緩存和離線分析/回放測試結(jié)果。
JMeter的高可擴(kuò)展性
1.可鏈接的取樣器允許無限制的測試能力。
2.各種負(fù)載統(tǒng)計(jì)表和可鏈接的計(jì)時(shí)器可供選擇。
3.數(shù)據(jù)分析和可視化插件提供了很好的可擴(kuò)展性以及個(gè)性化。
4.具有提供動(dòng)態(tài)輸入到測試的功能(包括Javascript)。
5.支持腳本編程的取樣器(在1.9.2及以上版本支持BeanShell)。
在設(shè)計(jì)階段,JMeter能夠充當(dāng)HTTP PROXY(代理)來記錄IE/NETSCAPE的HTTP請(qǐng)求,也可以記錄apache等WebServer的log文件來重現(xiàn)HTTP流量。當(dāng)這些HTTP客戶端請(qǐng)求被記錄以后,測試運(yùn)行時(shí)可以方便的設(shè)置重復(fù)次數(shù)和并發(fā)度(線程數(shù))來產(chǎn)生巨大的流量。JMeter還提供可視化組件以及報(bào)表工具把量服務(wù)器在不同壓力下的性能展現(xiàn)出來。
相比其他HTTP測試工具,JMeter最主要的特點(diǎn)在于擴(kuò)展性強(qiáng)。JMeter能夠自動(dòng)掃描其lib/ext子目錄下.jar文件中的插件,并且將其裝載到內(nèi)存,讓用戶通過不同的菜單調(diào)用。
1、Label:定義的HTTP請(qǐng)求名稱
2、Samples:表示這次測試中一共發(fā)出了多少個(gè)請(qǐng)求
3、Average:訪問頁面的平均響應(yīng)時(shí)間
4、Min:訪問頁面的最小響應(yīng)時(shí)間
5、Max:訪問頁面的最大響應(yīng)時(shí)間
6、Error%:錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
7、Throughput:每秒完成的請(qǐng)求數(shù)
8、KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量