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