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