Jmeter使用流程及簡單分析監控

一、安裝Jmeter


1、下載Jmeter

下載地址:http://jmeter.apache.org/download_jmeter.cgi

目前最新版爲2.9,其餘文件如源代碼等也可從如下官網下載:

http://jmeter.apache.org/download_jmeter.cgi

2、安裝Jmeter之前

安裝Jmeter之前需要先配置Java環境,我們下載的是jmeter2.9,所以java版本最好是選用java6以後的版本。

安裝JDk1.6的步驟如下:(windows環境,Linux類似)

點擊下載的JDK文件-dk-6u18-windows-i586.exe,點擊下一步直至安裝完成,然後開始配置環境:

點擊我的電腦----屬性----高級----環境變量----在系統變量中----點擊新建,

在變量名中輸入:JAVA_HOME

變量值中輸入:C:\Program Files (x86)\Java\jdk1.6.0_18

 

再次點擊新建:

在變量名中輸入:CLASSPATH

變量值中輸入:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;

 

然後再系統變量中找到Path,點擊編輯,在變量值中加上:

%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;(如果前面沒有“;”需要加上)

 

配置完成之後,點擊確定保存,然後cmd打開命令窗口輸入:java或者javac,出現大串字符串表示配置成功。

也可以輸入:java -version 查看java版本來查看是否配置成功。

 

OKJDK安裝成功之後,就可以下一步安裝Jmeter了。

 

3、安裝Jmeter

解壓apache-jmeter-2.9.zip文件至目錄,我的是D:\Program Files目錄。

點擊我的電腦----屬性----高級----環境變量----在系統變量中----點擊新建,

變量名輸入:JMETER_HOME

變量值輸入:D:\Program Files\apache-jmeter-2.9

然後編輯CLASSPATH變量,加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;然後確定即可

操作完上面的步驟,我們就可以點擊Jmeterbin目錄下面的jmeter.bat文件即可打開Jmeter了。

注意:打開的時候會有兩個窗口,Jmeter的命令窗口和Jmeter的圖形操作界面,不可以關閉命令窗口。

界面如下圖所示:

【Ubuntu 環境下安裝】

以JMeter2.9爲例,下載地址:http://jmeter.apache.org/download_jmeter.cgi,選擇binaries下2.9版本。

解壓完成後,添加環境變量:

vi /etc/profile

添加下述兩行:

export JMETER="/usr/local/jmeter/apache-jmeter-2.9"
export CLASSPATH="$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH"

完成添加後下述命令使配置生效:

source /etc/profile


二、錄製Jmeter腳本

錄製Jmeter腳本有兩種方法,一種是設置代理;一種則是利用badboy軟件,badboy軟件支持導出jmx腳本。

這裏我們介紹第二種方法,利用badboy錄製腳本,然後導出Jmeter需要的jmx文件。

首先,在地址欄中輸入要錄製腳本的地址,然後點擊綠色按鈕即可開始錄製(工具欄中的紅色按鈕也可以點擊進行錄製),點擊紅色圓形按鈕旁邊的正方形黑色按鈕結束腳本錄製(如果使用過loadrunner,那麼步驟是一樣的),在內嵌的瀏覽器上面操作你需要測試的動作即可,它會自己記錄你的相關行爲動作。

 

然後點擊黑色按鈕錄製完成之後,我們可以導出jmx文件:

保存爲“登錄開發者.jmx”。

三、使用Jmeter開始測試

1、打開腳本

用Jmeter打開我們上面保存的文件。

打開之後如圖所示:

2、修改腳本

a、線程組

在測試計劃裏面選擇添加既可以看到線程組。 

如上圖:

名稱:可以隨意取,我們保持創建是自動分配的名稱

註釋:隨意

在取樣器錯誤後要執行的動作:我們選擇繼續,錯誤之後依然繼續執行

線程數:一般我們用來表示多少個用戶,即我們測試時的用戶數量

Ramp-up Period(in Seconds):表示每個用戶啓動的延遲時間,上述我設爲1秒,表示系統將在1秒結束前啓動我設置的1000個用戶,如果設置爲1000秒,那麼系統將會在1000秒結束前啓動這1000個用戶,開始用戶的延遲爲1秒, 如果我設置爲0秒,則表示立即啓動所有用戶。

循環次數:如果你要限定循環次數爲10次的話,可以取消永遠的那個勾,然後在後面的文本框裏面填寫10;在這裏我們勾上永遠,表示如果不停止或者限定時間將會一直執行下去, 是爲了方便調度器的調用。

調度器的配置:我們勾選調度器時,將會出現這個面板

啓動時間:表示我們腳本開始啓動的時間,當你不想立即啓動腳本測試,但是啓動腳本的時間不會再電腦旁的時候,你可以設定一個啓動的時間,然後再運行那裏點擊啓動,系統將不會立即運行,而是會等到你填寫的時間纔開始運行。

結束時間:與啓動時間對應,表示腳本結束運行的時間。

持續時間:表示腳本持續運行的時間,以秒爲單位,比如如果你要讓用戶持續不斷登錄1個小時,你可以在文本框中填寫3600。如果在1小時以內,結束時間已經到達,它將會覆蓋結束時間,繼續執行。 

啓動延遲:表示腳本延遲啓動的時間,在點擊啓動後,如果啓動時間已經到達,但是還沒有到啓動延遲的時間,那麼,啓動延遲將會覆蓋啓動時間,等到啓動延遲的時間到達後,再運行系統。 

注意:如果我們需要用到調度器來設定持續時間,如果線程數不夠多到持續時間結束,我們就必須將循環次數勾選爲永遠,特別地,如果線程組裏面有其他的循環,我們也需將該循環次數勾選爲永遠(如我上面錄製的腳本中的Step1也是一個循環,需要將永遠勾選),否則,按我如上配置,將永遠去掉勾選,文本里填1,那麼無論你將持續時間啓動時間結束時間等設置多少,系統運行1000次後,將會停止不再運行。

 

b、關於HTTP請求

 

關於HTTP請求,我們錄製的腳本里面就有,這裏就介紹一些常用的屬性。

 

如圖所示:

點擊HTTP請求,將會出現如下界面:

 

其中:

名稱:可以隨意取,我們可以根據錄製腳本的路徑來命名

註釋:可以對該界面做一個簡單介紹

服務器名稱或IP:即我們的服務器或者IP的地址,我因爲是在本機上的項目,故填寫localhost,可以填寫127.0.0.1

端口號:我用的是tomcat,自己設置的端口號爲8086tomcat默認爲8080

後面的超時定義可以不用填寫。

Implementation:這裏我們錄製時默認填寫爲JAVA

協議填寫爲:http

方法爲:GET

Content encoding:編碼可以不用填寫

路徑:即頁面的路徑;下面的重定向等選擇可以根據需要勾選,這裏我們保持錄製不修改。

Parameters參數:即跟着路徑一起發送的參數及文件

下面的代理服務器等可以忽略,按需要填寫。

c、參數化

如下面圖,我們爲請求發送的參數來參數化。

上述的例子爲登錄的用例,登錄有兩個參數:EMAILDEVELOPER_PASSWORD,在實際測試中,當我們需要用到不同的用戶來登錄的時候,我們就可以用到參數化。

1)、我們新建一個文件,這裏我新建的是一個txt文件,命名爲c.txt,裏面的內容爲

[email protected],111111

[email protected],111111

[email protected],111111

2)、在jmeter中的【選項】中選擇【函數助手對話框】,將會彈出如下對話框:

其中:

CSV file to get values from | *alias:要讀取的文件路徑,爲絕對路徑 

CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0 

如上圖所示,我們讀取的是c.txt裏面的第一列用戶名(如果要讀取第二列的密碼,只需將0改成1即可,往後類推),點擊【生成】按鈕即可生成函數,我們使用時即拷貝生成的函數字符串:${__CSVRead(E:\c.txt,0)}

其他函數後面介紹。

d、斷言驗證

在web測試中,有的時候,即使我們測試返回的response code200,也不能保證該測試是正確的,這時候,我們可以用到響應斷言,通過對比響應的內容來判斷返回的頁面是否是我們確定要返回的頁面。

選擇我們要判斷的頁面,點擊添加斷言----響應斷言,將會出現如下圖:

 

名稱:隨意,這裏我們不做改動

註釋:隨意

Apply to:這裏我們選擇默認值

要測試的響應字段:這裏我們選擇響應的文本,即返回的頁面信息

模式匹配規則:這裏我們選擇包括,即響應的文本是否包括我們驗證的信息

要測試的模式:開發者名稱,即我們需要驗證,開發者名稱是否在響應文本中存在,也可以添加更多的字段來驗證。

其他還有文件大小和響應時間等的斷言,後面介紹。

e、添加監聽器

我們做性能測試的時候,經常需要各種數據來驗證我們的測試結果,Jmeter裏面也提供了相關的功能,這裏主要說一下Aggregate Report聚合報告。

點擊添加---監聽器,選擇:查看結果樹,和聚合報告,如果需要看到斷言信息也可以選擇斷言結果,將設置的一切保存之後,然後點擊啓動,系統將會運行,將結果在監聽器中表現出來。

 

四、分析結果

 

1、查看結果樹

 

如圖所示:成功的爲綠色,失敗則顯示爲紅色。如果測試的結果太多,你只需要看到錯誤的頁面,則勾選【僅日誌錯誤】

2、聚合報告(Aggregate Report)

其中:

Label:標籤,即我們上面的請求名稱

#Samples:本次場景中一共發出了多少個請求

Average:平均響應時間

Median:中位數,也就是50%的用戶的響應時間

90%Line:表示90%的用戶的響應時間,如果最小值和最大值相差很大的話,我們一般選擇這個作爲最終測試結果

Min:最小響應時間

Max:最大響應時間

Error%:出錯率,本次測試中出現錯誤的請求的數量/請求的總數

Throughput:吞吐量

KB/sec:每秒從服務器端接受到的數據量

 

五、監控內存及CPU

 

很多時候,我們測試性能都需要查看內存和CPU等信息來判斷系統瓶頸,關於CPU和內存的監控,Jmeter並沒有很好的支持,很多時候,我們都只能通過系統的資源監控器來觀察,一閃而過不會記錄下來,很不方便。幸好google開發了一款專門監控的Jmeter插件,彌補了Jmeter這方面的不足,下面就來介紹一些這款插件——JMeterPlugins,目前我用的是0.5.6版本。

 

1JMeterPlugins的下載地址

 

地址:http://code.google.com/p/jmeter-plugins/downloads/list,選擇需要的版本,下載

 

2JMeterPlugins的配置使用

 

將下載的文件解壓,得到如下目錄:

將JMeterPlugins.jar包複製到Jmeterlib目錄下面的ext目錄下面,重新啓動Jmeter,我們點擊添加就可以看到出現了很多的jp@gc-開頭的文件.

這裏監控內存我們使用的是:jp@gc - PerfMon Metrics Collectot

在使用之前,我們需要運行/serverAgent/startAgent.bat這個文件,我們需要將serverAgent目錄及下面的文件複製到我們測試的服務器上,然後點擊打開(我這裏是本機,直接在本機上面打開這個應用系統即可),它的默認端口爲4444

一切準備好後,點擊啓動,即可得到如下圖:

你就可以得到系統運行時,你所需要的常用的性能值了。

 

六、監控內存及CPU等(jconsole)

       最近逛論壇的時候,發現了一個比較好的監控內存CPU等的小工具,本着開源小工具多多益善的原則,記錄一下。

          打開這個小工具的步驟很簡單,如果你已經配置好了Jmeter運行的環境,那麼你也就不用去做其他的配置,直接 點擊:開始——》運行——》輸入cmd——》然後在出現的命令行界面輸入“jconsole”即可彈出一個【java監視和管理控制檯】,

將會彈出如下界面:

         這裏我們選擇本地進程,並點擊一下sun.tools.jconsole.JConsole這一行,然後點擊連接,就可以查看我們的內存和CPU的使用情況了。

         當然,我們要得到服務器的內存使用等信息,也可以選擇 本地進程下面的遠程進程,在文本框中輸入我們需要測試的服務器的IP地址:端口,然後在下面輸入用戶名和密碼,點擊連接,看看會出現什麼情況。


轉載http://www.cnblogs.com/linglingyuese/archive/2013/03/04/linglingyuese-one.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章