軟件測試 | 如何運行JMeter
要啟動JMeter,在Windows下運行jmeter.bat,或者在UNIIX下運行文件jmeter,這兩個文件都可以在bin目錄下找到。在一個很短的等待之后,JMeter的圖形用戶界面就會出現。在bin目錄中,還有其他幾個測試人員可能會用到的腳本。
Windows腳本文件(.cmd要求Windows2000及其后續(xù)版本)。
jmeter.bat:運行JMeter(默認GUI模式)。
jmeter-n.cmd:加載一個JMX文件,并在非GUI模式下運行。
jmeter-n-r.cmd:加載一個JMX文件,并在遠程費GUI模式下運行。
jmeter-t.cmd:加載一個JMX文件,并在GUI模式下運行
jmeter-server.cmd:以服務器模式啟動JMeter.
mirror-server.cmd:在非GUI模式下啟動JMeter鏡像服務器。
shutdown.cmd:關閉一個非GUI實例(優(yōu)雅的)。
stoptest.cmd:停止一個非GUI實例(中斷式的)。
通過環(huán)境變量JVM_ARGS,我們可以修改在jmeter.bat中定義的JVM設置。例如:set JVM_ARGS="-Xms1024m -Xmx1024m -Dpropname=propvalue"
jmeter -t test.jmx...
UNIX腳本文件,應該能在絕大多數Linux/UNIX系統(tǒng)下運行。
jmeter:運行JMeter(默認GUI模式)。定義了一些JVM設置,但并不是對所有JVM都生效。
jmeter-server:以服務器模式啟動JMeter(通過合適的參數來調用jmeter腳本)
jmeter.sh:沒有指定JVM選項的非?;A的jmeter腳本
mirror-server.sh:在非GUI模式下啟動JMeter鏡像服務器。
shutdowm.sh:關閉一個非GUI實例(優(yōu)雅的)。
stoptest.sh:停止一個非GUI實例(中斷式的)。
如果當前使用的JVM不支持某些JVM選項,那么測試人員就有必要修改jmeter shell 腳本。另外用戶可以使用JVM_ARGS環(huán)境變量來修改或者添加JVM選項,例如:
JVM_ARGS="Xms1024m -Xmx1024m" jmeter -t test.jmx [etc.]
就會覆蓋腳本中的堆設置。
1.JMeter的Classpath
JMeter會通過一下目錄中的jar文件加載類。
JMETER_HOME/lib:公用包
JMETER_HOME/lib/ext:包含JMeter元件和補丁。
如果測試人員開發(fā)了新的JMeter元件,那么需要將對應jar包放到JMeter的lib/ext目錄下。JMeter會自動加載這些jar包中的JMeter元件。
公用支持的jar包,應該被放在lib目錄下。如果測試人員不想將JMeter擴展包放在lib/ext目錄下,那么就需要jmeter.properties文件中定義屬性search_paths。不要在lib/ext目錄中放置公用包,它應該只供JMeter元件使用。
其他jar包(JDBS、JMS實現包,以及任何其他支持包)都應該被放置在lib目錄,而非lib/ext目錄下。
測試人員還可以加載房子啊$JAVA_HOME/jre/lib/ext目錄中的公用包,或者在jmeter.properties文件中定義user.classpath屬性。
需要注意的是,設置環(huán)境變量CLASSPATH對JMeter不起作用。這時因為JMeter是以“java-jar”方式啟動,而該Java命令會默默地忽略CLASSPATH變量,而且使用-jar可以攜帶-classpath/cp選項(這對所有Java程序都是一樣的,并非只針對JMeter)。
2.使用代理服務器
如果測試對象隱藏在防火墻/代理服務器之后,那么測試人員需要向JMeter提供防火墻/代理服務器的主機名和端口號。用戶可以通過命令行來運行jmeter.bat/jmeter文件 ,并攜帶如下參數,以達到提供主機名和端口號的目的。
-H[代理服務器主機名或者IP地址]
-P[代理服務器端口]
-N[不使用代理的主機](例如*.apache.org|localhost)
-u[代理驗證的用戶名-如果要求的話]
-a[代理驗證的密碼-如果要求的話]
例如:jmeter-H my.proxy.server -P 8000 -u username -a password -N localhost.
3.非GUI模式(命令行模式)
對于非交互測試,測試人員可以選擇不使用GUI來運行JMeter。要達到這一目的,可以使用如下命令選項:
-n指明JMeter以非GUI模式運行
-t[JMX文件(其中包含測試計劃)的名稱]
-I [JTL 文件(存放測試采樣數據)的名稱]
-j [JMeter 日志文件的名稱]
-r 在JMeter屬性“remote_hosts”中定義的服務上遠程運行測試腳本
-R [遠程服務器列表]在指定的遠程服務器上運行測試
這些JMeter腳本同樣允許測試人員指明可選的防火墻/代理服務器的信息:
-H[代理服務器主機名或者IP地址]
-P[代理服務器端口號]