pytest简易教程(36):pytest + allure最佳实践

全栈测试笔记 / 2024-02-25 / 原文

 

pytest简易教程汇总,详见

简介

上一篇我们已经生成了allure报告,但是可读性不是很强,

所以我们还需要对报告优化,也就是通过allure提供的装饰器添或者代码方式加一些描述信息。

官方示例:https://github.com/allure-examples/allure-examples

 

常用装饰器

说明:

  • feature和story类似于父子关系
  • 如果不加 @allure.feature、@allure.story,在Behaviors下测试用例就不会分类显示
  • 如果没有添加 @allure.title() ,测试用例的标题默认就是函数名

 

添加描述方式及常用格式

方式一:装饰器

放在测试用例上,也就是测试方法上

@allure.epic("项目")
@allure.feature("模块")
@allure.story("场景")
@allure.title("标题")
@allure.severity(allure.severity_level.CRITICAL)
@allure.description("描述")

 

优点:可以指定feature、story、severity运行,--allure-features="xxx" --alure-stories="xxx","yyy" --allure-severities blocker,critical,normal

不足:每个用例分别添加描述信息比较繁琐

 

补充:severity_level的值是枚举

 

方式二:代码(推荐)

放在测试用例下,也就是测试方法下

allure.dynamic.epic("项目")
allure.dynamic.feature("模块")
allure.dynamic.story("场景")
allure.dynamic.title("标题")
allure.dynamic.severity("优先级")
allure.dynamic.description("描述")

 

优点:描述信息实现参数化

不足:不能指定feature、story、severity运行

 

实际工作中,如果用到参数化,描述信息可以放到参数化数据中,这样就可以用方式二读取测试数据动态生成描述信息。

 

报告添加epic、feature、story、title、severity、description

应用场景:在Behaviors下测试用例分类显示,在用例详情中显示severity和description

比如接口自动化中

  

运行结果:

 

生成测试报告

 

打开报告

 

 

 

报告添加step

应用场景:ui自动化测试中,测试过程中的每个步骤可以通过step来描述,通过with allure.step():放在测试用例方法里面,测试步骤的代码需要被该语句包含

如果中间某个步骤失败,后面步骤不会执行

示例代码:

  

执行:

 

生成最终报告:

 

打开报告:

 

 

 

 

 

 

 

 

 

报告添加link、issue、testcase

应用场景:

allure报告中想快速跳转到公司其它测试系统(比如:bug管理系统、用例管理系统),可以将allure报告和测试系统集成,在测试报告中添加bug、用例等相关链接即可
 
演示代码:

 

pytest case\test_qzcsbj6.py -s -q --alluredir=./result --clean-alluredir --allure-link

 

 

 

 

 

 

 

 

跳转的地址

 

 

 

 

 

 

优先级默认是normal

 

 

 

报告添加attach

 

 

 

【bak】