6

我目前正在使用Taurus工具制作 POC。

在我们公司,我们现在同时使用 JMeter 和 Gatling。

在我的测试中,我能够在没有任何复杂配置的情况下获得 Gatling 报告,但 JMeter 无法获得它的报告

谁能告诉我:

  • 如果可能的话,如果可以的话,请指出我该怎么做?
  • 它不是,为什么它在用于 Gatling 时不可用?

这个要求背后的原因是在我们公司:

  • 我们将对外部系统的测试暴露限制在公共互联网站点
  • 我们想在内部记录跨时间的结果
  • JMeter HTML 报告包含非常丰富的信息,我们需要并使用这些信息来分析我们的测试
  • 我们不想与商业供应商(此处为 Blazemeter)捆绑在一起,因为似乎获得报告的唯一方法是使用 Blazemeter。我们可能会订阅它,但我们不想因为不可用的报告而被阻止。

我希望它是可能的,好像不是使用 Taurus 是不行的。

4

2 回答 2

4

截至目前,Taurus 不会将failureMessage列写入默认 JMeter结果文件配置所需的kpi.jtl文件,以便生成报告仪表板。

所以选项在:

  1. 创建一个单独的步骤,以便使用 Taurus ShellExec服务生成报告仪表板,例如

    services:
    - module: shellexec
      post-process:
      - ~/.bzt/jmeter-taurus/4.0/bin/./jmeter -Jjmeter.save.saveservice.assertion_results_failure_message=false -g ${TAURUS_ARTIFACTS_DIR}/kpi.jtl -o /path/to/report/folder
    ---
    execution:
      scenario:
        script: test.jmx
    
  2. 通过将以下行添加到文件来配置 Taurus 以使用现有的 JMeter 安装.bzt-rc

    modules:
      jmeter:
        path: /path/to/your/JMeter
    

    确保您现有的 JMeter 安装已将jmeter.save.saveservice.assertion_results_failure_message=false行添加到user.properties文件。完成后,您将能够正常从 Taurus kpi.jtl生成报告仪表板

参考:

于 2018-08-22T04:58:39.347 回答
4

看来,截至目前 (August 2018 Taurus 1.12.1) ,根据我自己的测试和我从这里的项目得到的答案,以令人满意和简单的方式是不可能的:

尽管根据@dmitri-t 的回答部分是可能的,但它并不完全令人满意,因为报告中会丢失一些信息,并且您需要根据平台自定义哪些类型会消除 Taurus 的一些简化优势。但希望它有可能在未来的版本中引入。也许您可以在 google 群组主题上添加注释。

2018 年 8 月 23 日编辑:

这是我发现生成所有图表的最佳方式,但它仍然不能完全令人满意,因为 Taurus 出于未知原因覆盖了事务控制器中的“生成父采样器”,这是 JMeter 报告的一个问题:

由于之前的问题,在 JMeter 4.0 中很多图表都是空的,所以我使用了即将发布的 5.0 版本。

所以我在测试计划中添加了一个简单的数据编写器。

请注意,我在配置按钮中检查了报告所需的所有 CSV 字段:

JMeter 报告的简单数据编写器

另请注意,我使用属性“输出”和__P函数:

${__P(输出,)}

最后在 YAML 文件中,我配置:

  • 输出:${TAURUS_ARTIFACTS_DIR}/输出/
  • 报告使用的属性:

    • jmeter.reportgenerator.apdex_satisfied_threshold:1000
    • jmeter.reportgenerator.report_title:JMeter Taurus 演示
    • jmeter.reportgenerator.overall_granularity: 1000
    • jmeter.reportgenerator.exporter.html.series_filter: ^(ClickNext|HP|scenario)(-success|-failure)?$

而我的特殊属性“输出”:

  • 输出:${TAURUS_ARTIFACTS_DIR}/输出/

我最终得到:

settings:
  env:
     jmeterVersion: r1839007


execution:
- scenario: existing
  concurrency: 5
  hold-for: 10s
  ramp-up: 3s

scenarios:
  existing:
    script: demo.jmx

modules:
  jmeter:
    path: ~/.bzt/jmeter-taurus/${jmeterVersion}/bin/jmeter
    version: ${jmeterVersion}
    download-link: https://ci.apache.org/projects/jmeter/nightlies/${jmeterVersion}/apache-jmeter-${jmeterVersion}.zip
    detect-plugins: false
    properties:
      jmeter.reportgenerator.apdex_satisfied_threshold: 1000
      jmeter.reportgenerator.report_title: JMeter Taurus Demo
      jmeter.reportgenerator.overall_granularity: 1000
      jmeter.reportgenerator.exporter.html.series_filter: ^(ClickNext|HP|scenario)(-success|-failure)?$
      output: ${TAURUS_ARTIFACTS_DIR}/output/

services:
- module: shellexec
  post-process:
  - ~/.bzt/jmeter-taurus/${jmeterVersion}/bin/jmeter -p ~/.bzt/jmeter-taurus/${jmeterVersion}/bin/jmeter.properties -q ${TAURUS_ARTIFACTS_DIR}/jmeter-bzt.properties -g ${TAURUS_ARTIFACTS_DIR}/output/output.csv -o ${TAURUS_ARTIFACTS_DIR}/folder


reporting:
- module: final-stats
- module: console
于 2018-08-22T09:03:04.447 回答