You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Selenium Behave执行用例后自动生成Allure HTML报告

用Python自动化生成Allure HTML报告的方案

不用管Maven,那是Java生态的工具,你用Python栈直接用subprocess模块就能搞定——直接把两条终端命令写到Python代码里自动执行就行,步骤如下:

  • 先确保reports目录存在,避免生成报告时出错
  • 用Python调用第一条behave命令生成JSON报告,等执行完成后再调用allure命令启动HTML报告服务

完整代码示例:

import subprocess
import os

def generate_allure_report():
    # 确保reports目录存在,不存在则创建
    reports_dir = "reports"
    if not os.path.exists(reports_dir):
        os.makedirs(reports_dir)
    
    # 执行behave命令生成Allure JSON格式报告
    try:
        subprocess.run(
            ["behave", "-f", "allure_behave.formatter:AllureFormatter", "-o", "reports/", "features"],
            check=True,  # 命令执行失败时抛出异常
            text=True    # 以文本形式捕获输出
        )
        print("Behave测试执行完成,已生成JSON报告到reports目录")
    except subprocess.CalledProcessError as e:
        print(f"Behave命令执行失败: {e.stderr}")
        return
    
    # 执行allure serve启动HTML报告服务
    try:
        subprocess.run(
            ["allure", "serve", "reports"],
            check=True,
            text=True
        )
    except subprocess.CalledProcessError as e:
        print(f"Allure命令执行失败: {e.stderr}")

if __name__ == "__main__":
    generate_allure_report()

注意事项:

  • 确保你的系统环境变量PATH里已经添加了Allure命令行工具的路径,不然Python找不到allure命令
  • 如果你需要捕获命令的输出日志,可以把subprocess.run的stdout和stderr参数设置为subprocess.PIPE,然后打印出来
  • 如果不想自动打开浏览器,而是只想生成静态HTML文件,可以把第二条命令换成allure generate reports -o allure-report --clean,这样会在allure-report目录生成静态HTML文件

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:32:05