近在公司想做下壓力或負載測試,當然我首先想到的是用JMeter,以前也認識過它,可能它能滿足基本測試需求。使用之前要先認識下它。
先到官方網(wǎng)站下載新版本:http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi,目前新版是jakarta-jmeter-2.7。
運行bin/jmeter.bat后,先來了解幾個術語:
1、線程組:測試里每個任務都要線程去處理,所有我們后來的任務必須在線程組下面創(chuàng)建。可以在“測試計劃->添加->線程組”來建立它,然后在線程組面板里有幾個輸入欄:線程數(shù)、Ramp-Up Period(in seconds)、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時間內創(chuàng)建完所有的線程。如有8個線程,Ramp-Up = 200秒,那么線程的啟動時間間隔為200/8=25秒,這樣的好處是:一開始不會對服務器有太大的負載。
2、取樣器(Sampler):可以認為所有的測試任務都由取樣器承擔,有很種,如:HTTP 請求。
3、斷言:對取樣器返回的請求結果給出判斷,是否正確。
4、monitor:它的功能是對取樣器的請求結果顯示、統(tǒng)計一些數(shù)據(jù)(吞吐量、KB/S……)等。
先這些概念。下面來試用一下:
添加線程組,右擊測試計劃->添加->線程組,線程數(shù)為2,Ramp-Up=0,循環(huán)次數(shù)=5;添加取樣器:右擊線程組->添加->Sample->HTTP 請求,Web服務器localhost,端口8080,協(xié)議http,路徑/index.jsp;添加monitor,右擊線程組->添加->monitor->圖形結果(第二個),然后再添加一個Summary report monitor。
然后,運行->啟動,在兩個monitor中都可以看到一些內容,如:
運行bin/jmeter.bat后,先來了解幾個概念:
1、線程組:測試里每個任務都要線程去處理,所有我們后來的任務必須在線程組下面創(chuàng)建?梢栽“測試計劃->添加->線程組”來建立它,然后在線程組面板里有幾個輸入欄:線程數(shù)、Ramp-Up Period(in seconds)、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時間內創(chuàng)建完所有的線程。如有8個線程,Ramp-Up = 200秒,那么線程的啟動時間間隔為200/8=25秒,這樣的好處是:一開始不會對服務器有太大的負載。
2、取樣器(Sampler):可以認為所有的測試任務都由取樣器承擔,有很種,如:HTTP 請求。
3、斷言:對取樣器返回的請求結果給出判斷,是否正確。
4、monitor:它的功能是對取樣器的請求結果顯示、統(tǒng)計一些數(shù)據(jù)(吞吐量、KB/S……)等。
了解了這些概念。下面來試用一下:
1、添加線程組,右擊測試計劃 -> 添加 -> 線程組,線程數(shù)為10,Ramp-Up=1,循環(huán)次數(shù)=5;
2、添加取樣器:右擊線程組->添加->Sample->HTTP 請求,Web服務器localhost,端口8080,協(xié)議http,路徑/index.jsp;添加monitor,右擊線程組->添加->monitor->圖形結果(第二個),然后再添加一個Summary report monitor。
然后,運行 -> 啟動,在兩個monitor中都可以看到一些內容
JMeter 的主要測試組件總結如下:
1、測試計劃是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。
2、線程組代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請求。實際的請求內容在Sampler中定義,它被線程組包含。
3、monitor負責收集測試結果,同時也被告知了結果顯示的方式。
4、邏輯控制器可以自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的請求序列。
5、斷言可以用來判斷請求響應的結果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個限制對于有效的測試是非常有用的。
6、配置元件維護Sampler需要的配置信息,并根據(jù)實際的需要會修改請求的內容。
7、前置處理器和后置處理器負責在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設置,后置處理器則常常用來處理響應的數(shù)據(jù)。
8、定時器負責定義請求之間的延遲間隔。