JMeter非GUI方式運行時動態設置線程組及傳參


http://blog.csdn.net/selingchen/article/details/48106517

在使用JMeter進行性能測試自動化時,可能會有如下需求:

1.指定運行多少線程,指定運行多少次;

2.訪問的目標地址變化了,端口也變化了,需要重新指定。

上面的需求如果有GUI方式運行,這都不是問題,直接在腳本上進行修改即可以了。

 

但是性能測試自動化是以非GUI方式運行的,如果要修改測試計划就比較麻煩了。

下面來說說如何簡單的搞定這些問題:

1.指定運行多少線程

    我們知道JMeter測試計划在運行Sampler之前先加載運行屬性(jmeter.properties,system.properties等),那么我們可以借助屬性來完成。

當然了,我們也不會傻到去修改這些配置文件,這多麻煩。JMeter提供了方法可以動態修改屬性,在命令行使用 -J 來指定JMeter Properties

(jmeter.bat  -help | jmeter.sh -help可以看到幫助),使用__P() 函數來獲取命令中指定的屬性值。

看一下實例: 

    jmeter.bat -JthreadCount=2 -Jcycle=2 -n -t baidu.jmx -l baidu.jtl

 threadCount=2為baidu.jmx測試計划要指定的線程數

-Jcycle=2為baidu,jmx測試計划要指定的每個線程的迭代次數

在baidu.jmx測試計划中用${__P(threadCount,)}來獲取threadCount的值;${__P(cycle,)}來獲取cycle的值。

運行效果如下:

 

2.訪問的目標地址變化了,端口也變化了,重新指定:

JMeter 命令行通過-D來指定System Properties,類似於Jdk中我們用-D來指定一些系統屬性,比如開啟JMX遠程監控。

在JMeter腳本中我們用__property()函數來獲取,比如-Durl=www.baidu.com在測試計划中用${__property(url,,)}來獲取

運行命令如下:

jmeter.bat -JthreadCount=2 -Jcycle=2 -Durl=www.baidu.com -Dport=80 -n -t baidu.jmx -l baidu.jtl

 腳本如下:

 

如上使用-J -D在運行前動態設置屬性,可以用來控制測試計划的執行,在非GUI方式運行時還是比較方便的。

自然性能測試自動化時我們可以利用這些命令行參數來動態指定屬性,不用再修改腳本了。

通過外部設置不同的線程數,rampUp時間,持續運行時間使用同一個腳本測試不同的場景:

 

執行命令:設置線程數為3,rampup時間為1s,持續執行45秒鍾。

 sh jmeter.sh -JthreadCount=3 -JRampUp=1 -JDurationTime=45 -n -t /Users/lyh/Desktop/Script/CallInfoByTelNum.jmx -l /Users/lyh/Desktop/Script/CallInfoByTelNum.jtl

執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM