下載地址:http://jmeter.apache.org/download_jmeter.cgijava
目前最新版爲2.9,其他文件如源代碼等也可從以下官網下載:web
http://jmeter.apache.org/download_jmeter.cgiapache
安裝Jmeter以前須要先配置Java環境,咱們下載的是jmeter2.9,因此java版本最好是選用java6之後的版本。windows
安裝JDk1.6的步驟以下:(windows環境,Linux相似)瀏覽器
點擊下載的JDK文件-dk-6u18-windows-i586.exe,點擊下一步直至安裝完成,而後開始配置環境:tomcat
點擊個人電腦----屬性----高級----環境變量----在系統變量中----點擊新建,服務器
在變量名中輸入: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版原本查看是否配置成功。
OK,JDK安裝成功以後,就能夠下一步安裝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;而後肯定便可
操做完上面的步驟,咱們就能夠點擊Jmeter中bin目錄下面的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腳本有兩種方法,一種是設置代理;一種則是利用badboy軟件,badboy軟件支持導出jmx腳本。
這裏咱們介紹第二種方法,利用badboy錄製腳本,而後導出Jmeter須要的jmx文件。
首先,在地址欄中輸入要錄製腳本的地址,而後點擊綠色按鈕便可開始錄製(工具欄中的紅色按鈕也能夠點擊進行錄製),點擊紅色圓形按鈕旁邊的正方形黑色按鈕結束腳本錄製(若是使用過loadrunner,那麼步驟是同樣的),在內嵌的瀏覽器上面操做你須要測試的動做便可,它會本身記錄你的相關行爲動做。
而後點擊黑色按鈕錄製完成以後,咱們能夠導出jmx文件:
保存爲「登陸開發者.jmx」。
用Jmeter打開咱們上面保存的文件。
打開以後如圖所示:
在測試計劃裏面選擇添加既能夠看到線程組。
如上圖:
名稱:能夠隨意取,咱們保持建立是自動分配的名稱
註釋:隨意
在取樣器錯誤後要執行的動做:咱們選擇繼續,錯誤以後依然繼續執行
線程數:通常咱們用來表示多少個用戶,即咱們測試時的用戶數量
Ramp-up Period(in Seconds):表示每一個用戶啓動的延遲時間,上述我設爲1秒,表示系統將在1秒結束前啓動我設置的1000個用戶,若是設置爲1000秒,那麼系統將會在1000秒結束前啓動這1000個用戶,開始用戶的延遲爲1秒, 若是我設置爲0秒,則表示當即啓動全部用戶。
循環次數:若是你要限定循環次數爲10次的話,能夠取消永遠的那個勾,而後在後面的文本框裏面填寫10;在這裏咱們勾上永遠,表示若是不中止或者限定時間將會一直執行下去, 是爲了方便調度器的調用。
調度器的配置:咱們勾選調度器時,將會出現這個面板
啓動時間:表示咱們腳本開始啓動的時間,當你不想當即啓動腳本測試,可是啓動腳本的時間不會再電腦旁的時候,你能夠設定一個啓動的時間,而後再運行那裏點擊啓動,系統將不會當即運行,而是會等到你填寫的時間纔開始運行。
結束時間:與啓動時間對應,表示腳本結束運行的時間。
持續時間:表示腳本持續運行的時間,以秒爲單位,好比若是你要讓用戶持續不斷登陸1個小時,你能夠在文本框中填寫3600。若是在1小時之內,結束時間已經到達,它將會覆蓋結束時間,繼續執行。
啓動延遲:表示腳本延遲啓動的時間,在點擊啓動後,若是啓動時間已經到達,可是尚未到啓動延遲的時間,那麼,啓動延遲將會覆蓋啓動時間,等到啓動延遲的時間到達後,再運行系統。
注意:若是咱們須要用到調度器來設定持續時間,若是線程數不夠多到持續時間結束,咱們就必須將循環次數勾選爲永遠,特別地,若是線程組裏面有其餘的循環,咱們也需將該循環次數勾選爲永遠(如我上面錄製的腳本中的Step1也是一個循環,須要將永遠勾選),不然,按我如上配置,將永遠去掉勾選,文本里填1,那麼不管你將持續時間啓動時間結束時間等設置多少,系統運行1000次後,將會中止再也不運行。
關於HTTP請求,咱們錄製的腳本里面就有,這裏就介紹一些經常使用的屬性。
如圖所示:
點擊HTTP請求,將會出現以下界面:
其中:
名稱:能夠隨意取,咱們能夠根據錄製腳本的路徑來命名
註釋:能夠對該界面作一個簡單介紹
服務器名稱或IP:即咱們的服務器或者IP的地址,我由於是在本機上的項目,故填寫localhost,能夠填寫127.0.0.1。
端口號:我用的是tomcat,本身設置的端口號爲8086(tomcat默認爲8080)
後面的超時定義能夠不用填寫。
Implementation:這裏咱們錄製時默認填寫爲JAVA
協議填寫爲:http
方法爲:GET
Content encoding:編碼能夠不用填寫
路徑:即頁面的路徑;下面的重定向等選擇能夠根據須要勾選,這裏咱們保持錄製不修改。
Parameters參數:即跟着路徑一塊兒發送的參數及文件
下面的代理服務器等能夠忽略,按須要填寫。
以下面圖,咱們爲請求發送的參數來參數化。
上述的例子爲登陸的用例,登陸有兩個參數:EMAIL和DEVELOPER_PASSWORD,在實際測試中,當咱們須要用到不一樣的用戶來登陸的時候,咱們就能夠用到參數化。
1)、咱們新建一個文件,這裏我新建的是一個txt文件,命名爲c.txt,裏面的內容爲
web@qq.com,111111
col@qq.com,111111
2)、在jmeter中的【選項】中選擇【函數助手對話框】,將會彈出以下對話框:
其中:
CSV file to get values from | *alias:要讀取的文件路徑,爲絕對路徑
CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0
如上圖所示,咱們讀取的是c.txt裏面的第一列用戶名(若是要讀取第二列的密碼,只需將0改爲1便可,日後類推),點擊【生成】按鈕便可生成函數,咱們使用時即拷貝生成的函數字符串:${__CSVRead(E:\c.txt,0)}。
其餘函數後面介紹。
在web測試中,有的時候,即便咱們測試返回的response code爲200,也不能保證該測試是正確的,這時候,咱們能夠用到響應斷言,經過對比響應的內容來判斷返回的頁面是不是咱們肯定要返回的頁面。
選擇咱們要判斷的頁面,點擊添加斷言----響應斷言,將會出現以下圖:
名稱:隨意,這裏咱們不作改動
註釋:隨意
Apply to:這裏咱們選擇默認值
要測試的響應字段:這裏咱們選擇響應的文本,即返回的頁面信息
模式匹配規則:這裏咱們選擇包括,即響應的文本是否包括咱們驗證的信息
要測試的模式:開發者名稱,即咱們須要驗證,開發者名稱是否在響應文本中存在,也能夠添加更多的字段來驗證。
其餘還有文件大小和響應時間等的斷言,後面介紹。
咱們作性能測試的時候,常常須要各類數據來驗證咱們的測試結果,Jmeter裏面也提供了相關的功能,這裏主要說一下Aggregate Report聚合報告。
點擊添加---監聽器,選擇:查看結果樹,和聚合報告,若是須要看到斷言信息也能夠選擇斷言結果,將設置的一切保存以後,而後點擊啓動,系統將會運行,將結果在監聽器中表現出來。
如圖所示:成功的爲綠色,失敗則顯示爲紅色。若是測試的結果太多,你只須要看到錯誤的頁面,則勾選【僅日誌錯誤】
其中:
Label:標籤,即咱們上面的請求名稱
#Samples:本次場景中一共發出了多少個請求
Average:平均響應時間
Median:中位數,也就是50%的用戶的響應時間
90%Line:表示90%的用戶的響應時間,若是最小值和最大值相差很大的話,咱們通常選擇這個做爲最終測試結果
Min:最小響應時間
Max:最大響應時間
Error%:出錯率,本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量
KB/sec:每秒從服務器端接受到的數據量
不少時候,咱們測試性能都須要查看內存和CPU等信息來判斷系統瓶頸,關於CPU和內存的監控,Jmeter並無很好的支持,不少時候,咱們都只能經過系統的資源監控器來觀察,一閃而過不會記錄下來,很不方便。幸虧google開發了一款專門監控的Jmeter插件,彌補了Jmeter這方面的不足,下面就來介紹一些這款插件——JMeterPlugins,目前我用的是0.5.6版本。
地址:http://code.google.com/p/jmeter-plugins/downloads/list,選擇須要的版本,下載
將下載的文件解壓,獲得以下目錄:
將JMeterPlugins.jar包複製到Jmeter的lib目錄下面的ext目錄下面,從新啓動Jmeter,咱們點擊添加就能夠看到出現了不少的jp@gc-開頭的文件.
這裏監控內存咱們使用的是:jp@gc - PerfMon Metrics Collectot
在使用以前,咱們須要運行/serverAgent/startAgent.bat這個文件,咱們須要將serverAgent目錄及下面的文件複製到咱們測試的服務器上,而後點擊打開(我這裏是本機,直接在本機上面打開這個應用系統便可),它的默認端口爲4444。
一切準備好後,點擊啓動,便可獲得以下圖:
你就能夠獲得系統運行時,你所須要的經常使用的性能值了。
最近逛論壇的時候,發現了一個比較好的監控內存CPU等的小工具,本着開源小工具多多益善的原則,記錄一下。
打開這個小工具的步驟很簡單,若是你已經配置好了Jmeter運行的環境,那麼你也就不用去作其餘的配置,直接 點擊:開始——》運行——》輸入cmd——》而後在出現的命令行界面輸入「jconsole」便可彈出一個【java監視和管理控制檯】,
將會彈出以下界面:
這裏咱們選擇本地進程,並點擊一下sun.tools.jconsole.JConsole這一行,而後點擊鏈接,就能夠查看咱們的內存和CPU的使用狀況了。
固然,咱們要獲得服務器的內存使用等信息,也能夠選擇 本地進程下面的遠程進程,在文本框中輸入咱們須要測試的服務器的IP地址:端口,而後在下面輸入用戶名和密碼,點擊鏈接,看看會出現什麼狀況。