Apache JMeter是Apache組(zu)織基于Java開發的壓(ya)力(li)測(ce)試工(gong)具,用于對軟件做壓(ya)力(li)測(ce)試。
JMeter最初(chu)被設計用(yong)于(yu)Web應用(yong)測試(shi)(shi)(shi),但后(hou)來(lai)擴(kuo)展到(dao)了其他測試(shi)(shi)(shi)領域,可用(yong)于(yu)測試(shi)(shi)(shi)靜態和動態資(zi)源,如靜態文件(jian)、Java 小服(fu)務程(cheng)序、CGI腳(jiao)本、Java對(dui)象、數據庫和FTP服(fu)務器等等。JMeter可對(dui)服(fu)務器、網(wang)絡或(huo)對(dui)象模擬巨大的負載,在不同壓力類別下(xia)測試(shi)(shi)(shi)它們(men)的強度和分析整體性能。另外(wai),JMeter能夠對(dui)應用(yong)程(cheng)序做(zuo)功能/回歸(gui)測試(shi)(shi)(shi),通過創建(jian)帶有(you)斷言的腳(jiao)本來(lai)驗證程(cheng)序是否返回了期(qi)望結(jie)果。為(wei)了最大限度的靈(ling)活性,JMeter允許使(shi)用(yong)正則(ze)表達(da)式創建(jian)斷言。
Apache Software Foundation的(de)Stefano Mazzocchi是(shi)JMeter的(de)初始開發人員(yuan)。他編寫它主要用于測試Apache JServ的(de)性能(neng)(一(yi)個后來被(bei)Apache Tomcat項目(mu)替代的(de)項目(mu))。我們重新設(she)計(ji)了JMeter,增強了它的(de)GUI和添加(jia)了功能(neng)測試支持(chi)。
我們希望看到隨著(zhu)開發人員利(li)用插(cha)件架構的(de)優勢(shi),JMeter的(de)能(neng)(neng)力能(neng)(neng)夠迅速擴展。將來開發的(de)主(zhu)要目(mu)標是使得JMeter盡可能(neng)(neng)地變成一個(ge)有用的(de)回歸測試工具,而不僅是JMeter的(de)壓力測試能(neng)(neng)力。
JMeter的作用
1.能夠(gou)對HTTP和(he)FTP服(fu)務器進行(xing)壓(ya)力和(he)性(xing)能測(ce)試,也可以對任何數據庫進行(xing)同樣的測(ce)試(通過JDBC)。
2.完全的可移植性和100%純(chun)java。
3.完全Swing和輕量組件支持(chi)(預編譯(yi)的JAR使用javax.swing.*)包。
4.完全多線程(cheng) 框架允許通過(guo)多個(ge)線程(cheng)并發取(qu)樣和通過(guo)單獨的線程(cheng)組對(dui)不同(tong)的功能同(tong)時取(qu)樣。
5.精心的GUI設計允許快(kuai)速操作和更精確的計時。
6.緩存和(he)離(li)線分析/回放測試結果(guo)。
JMeter的高(gao)可擴展性
1.可鏈接的取樣器允許無限制的測試能力。
2.各種負載(zai)統計(ji)表和可鏈接(jie)的計(ji)時器可供選擇。
3.數據分析和可視化(hua)插(cha)件提(ti)供了很(hen)好的(de)可擴(kuo)展性(xing)以及(ji)個(ge)性(xing)化(hua)。
4.具有(you)提(ti)供動態輸(shu)入到測試的功能(neng)(包括Javascript)。
5.支持腳(jiao)本編程的取樣器(在1.9.2及以上版本支持BeanShell)。
在設計階(jie)段,JMeter能夠(gou)充當(dang)HTTP PROXY(代理(li))來(lai)記錄(lu)IE/NETSCAPE的HTTP請求,也可(ke)(ke)以(yi)記錄(lu)apache等WebServer的log文件(jian)來(lai)重(zhong)現(xian)(xian)HTTP流量(liang)。當(dang)這些HTTP客戶端請求被記錄(lu)以(yi)后,測試運行時可(ke)(ke)以(yi)方便的設置重(zhong)復次(ci)數和(he)并發度(線程數)來(lai)產生巨大的流量(liang)。JMeter還提供可(ke)(ke)視(shi)化組件(jian)以(yi)及報表(biao)工具把量(liang)服(fu)務器(qi)在不同壓力(li)下(xia)的性能展現(xian)(xian)出來(lai)。
相比(bi)其(qi)他HTTP測試工(gong)具,JMeter最主(zhu)要的特點在于擴展性強。JMeter能夠自(zi)動掃描其(qi)lib/ext子(zi)目錄下.jar文件中的插件,并且(qie)將其(qi)裝載到內(nei)存,讓用戶通過不同(tong)的菜(cai)單調(diao)用。
1、Label:定義(yi)的HTTP請求名稱
2、Samples:表示這(zhe)次測(ce)試中一共發(fa)出(chu)了(le)多少個請求
3、Average:訪問(wen)頁面的平均響應時間
4、Min:訪問(wen)頁面(mian)的最小(xiao)響應時間
5、Max:訪問頁面的(de)最(zui)大響應時(shi)間
6、Error%:錯誤的(de)(de)請(qing)求的(de)(de)數量/請(qing)求的(de)(de)總數
7、Throughput:每秒完成的(de)請求數(shu)
8、KB/Sec:每秒從服務器(qi)端(duan)接收(shou)到的數據量