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 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
大面积秃头4 小时前
postman工具使用前置知识
测试工具·postman
程序员大辉4 小时前
接口调试利器,Postman免安装,免登陆
测试工具·lua·postman
星哥说事5 小时前
网络监控工具:ping、traceroute、nmap、Wireshark 网络探测与分析
网络·测试工具·wireshark
测试界清流20 小时前
jmeter环境搭建
jmeter
qq_49244844620 小时前
Jmeter循环控制器,IF控制器,正则表达式
jmeter
张永清-老清20 小时前
每周读书与学习->JMeter主要元件详细介绍(一)配置元件
学习·jmeter·性能调优·jmeter性能测试·性能分析·干货分享
wdlnancy20 小时前
Jmeter 线程组、定时器、监听器、后置处理器常用配置说明
jmeter
清风~徐~来20 小时前
【软件测试】性能测试工具 JMeter
jmeter·性能测试
晚笛诶20 小时前
Jmeter分布式集群搭建与使用
jmeter