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