温馨提示×

如何在centos上优化jmeter测试报告

小樊
34
2025-11-22 04:26:23
栏目: 智能运维

在 CentOS 上优化 JMeter 测试报告

一 生成更详细的原始数据 JTL

  • 使用非 GUI 模式执行,直接输出 .jtljmeter -n -t your.jmx -l result.jtl。非 GUI 模式更稳定、资源占用更低,适合在 CentOS 服务器上运行压测。
  • $JMETER_HOME/bin/jmeter.properties 中开启关键字段保存(按需精简,避免过大 JTL):
    • 基础与响应:jmeter.save.saveservice.label=trueresponse_code=trueresponse_message=truesuccessful=truetime=truelatency=trueconnect_time=truebytes=truesent_bytes=true
    • 请求/响应细节:samplerData=trueresponseHeaders=truerequestHeaders=trueurl=truehostname=true
    • 断言与子结果:assertions=truesubresults=true
    • 响应体:建议开启 response_data=true;若 JTL 过大可改为仅错误时保存 response_data.on_error=true
    • 注意:CSV 输出不支持 response_data,需要 HTML 报告时请使用 JTL(XML) 输出。
  • 运行后可用 JMeter GUI 的 Summary Report 打开 .jtl 进行快速校验。

二 使用增强型 XSL 模板生成 HTML 报告

  • 将增强样式(如 jmeter-results-detail-report_30.xsljmeter.results.shanhe.me.xsl)放入 $JMETER_HOME/extras
  • 生成报告方式一(内置 Dashboard):jmeter -n -t your.jmx -l result.jtl -e -o ./report_dashboard(生成包含 APDEX、Statistics、Errors 等指标的 Dashboard)。
  • 生成报告方式二(XSL 转换):jmeter -g result.jtl -o ./report_xsl(使用 extras 下自定义 .xsl 生成更细的 HTML,如按 Average Time 排序、显示 90% Line/QPS、在 Failure Detail 展示 Response Data、支持中文等)。
  • 若使用 Ant + Jenkins 持续集成,可在 build.xml 中将样式从 jmeter-results-detail-report_21.xsl 切换为 _30.xsl 或自定义 shanhe.xsl,并配置目标以自动删除旧 .jtl/.html、执行 XSL 转换、归档报告。

三 报告可读性与样式优化

  • 长文本换行:在 shanhe.xsl 中为展示断言/响应内容的元素增加 CSS:white-space: pre-wrap;white-space: initial;,避免 \n 被压缩成空格。
  • 表格与排序:使用 jmeter-results-detail-report_30.xsl 可获得更友好的表格、Average Time 倒序、90% Line/QPS 展示、Failure Detail 显示 Response Data 等;支持中文显示优化。
  • 报告为空或样式异常排查:优先查看 $JMETER_HOME/bin/jmeter.log 定位脚本/数据问题;确认 .jtl 非空且包含期望字段。

四 大数据量与稳定性优化

  • 报告生成阶段性能:在 $JMETER_HOME/bin/user.properties 调整聚合与 APDEX 参数,降低计算开销,例如:
    • jmeter.reportgenerator.overall_granularity=60000(1 分钟聚合)
    • jmeter.reportgenerator.apdex_satisfied_threshold=500apdex_tolerated_threshold=1500
    • jmeter.reportgenerator.statistic_window=20000
  • 运行阶段资源与准确性:
    • 压测时禁用 View Results Tree/Summary Table 等监听器,减少内存占用;仅在脚本调试阶段使用。
    • 使用 CSV Data Set Config 管理大数据集,必要时拆分文件并开启循环复用;JSR223 + Groovy 替代 BeanShell,并勾选 Cache compiled script if available
    • 分布式压测时,确保 master/slaveserver.rmi.ssl.disable=true,并以 RMI_HOST_DEF 指定正确的本机 IP,避免结果不准确。

五 一键落地示例

  • 非 GUI 执行并生成 Dashboard:jmeter -n -t test.jmx -l result.jtl -e -o ./report_dashboard
  • 使用增强 XSL 生成 HTML:jmeter -g result.jtl -o ./report_xsl(确保 extras 下已放置并配置好自定义 .xsl
  • Ant 构建片段(示例):
    • 删除旧报告:<delete file="${testpath}/${test}.html"/><delete file="${testpath}/${test}.jtl"/>
    • XSL 转换目标:将 style 指向 jmeter-results-detail-report_30.xsljmeter.results.shanhe.me.xsl,执行转换并归档

0