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