如何在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
相关产品推荐
相关产品推荐

