【问题标题】:How to generate reports in Behave-Python?如何在 Behave-Python 中生成报告?
【发布时间】:2016-11-23 11:19:00
【问题描述】:

对于Java,有extent-report、testNG等外部报告生成工具。 Junit 为单个功能文件生成 xml 格式的输出。要获得详细的报告,我在 Behave 框架内看不到选项或广泛的方法或解决方案。

如何在 Behave 中生成报告,是否需要为 Behave 中的报告生成添加任何其他工具或框架?

【问题讨论】:

    标签: python report bdd python-behave


    【解决方案1】:

    您可以为您的行为测试生成Allure report

    首先你需要安装 Allure Behave 格式化程序:

    $ pip install allure-behave
    

    然后在运行测试时指定格式化程序:

    $ behave -f allure_behave.formatter:AllureFormatter -o %allure_result_folder% ./features
    

    这将生成 JSON 报告给%allure_result_folder%。然后,要查看 HTML 报告,您可以使用 Allure 命令行(也可以使用 Jenkins/TeamCity/Bamboo 的插件)

    $ allure serve %allure_result_folder%
    

    有关 Allure 报告的更多详细信息,您可以查看docs

    【讨论】:

    【解决方案2】:

    我知道很久以前有人问过/回答过这个问题。

    但我想给出对我有用的解决方案。

    Cucumber json 模式与 Behave 模式不同。所以你不能使用behave创建的json来使用Cucumber Reports插件生成html报告。当我尝试使用黄瓜报告的行为 json 时,这就是我得到的结果,您还会看到 uri 的 NPE,因为黄瓜 json 期望存在 uri,但行为 json 没有 uri,因此是 NPE。

    `[CucumberReport] Processing 1 json files: 
     [CucumberReport] /var/lib/jenkins/jobs/behave-test/builds/14/cucumber-html- 
                      reports/.cache/results.json
     [CucumberReport] Missing report result - report was not successfully completed
     [CucumberReport] Build status is left unchanged`
    

    您会看到报告未成功完成。

    所以我安装了behavior2cucumber来将behaviour json转换成cucumber json。

    pip install behave2cucumber

    然后有一个额外的步骤,如下所示。

    python -m behave2cucumber -i behave_json.json -o cucumber_json.json

    -i 代表输入文件,在我们的例子中是由行为生成的 json 文件

    -o 代表输出文件,在我们的例子中是黄瓜兼容的 json 文件

    cucumber_json.json 将填充缺少行为 json 的 uri 字段。

    它就像魅力一样。

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      因为我使用行为的自动化都在 Jenkins 上运行,所以我可以使用 Jenkins 插件来显示我的 junit 报告。

      我认为这个问题可能会对您有所帮助: How can I generate an HTML report for Junit results?

      您可以使用来自行为的 junit 结果并遵循此问题中的一些热门答案。

      顺便说一句,如果您想使用 jenkins 并且需要“好看”的 html 行为报告,我建议您为您生成 json 输出并使用黄瓜报告器显示 json 输出。

      【讨论】:

      • 在运行多个功能文件时如何在 Behave 框架中获取 json 输出。
      • 只需使用behave -f json -o path-to-your-output-file。它将测试您的所有功能并为所有功能生成 json 输出。您还可以指定要运行哪些功能behave -f json -o path-to-your-output-file youfeature.feature
      • 获得 json 文件后,如何将其转换为 html 格式,该格式应以图形形式查看。
      • 我想你大概可以看看npmjs.com/package/cucumber-html-reporter
      • 另外我想建议你使用 jenkins,因为有很多插件。抱歉,我错过了一件事,您应该使用 github.com/behalfinc/b2c 之类的东西将行为 json 转换为黄瓜 json,因为黄瓜的报告工具比行为更多。希望对你有帮助
      【解决方案4】:

      Behave 还可以生成 jUnit XML 格式的报告。您只需将 --junit 添加到命令行 [1] 即可启用此功能。有关格式化程序和报告程序的更多信息,请点击此处 [2]。

      $ 行为 --junit

      [1]http://pythonhosted.org/behave/behave.html?highlight=#cmdoption--junit

      [2]http://pythonhosted.org/behave/formatters.html

      【讨论】:

      • 在运行多个功能文件时,它会为每个功能文件生成多个 XML 文件,并与 XML 文件一起需要进行哪些转换才能以 html 格式查看。需要添加任何插件或工具。
      • @jgiralt - 您提供的网址似乎不起作用。你能更新答案吗?
      【解决方案5】:

      Python行为框架中生成魅力报告的步骤。

      1. 安装魅力

        pip install allure-behave

      2. 下载 Allure exe 文件 https://bintray.com/qameta/generic/allure2/2.6.0#files/io%2Fqameta%2Fallure%2Fallure%2F2.6.0

      3. 解压并将bin路径添加到环境变量(系统变量路径)中。

        C:\Users\arya\Downloads\allure-2.6.0\allure-2.6.0\bin

      4. 打开cmd 提示符并转到xml 报告所在的位置并给出以下cmd

        输入 allure generate 并给出您的 xml 文件所在的路径。

        D:\automation\api\reports>allure generate D:\automation\api\reports

        报告成功生成到 allure-report

      5. 转到D:\automation\api\reports\allure-report 并在Microsoft Edge 浏览器上打开index.html 文件。

      Allure 报告在 ChromeFirefoxIE 浏览器中不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-09
        • 2013-12-11
        • 2013-12-11
        相关资源
        最近更新 更多