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 及以上版本
相关推荐
卡布奇诺-海晨12 小时前
Jmeter实现3000个参数进行并发
jmeter
西瓜程序猿13 小时前
使用手机如何将纸质礼薄转换为电子礼薄?
测试工具·智能手机·创业创新·记了么·电子礼薄·份子钱
半个俗人18 小时前
fiddler的基础使用
前端·测试工具·fiddler
站长工具箱19 小时前
基于浏览器的键盘按键测试工具功能解析
测试工具·计算机外设
小陈的进阶之路1 天前
Selenium 滑动 vs Appium 滑动
python·selenium·测试工具·appium
程序员小远1 天前
软件测试用例总结
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
爱丽_2 天前
软件测试基础分类与核心概念整理
功能测试·测试工具·测试用例
测试人社区—83522 天前
‌TCP/IP协议栈参数调优验证:软件测试从业者指南
网络·人工智能·网络协议·tcp/ip·测试工具·语音识别·压力测试
趙卋傑2 天前
测试开发场景下常见的 MCP 服务
开发语言·python·测试工具·ai编程
林开落L2 天前
【项目实战】博客系统完整测试报告(含自动化+性能测试)
python·功能测试·jmeter·自动化·postman·性能测试·xmind