為減少jmeter對機器性能的消耗,有以下注意事項:
- 不使用監聽器
View Results in Table => OutOfMemory guarantee in GUI Mode
View Results in Tree => OutOfMemory guarantee in GUI Mode
Graph Results => Performance issues
Assertion Results => OutOfMemory guarantee
Comparison Assertion Visualizer
Distribution Graph (alpha) => Performance issues
Graph Results => Performance issues
保持使用最新版本
新版本JMeter的性能已經得到極大提高負載測試使用NON-GUI模式
JMeter has 2 modes:
- GUI mode is for creating the test plan, checking it, debuging it BUT NOT FOR MASSIVE LOAD TEST . AWT Event Thread will disrupt your Load Test.
- NON-GUI mode is for massive load testing, it is as simple as:
<JMETER_HOME>/bin/jmeter -t <Path to Test Plan> -n -l <path to results>/results.csv
配置合適的JMeter虛擬內存
保存輸出結果使用CSV格式
在屬性文件添加如下代碼
jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.data_type=false
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=false
jmeter.save.saveservice.assertions=false
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.response_message=false
jmeter.save.saveservice.assertion_results_failure_message=false
jmeter.save.saveservice.timestamp_format=HH:mm:ss
jmeter.save.saveservice.default_delimiter=;
jmeter.save.saveservice.print_field_names=true
有效使用后置處理器和斷言
有效使用正則表達式提取器
最好提取盡量少的數據盡量不使用XPath提取器
使用Response Assertion or Size assertion
這兩個組件能滿足99%的測試需求,避免使用耗資源的組件:
XML Assertion
XML Schema Assertion
XPath Assertion
使用JSR 223 + Groovy編寫腳本
執行完測試后再生成報告
分布式(遠程)測試
當使用一臺機器達到極限,可以切換為分布式測試或遠程測試若還不能滿足
使用能支持JMeter4的云解決方案
來源:
JMeter Performance and Tuning Tips
http://www.ubik-ingenierie.com/blog/jmeter_performance_tuning_tips/