【碎片化学习】JMeter中常用的设置优化

JMeter.properties 配置优化

JMeter的核心配置文件jmeter.properties位于bin目录下,通过修改该文件可以调整JMeter的全局行为。

关键参数配置

  • httpclient4.time_to_live: 设置连接池中连接的最大存活时间(毫秒),默认-1(无限)。建议根据测试场景调整为合理值(如60000)。
  • httpclient4.retrycount: 请求失败后的重试次数,默认3。可调整为1以减少重复请求对测试结果的影响。
  • jmeter.save.saveservice.*: 控制结果文件的保存内容。例如jmeter.save.saveservice.response_data=true可保存响应数据,但会增加磁盘I/O。
  • summariser.interval: 控制控制台摘要输出的频率(秒),默认30。调整为10可更频繁查看测试进度。

示例配置片段

httpclient4.time_to_live=60000
httpclient4.retrycount=1
jmeter.save.saveservice.response_data=false
summariser.interval=10

JMeter.bat 启动参数优化

jmeter.bat(Windows)或jmeter.sh(Linux/Mac)是JMeter的启动脚本,可通过调整JVM参数优化性能。

关键参数

  • 堆内存设置: 修改HEAP参数,例如set HEAP=-Xms2g -Xmx4g,根据测试规模分配内存(避免OOM)。
  • 垃圾回收优化: 添加-XX:+UseG1GC启用G1垃圾回收器,减少GC停顿时间。
  • 禁用GUI模式: 非调试时添加-n参数以非GUI模式运行,减少资源消耗。

示例修改片段

set HEAP=-Xms2g -Xmx4g -XX:+UseG1GC
set JMETER_OPTS=%JMETER_OPTS% -Djava.awt.headless=true

HTTP取样器常用优化配置

HTTP取样器是性能测试的核心组件,通过以下配置可提升测试效率。

连接与超时设置

  • 实现方式(Implementation): 选择HttpClient4(默认)以获得更好的连接池管理。
  • 超时参数:
    • 连接超时(Connect Timeout): 建议设为5000毫秒。
    • 响应超时(Response Timeout): 根据业务需求设置(如10000毫秒)。

高级配置

  • 启用Keep-Alive: 勾选Use KeepAlive以复用连接,减少TCP握手开销。
  • 内容编码: 勾选Use multipart/form-data用于文件上传场景。
  • 从HTML获取资源: 在需要模拟浏览器行为时勾选Retrieve All Embedded Resources,但会增加采样器数量。

示例配置截图

  • Basic选项卡: 设置协议、域名、路径、方法(GET/POST)。
  • Advanced选项卡: 调整超时和连接池参数。

其他优化建议

  • 分布式测试: 在remote_hosts属性中配置负载生成器IP,分散压力。
  • CSV数据文件: 使用CSV Data Set Config参数化请求,避免硬编码。
  • 监听器选择: 避免使用View Results Tree等高开销监听器,改用Aggregate ReportSummary Report

通过以上配置调整,可显著提升JMeter的测试效率和结果准确性。

更多配置

其他常用的配置项见下表:

配置项配置说明影响对应的 JMeter 版本
jmeter.save.saveservice.output_format定义保存的结果文件格式。决定了结果文件的输出格式,可以是 CSV、XML 等。2.0 及以上版本
jmeter.save.saveservice.response_data是否保存响应数据。如果设置为 true,响应数据将会保存在结果文件中。2.0 及以上版本
jmeter.save.saveservice.response_time是否保存响应时间。影响结果中是否保存请求的响应时间。2.0 及以上版本
jmeter.save.saveservice.latency是否保存延迟时间。控制是否保存从请求开始到响应开始的时间。2.0 及以上版本
jmeter.save.saveservice.thread_counts是否保存线程数目。如果设置为 true,会保存每个请求的线程数目。2.0 及以上版本
jmeter.save.saveservice.successful是否保存请求成功的标志。如果设置为 true,会记录请求是否成功。2.0 及以上版本
jmeter.threads.max最大线程数目。控制测试中同时运行的最大线程数。2.0 及以上版本
jmeter.engine.remote.start启用或禁用远程启动测试。设置为 true,允许通过远程方式启动测试。2.0 及以上版本
jmeter.gui.color设置 JMeter GUI 的颜色主题。可以设置为不同的颜色方案,影响 JMeter 用户界面的外观。2.0 及以上版本
jmeter.save.saveservice.include指定保存结果时要包含哪些字段。用逗号分隔字段名称,只保存指定的字段。2.0 及以上版本
jmeter.save.saveservice.timestamp_format设置时间戳格式。用于设置结果文件中的时间戳格式,影响时间戳的显示格式。3.0 及以上版本
jmeter.reportgenerator.overall_granularity设置报告的粒度。控制报告中数据的粒度,影响结果的详细程度。3.0 及以上版本
jmeter.ssl.default.protocol设置 SSL 协议。设置默认的 SSL 协议,例如 TLSv1.2、TLSv1.3 等。3.1 及以上版本
jmeter.log_level.jmeter设置日志记录级别。可以选择不同的日志级别(例如 DEBUG、INFO、WARN 等)。2.0 及以上版本
posted on 2025-10-15 17:11  ljbguanli  阅读(9)  评论(0)    收藏  举报