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可更频繁查看测试进度。

示例配置片段

properties 复制代码
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模式运行,减少资源消耗。

示例修改片段

bat 复制代码
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 及以上版本
相关推荐
新知图书3 小时前
JMeter的取样器
jmeter
小蝙蝠侠3 小时前
JMeter 执行流程
java·jmeter
瑞瑞绮绮3 小时前
Jmeter-初步使用
jmeter
文人sec3 小时前
性能测试-jmeter15-性能项目计划流
分布式·jmeter·性能优化·grafana·prometheus·模块测试
北岛三生5 小时前
Imatest-Star模块(西门子星图)
图像处理·数码相机·测试工具·测试用例·模块测试
天才测试猿17 小时前
postman使用总结
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
cozil21 小时前
Ubuntu硬件性能测试工具
测试工具·ubuntu
cozil21 小时前
tcpdump 使用详解
网络·测试工具·tcpdump