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