0

我正在尝试清理我们功能测试的 jmeter docker+ci 管道。我看到 taurus 有一种在容器中运行 jmeter 脚本的简洁方法,它完成了下载我想要的 jmeter 版本 + 安装我的脚本使用的插件的繁重工作 - 非常好。

现在我需要在 junit.xml 中生成报告,以便保持报告的一致性。到目前为止,我一直在使用https://github.com/tguzik/m2u的修改分支将 jtl 报告转换为 junit.xml

感谢我如何将所有示例的请求、响应(代码和正文)获取到 junit.xml(至少对于失败的示例)的任何帮助?

我尝试了一些 taurus yaml 的变体......

reporting:
  - module: console
  - module: final_stats
    summary: true
    percentiles: true
    test-duration: true
  - module: junit-xml
    filename: report/report.xml
    data-source: sample-labels

reporting:
  - module: console
  - module: final_stats
    summary: true
    percentiles: true
    test-duration: true
  - module: passfail
  - module: junit-xml
    filename: report/report.xml
    data-source: pass-fail

还在通过失败模块上添加了某些通过失败标准变体。没有帮助


在摆弄了几个小时之后,我相信没有干净的方法可以从 taurus 中的 junit-xml 模块中获取任何有意义的 junit .xml 报告。它看起来准系统。我还注意到它可能会弄乱默认的 jenkins junit 插件测试结果摘要。

于是我就用下面的yaml设置安顿下来,继续用m2u.jar把jtl转成junit.xml

    modules:
    jmeter:
      path: ~/.bzt/jmeter-taurus/bin/jmeter
      download-link: https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-{version}.zip
      version: 5.3  
      force-ctg: true 
      detect-plugins: true
      plugins:
      - jpgc-json=2.2
      - jmeter-ftp
      - jpgc-casutg
      xml-jtl-flags:
        xml: true
        fieldNames: true
        time: true
        timestamp: true
        latency: true
        connectTime: false
        success: true
        label: true
        code: true
        message: true
        threadName: true
        dataType: false
        encoding: false
        assertions: true
        subresults: true
        responseData: false
        samplerData: false
        responseHeaders: false
        requestHeaders: true
        responseDataOnError: true
        saveAssertionResultsFailureMessage: true
        bytes: true
        threadCounts: false
        url: true

execution:
- write-xml-jtl: full
  scenario:
    script: v_jmxfilename
    properties:
      environment: v_env

reporting:
  - module: console
  - module: final_stats
    summary: true
    percentiles: true
    test-duration: true
#  - module: junit-xml
#    filename: report/junit-report.xml
#    data-source: sample-labels
4

1 回答 1

0

根据JUnit-XML-Reporter文档,目前这是不可能的:

该报告器以 JUnit XML 格式提供可由 Jenkins JUnit 插件解析的测试结果。记者有两种选择:

  • filename(报告文件的完整路径,可选。默认情况下,工件目录中的 xunit.xml)
  • data-source(使用哪个数据源:sample-labels 或 pass-fail)

如果样本标签用作源数据,报告将包含带有测试错误的 url。如果将通过-失败用作源数据,则报告将包含通过/失败标准信息。请注意,您必须将 pass-fail 模块放在记者列表中,在 junit-xml 模块之前。

Taurus 不仅适用于 JMeter,它还支持更多工具,但并非所有工具都提供存储请求和响应数据的可能性,所以我能想到的选项包括:

  1. 在您的测试计划中添加一个侦听器并选择您需要将哪些指标存储到一个单独的文件中,最容易使用的是灵活文件编写器
  2. 使用ShellExec 服务m2u.jar从 Taurus 配置 YAML运行您的
于 2020-08-19T16:31:17.383 回答