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 及以上版本
相关推荐
程序员小远13 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744414 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏14 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
专业机床数据采集14 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔14 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH14 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试15 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT101579744415 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化
大叔带刺15 天前
AutoSAR SomeIP配置开发速成_02测试工具开发
测试工具·someip