高效攻略:告别命令行!Python脚本内直接生成Allure+Pytest炫酷HTML测试报告【附完整源码】

Allure 是一款轻量级且灵活的开源测试报告生成框架,Pytest 是一个功能强大且易于使用的 Python 测试框架,利用他们我们可以生成一个可视的页面化的html报告,由于网络上只给出了在终端上启动的命令,却很少看到可以直接在.py页面可以直接执行的代码,碰巧有人朋友问到这一点,我特意去查了一下,展示一下成果。

Allure+pytest生成HTML报告的核心流程分为环境准备、脚本设计、生成报告三个阶段,下面我来讲一下详细的步骤:(如果说环境对的话,直接看第二阶段)

一、环境准备

使用allure之前我们需要通过terminal安装allure和allure-pytest。

1、命令:pip install pytest

2、命令:pip install pytest allure-pytest

 

二、脚本设计

我们要保证装载着测试用例的脚本的命名方式为test_开头(_test结尾),用例方法名也必须是以test_开头(_test结尾),这样能让pytest自动识别测试用例。

pytest 是 Python 最流行的测试框架之一,以简洁灵活著称,支持单元测试、集成测试和复杂的功能测试。其核心优势在于易用性和可扩展性,能通过插件机制满足多样化测试需求

注意事项:

1、目录结构

 

2、封装方法

 

3、装载用例的文件名和用例名必须为test_开头,或者_test结尾

 

 

4、添加allure增强特性:

@allure.epic/@allure.feature/@allure.story: 分层分类测试用例,便于报告中的模块化展示

模块(Feature)、场景(Story)、优先级(Severity)

with allure.step("描述") 将测试逻辑分解为多个步骤,报告中会展示详细流程

当然不添加也不影响

 

 

三、生成报告

使用pytest.main()去执行用例,我们给main()里面加上一个参数[“-v”,”--alluredir=./temps”],目的是为了让执行测试用例所生成的报告定向生成在temps目录下,"-v":--verbose的简写,输出详细的测试结果(显示每个测试用例的名称和状态)。我们使用os.system("allure generate ./temps -o ./report --clean")来生成html报告,而其中os.system():执行系统的命令。allure generate:生成报告的命令。./temps:输入目录(pytest 存放测试结果数据的目录,)。-o ./report:输出目录,生成的 HTML 报告将保存在 ./report。
--clean:生成报告前清理旧的报告文件。

重要事项:

1、执行时,pytest自动找用例,如果提示找不到用例,可以试着改一下你的类名。

 

2、执行完毕后,会生成3个新的目录:

 

第一个目录是:.pytest_cache是支持pytest的包

 

 

 

第二个目录是:report是生成报告的包

 

第三个目录是:temps是装载着测试用例执行结果和数据的文件

 

 

2、html报告在report中,文件名叫index.html,打开html可以使用右上角的浏览器快 捷方式,电脑上有才能使用,建议用电脑自带的浏览器

 

3、打开html文件后,详细信息都会显示;

 

 

 

优势:

 

1、高度可视化与交互性

图表展示:自动生成趋势图、环境信息、优先级分布等图表,直观呈现测试结果。

交互式操作:支持按模块(Feature)、场景(Story)、优先级(Severity)等标签快速过滤用例。

步骤级详情:逐层展开测试步骤,查看每个操作的耗时、日志及附件(如截图、请求数据)。

 

2、无缝集成与扩展性

与pytest深度兼容:通过 @allure 注解直接增强现有测试脚本,无需重构代码。

插件生态:支持与 pytest-xdist(并行测试)、pytest-cov(覆盖率统计)等插件协同工作。

CI/CD友好:生成的静态报告可直接嵌入Jenkins、GitLab等工具,实现自动化测试流水线。

 

3、增强测试可维护性

步骤分层:使用 @allure.step 拆分复杂操作为原子步骤,便于后续维护和复用。

自定义分类:通过 categories.json 重新定义缺陷类型,适配团队工作流程。

 

4、复杂功能验证

场景:电商下单流程涉及购物车、支付、库存等多个模块。

实现:用 @allure.feature 标记各模块。失败时附加接口响应、数据库查询结果。

价值:开发直接根据报告中的日志和附件修复问题,减少跨团队沟通。

 

最后,通过Allure与pytest的整合,我们能够将自动化测试结果转化为高度可视化的HTML报告,直观呈现用例执行细节、失败原因及调试信息,可以方便我们高效统计自动化测试结果。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值