pytest简易教程汇总,详见:https://www.cnblogs.com/uncleyong/p/17982846
简介
上一篇我们已经生成了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运行
实际工作中,如果用到参数化,描述信息可以放到参数化数据中,这样就可以用方式二读取测试数据动态生成描述信息。
报告添加severity(装饰器方式)
应用场景:想要根据优先级执行用例,可以通过allure.severity来添加标记
示例代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : 韧
# @wx :ren168632201
# @Blog :https://www.cnblogs.com/uncleyong/
import allure
# 没有指定,默认是normal
@allure.feature("模块1")
@allure.story("m1子模块1")
def test_no_severity():
pass
@allure.feature("模块2")
@allure.story("m2子模块1")
@allure.severity(allure.severity_level.TRIVIAL)
def test_trivial_severity():
pass
@allure.feature("模块3")
@allure.story("m3子模块1")
@allure.severity(allure.severity_level.NORMAL)
def test_normal_severity():
pass
@allure.feature("模块4")
@allure.story("m4子模块1")
@allure.severity(allure.severity_level.NORMAL)
class TestCase:
def test_inclass_normal_severity(self):
pass
# 优先级就近原则
@allure.severity(allure.severity_level.CRITICAL)
def test_inclass_critical_severity(self):
pass
指定单个优先级执行
指定多个优先级执行
指定单个模块执行
指定模块和优先级执行,结果是并集,不是交集
同时指定模块和子模块执行,结果是并集,不是交集
pytest case\test_q