一、安裝Jmeter1、下載Jmeter下載地址:http://jmeter./download_jmeter.cgi 目前最新版為2.9,其余文件如源代碼等也可從如下官網(wǎng)下載: http://jmeter./download_jmeter.cgi
2、安裝Jmeter之前安裝Jmeter之前需要先配置Java環(huán)境,我們下載的是jmeter2.9,所以java版本最好是選用java6以后的版本。 安裝JDk1.6的步驟如下:(windows環(huán)境,Linux類似) 點擊下載的JDK文件-dk-6u18-windows-i586.exe,點擊下一步直至安裝完成,然后開始配置環(huán)境: 點擊我的電腦----屬性----高級----環(huán)境變量----在系統(tǒng)變量中----點擊新建, 在變量名中輸入:JAVA_HOME 變量值中輸入:C:\Program Files (x86)\Java\jdk1.6.0_18 再次點擊新建: 在變量名中輸入:CLASSPATH, 變量值中輸入:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar; 然后再系統(tǒng)變量中找到Path,點擊編輯,在變量值中加上: %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;(如果前面沒有“;”需要加上) 配置完成之后,點擊確定保存,然后cmd打開命令窗口輸入:java或者javac,出現(xiàn)大串字符串表示配置成功。 也可以輸入:java -version 查看java版本來查看是否配置成功。
OK,JDK安裝成功之后,就可以下一步安裝Jmeter了。 3、安裝Jmeter解壓apache-jmeter-2.9.zip文件至目錄,我的是D:\Program Files目錄。 點擊我的電腦----屬性----高級----環(huán)境變量----在系統(tǒng)變量中----點擊新建, 變量名輸入: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;然后確定即可 操作完上面的步驟,我們就可以點擊Jmeter中bin目錄下面的jmeter.bat文件即可打開Jmeter了。 注意:打開的時候會有兩個窗口,Jmeter的命令窗口和Jmeter的圖形操作界面,不可以關(guān)閉命令窗口。 界面如下圖所示: 【Ubuntu 環(huán)境下安裝】 以JMeter2.9為例,下載地址:http://jmeter./download_jmeter.cgi,選擇binaries下2.9版本。 解壓完成后,添加環(huán)境變量: vi /etc/profile 添加下述兩行: export JMETER="/usr/local/jmeter/apache-jmeter-2.9" 完成添加后下述命令使配置生效: source /etc/profile 二、錄制Jmeter腳本錄制Jmeter腳本有兩種方法,一種是設(shè)置代理;一種則是利用badboy軟件,badboy軟件支持導(dǎo)出jmx腳本。 這里我們介紹第二種方法,利用badboy錄制腳本,然后導(dǎo)出Jmeter需要的jmx文件。 首先,在地址欄中輸入要錄制腳本的地址,然后點擊綠色按鈕即可開始錄制(工具欄中的紅色按鈕也可以點擊進行錄制),點擊紅色圓形按鈕旁邊的正方形黑色按鈕結(jié)束腳本錄制(如果使用過loadrunner,那么步驟是一樣的),在內(nèi)嵌的瀏覽器上面操作你需要測試的動作即可,它會自己記錄你的相關(guān)行為動作。 然后點擊黑色按鈕錄制完成之后,我們可以導(dǎo)出jmx文件:
保存為“登錄開發(fā)者.jmx”。 三、使用Jmeter開始測試1、打開腳本用Jmeter打開我們上面保存的文件。
打開之后如圖所示: 2、修改腳本a、線程組在測試計劃里面選擇添加既可以看到線程組。
如上圖: 名稱:可以隨意取,我們保持創(chuàng)建是自動分配的名稱 注釋:隨意 在取樣器錯誤后要執(zhí)行的動作:我們選擇繼續(xù),錯誤之后依然繼續(xù)執(zhí)行 線程數(shù):一般我們用來表示多少個用戶,即我們測試時的用戶數(shù)量 Ramp-up Period(in Seconds):表示每個用戶啟動的延遲時間,上述我設(shè)為1秒,表示系統(tǒng)將在1秒結(jié)束前啟動我設(shè)置的1000個用戶,如果設(shè)置為1000秒,那么系統(tǒng)將會在1000秒結(jié)束前啟動這1000個用戶,開始用戶的延遲為1秒, 如果我設(shè)置為0秒,則表示立即啟動所有用戶。 循環(huán)次數(shù):如果你要限定循環(huán)次數(shù)為10次的話,可以取消永遠的那個勾,然后在后面的文本框里面填寫10;在這里我們勾上永遠,表示如果不停止或者限定時間將會一直執(zhí)行下去, 是為了方便調(diào)度器的調(diào)用。 調(diào)度器的配置:我們勾選調(diào)度器時,將會出現(xiàn)這個面板 啟動時間:表示我們腳本開始啟動的時間,當你不想立即啟動腳本測試,但是啟動腳本的時間不會再電腦旁的時候,你可以設(shè)定一個啟動的時間,然后再運行那里點擊啟動,系統(tǒng)將不會立即運行,而是會等到你填寫的時間才開始運行。 結(jié)束時間:與啟動時間對應(yīng),表示腳本結(jié)束運行的時間。 持續(xù)時間:表示腳本持續(xù)運行的時間,以秒為單位,比如如果你要讓用戶持續(xù)不斷登錄1個小時,你可以在文本框中填寫3600。如果在1小時以內(nèi),結(jié)束時間已經(jīng)到達,它將會覆蓋結(jié)束時間,繼續(xù)執(zhí)行。 啟動延遲:表示腳本延遲啟動的時間,在點擊啟動后,如果啟動時間已經(jīng)到達,但是還沒有到啟動延遲的時間,那么,啟動延遲將會覆蓋啟動時間,等到啟動延遲的時間到達后,再運行系統(tǒng)。 注意:如果我們需要用到調(diào)度器來設(shè)定持續(xù)時間,如果線程數(shù)不夠多到持續(xù)時間結(jié)束,我們就必須將循環(huán)次數(shù)勾選為永遠,特別地,如果線程組里面有其他的循環(huán),我們也需將該循環(huán)次數(shù)勾選為永遠(如我上面錄制的腳本中的Step1也是一個循環(huán),需要將永遠勾選),否則,按我如上配置,將永遠去掉勾選,文本里填1,那么無論你將持續(xù)時間啟動時間結(jié)束時間等設(shè)置多少,系統(tǒng)運行1000次后,將會停止不再運行。 b、關(guān)于HTTP請求關(guān)于HTTP請求,我們錄制的腳本里面就有,這里就介紹一些常用的屬性。 如圖所示:
點擊HTTP請求,將會出現(xiàn)如下界面: 其中: 名稱:可以隨意取,我們可以根據(jù)錄制腳本的路徑來命名 注釋:可以對該界面做一個簡單介紹 服務(wù)器名稱或IP:即我們的服務(wù)器或者IP的地址,我因為是在本機上的項目,故填寫localhost,可以填寫127.0.0.1。 端口號:我用的是tomcat,自己設(shè)置的端口號為8086(tomcat默認為8080) 后面的超時定義可以不用填寫。 Implementation:這里我們錄制時默認填寫為JAVA 協(xié)議填寫為:http 方法為:GET Content encoding:編碼可以不用填寫 路徑:即頁面的路徑;下面的重定向等選擇可以根據(jù)需要勾選,這里我們保持錄制不修改。 Parameters參數(shù):即跟著路徑一起發(fā)送的參數(shù)及文件 下面的代理服務(wù)器等可以忽略,按需要填寫。 c、參數(shù)化如下面圖,我們?yōu)檎埱蟀l(fā)送的參數(shù)來參數(shù)化。
上述的例子為登錄的用例,登錄有兩個參數(shù):EMAIL和DEVELOPER_PASSWORD,在實際測試中,當我們需要用到不同的用戶來登錄的時候,我們就可以用到參數(shù)化。 1)、我們新建一個文件,這里我新建的是一個txt文件,命名為c.txt,里面的內(nèi)容為 web@qq.com,111111 col@qq.com,111111 mon@qq.com,111111 2)、在jmeter中的【選項】中選擇【函數(shù)助手對話框】,將會彈出如下對話框:
其中: CSV file to get values from | *alias:要讀取的文件路徑,為絕對路徑 CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0 如上圖所示,我們讀取的是c.txt里面的第一列用戶名(如果要讀取第二列的密碼,只需將0改成1即可,往后類推),點擊【生成】按鈕即可生成函數(shù),我們使用時即拷貝生成的函數(shù)字符串:${__CSVRead(E:\c.txt,0)}。 其他函數(shù)后面介紹。 d、斷言驗證在web測試中,有的時候,即使我們測試返回的response code為200,也不能保證該測試是正確的,這時候,我們可以用到響應(yīng)斷言,通過對比響應(yīng)的內(nèi)容來判斷返回的頁面是否是我們確定要返回的頁面。 選擇我們要判斷的頁面,點擊添加斷言----響應(yīng)斷言,將會出現(xiàn)如下圖:
名稱:隨意,這里我們不做改動 注釋:隨意 Apply to:這里我們選擇默認值 要測試的響應(yīng)字段:這里我們選擇響應(yīng)的文本,即返回的頁面信息 模式匹配規(guī)則:這里我們選擇包括,即響應(yīng)的文本是否包括我們驗證的信息 要測試的模式:開發(fā)者名稱,即我們需要驗證,開發(fā)者名稱是否在響應(yīng)文本中存在,也可以添加更多的字段來驗證。 其他還有文件大小和響應(yīng)時間等的斷言,后面介紹。 e、添加監(jiān)聽器我們做性能測試的時候,經(jīng)常需要各種數(shù)據(jù)來驗證我們的測試結(jié)果,Jmeter里面也提供了相關(guān)的功能,這里主要說一下Aggregate Report聚合報告。 點擊添加---監(jiān)聽器,選擇:查看結(jié)果樹,和聚合報告,如果需要看到斷言信息也可以選擇斷言結(jié)果,將設(shè)置的一切保存之后,然后點擊啟動,系統(tǒng)將會運行,將結(jié)果在監(jiān)聽器中表現(xiàn)出來。 四、分析結(jié)果1、查看結(jié)果樹如圖所示:成功的為綠色,失敗則顯示為紅色。如果測試的結(jié)果太多,你只需要看到錯誤的頁面,則勾選【僅日志錯誤】
2、聚合報告(Aggregate Report)
其中: Label:標簽,即我們上面的請求名稱 #Samples:本次場景中一共發(fā)出了多少個請求 Average:平均響應(yīng)時間 Median:中位數(shù),也就是50%的用戶的響應(yīng)時間 90%Line:表示90%的用戶的響應(yīng)時間,如果最小值和最大值相差很大的話,我們一般選擇這個作為最終測試結(jié)果 Min:最小響應(yīng)時間 Max:最大響應(yīng)時間 Error%:出錯率,本次測試中出現(xiàn)錯誤的請求的數(shù)量/請求的總數(shù) Throughput:吞吐量 KB/sec:每秒從服務(wù)器端接受到的數(shù)據(jù)量 五、監(jiān)控內(nèi)存及CPU等很多時候,我們測試性能都需要查看內(nèi)存和CPU等信息來判斷系統(tǒng)瓶頸,關(guān)于CPU和內(nèi)存的監(jiān)控,Jmeter并沒有很好的支持,很多時候,我們都只能通過系統(tǒng)的資源監(jiān)控器來觀察,一閃而過不會記錄下來,很不方便。幸好google開發(fā)了一款專門監(jiān)控的Jmeter插件,彌補了Jmeter這方面的不足,下面就來介紹一些這款插件——JMeterPlugins,目前我用的是0.5.6版本。 1、JMeterPlugins的下載地址地址:http://code.google.com/p/jmeter-plugins/downloads/list,選擇需要的版本,下載 2、JMeterPlugins的配置使用將下載的文件解壓,得到如下目錄:
將JMeterPlugins.jar包復(fù)制到Jmeter的lib目錄下面的ext目錄下面,重新啟動Jmeter,我們點擊添加就可以看到出現(xiàn)了很多的jp@gc-開頭的文件. 這里監(jiān)控內(nèi)存我們使用的是:jp@gc - PerfMon Metrics Collectot 在使用之前,我們需要運行/serverAgent/startAgent.bat這個文件,我們需要將serverAgent目錄及下面的文件復(fù)制到我們測試的服務(wù)器上,然后點擊打開(我這里是本機,直接在本機上面打開這個應(yīng)用系統(tǒng)即可),它的默認端口為4444。 一切準備好后,點擊啟動,即可得到如下圖:
你就可以得到系統(tǒng)運行時,你所需要的常用的性能值了。 六、監(jiān)控內(nèi)存及CPU等(jconsole)最近逛論壇的時候,發(fā)現(xiàn)了一個比較好的監(jiān)控內(nèi)存CPU等的小工具,本著開源小工具多多益善的原則,記錄一下。 打開這個小工具的步驟很簡單,如果你已經(jīng)配置好了Jmeter運行的環(huán)境,那么你也就不用去做其他的配置,直接 點擊:開始——》運行——》輸入cmd——》然后在出現(xiàn)的命令行界面輸入“jconsole”即可彈出一個【java監(jiān)視和管理控制臺】,
將會彈出如下界面:
這里我們選擇本地進程,并點擊一下sun.tools.jconsole.JConsole這一行,然后點擊連接,就可以查看我們的內(nèi)存和CPU的使用情況了。 當然,我們要得到服務(wù)器的內(nèi)存使用等信息,也可以選擇 本地進程下面的遠程進程,在文本框中輸入我們需要測試的服務(wù)器的IP地址:端口,然后在下面輸入用戶名和密碼,點擊連接,看看會出現(xiàn)什么情況。
轉(zhuǎn)載http://www.cnblogs.com/linglingyuese/archive/2013/03/04/linglingyuese-one.html |
|
|