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 及以上版本
相关推荐
测试19986 小时前
压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
qq_316837756 小时前
jmeter 分布式压测
分布式·jmeter
程序员小远17 小时前
7个常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·测试用例·压力测试·性能测试
我的xiaodoujiao21 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 24--数据驱动--参数化处理 Excel 文件 1
python·学习·测试工具·pytest
安冬的码畜日常21 小时前
【JUnit实战3_29】第十八章:REST API 接口测试(上)——RESTful 风格的后端 API 的搭建
测试工具·单元测试·restful·rest api·junit 5
小熊猫写算法er1 天前
智能API测试工具SmartAPITester实现方案详解
测试工具
深蓝电商API1 天前
动态资源加载:不用Selenium,如何高效抓取Ajax和SPA网站?
selenium·测试工具·ajax