pytest文档31-allure标记用例级别severity

前言

我们在做功能测试的时候,执行完一轮测试用例,输出测试报告的时候,会有统计缺陷的数量和等级。
在做自动化测试的过程中,当你的测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。
pytest结合allure框架可以对用例的等级做详细的划分。

用例等级

allure对用例的等级划分成五个等级

  • blocker    阻塞缺陷(功能未实现,无法下一步)

  • critical  严重缺陷(功能点缺失)

  • normal    一般缺陷(边界情况,格式错误)

  • minor      次要缺陷(界面错误与ui需求不符)

  • trivial   轻微缺陷(必须项无提示,或者提示不规范)

比如我的用例有以下4条

那么对应的用例的等级应该是

  • 修改个人信息-sex参数为空  这个属于边界值情况的测试,应该是normal级别

  • 修改个人信息-sex参数传F和M两种类型,成功(枚举类型) 这个是针对接口的功能点详细测试 critical级别

  • 修改个人信息-修改不是本人的用户信息,无权限操作 这个是针对接口的功能点详细测试 critical级别

  • 修改个人信息-修改自己的个人信息,修改成功 这是用例是测试主流程 blocker级别

pytest用例

根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别

import pytest
import allure
'''
作者:上海-悠悠 qq交流群:874033608

@allure.severity装饰器按严重性级别来标记case   
执行指定测试用例 --allure-severities blocker
BLOCKER = 'blocker'  阻塞缺陷
CRITICAL = 'critical' 严重缺陷
NORMAL = 'normal'   一般缺陷
MINOR = 'minor'   次要缺陷
TRIVIAL = 'trivial'  轻微缺陷 
'''

@allure.severity("normal")
def test_case_1():
'''修改个人信息-sex参数为空'''
print("test case 11111111")

@allure.severity("critical")
def test_case_2():
'''修改个人信息-sex参数传F和M两种类型,成功(枚举类型)'''
print("test case 222222222")

@allure.severity("critical")
def test_case_3():
'''修改个人信息-修改不是本人的用户信息,无权限操作'''
print("test case 333333333")

@allure.severity("blocker")
def test_case_4():
'''修改个人信息-修改自己的个人信息,修改成功'''
print("test case 4444444")

def test_case_5():
'''没标记severity的用例默认为normal'''
print("test case 5555555555")

cd到用例的目录,执行用例,查看报告

pytest —alluredir ./report/allure
allure serve ./report/allure
查看报告详情

统计缺陷

如果执行用例的过程中有测试用例不通过的情况,也可以统计缺陷的严重等级

# 修改上面2个用例,故意让用例失败
@allure.severity("blocker")
def test_case_4():
'''修改个人信息-修改自己的个人信息,修改成功'''
print("test case 4444444")
assert 1==2

def test_case_5():
'''没标记severity的用例默认为normal'''
print("test case 5555555555")
assert 1==2

重新执行用例,查看报告-图表

allure命令行参数allure-severities

pytest -h可以查看到allure相关的几个命令行参数
—allure-severities=SEVERITIES_SET
                       Comma-separated list of severity names. Tests only
                       with these severities will be run. Possible values
                       are: blocker, critical, normal, minor, trivial.
如果有很多测试用例,现在只想做个快速的回归测试,只测试用例级别为blocker和critical级别的测试用例

pytest —alluredir ./report/allure —allure-severities blocker,critical

也可以这样写

pytest —alluredir=./report/allure —allure-severities=blocker,critical

如果只执行blocker级别的用例

pytest —alluredir=./report/allure —allure-severities=blocker

作者:上海-悠悠 qq交流群:874033608

2020年第二期《python接口自动化+测试开发》课程,12月15号开学!

(0)

相关推荐

  • Python Requests Pytest YAML Allure实现接口自动化

    作者:wintest 链接:https://www.cnblogs.com/wintest/p/13423231.html 本项目实现接口自动化的技术选型:Python+Requests+Pytest ...

  • pytest参数化-读取excel allure报告展示

    由于近期公司要求项目接口自动化且使用参数化.装饰器等,我在网上查了一下资料,现在整理下,放便以后代码套用 版本: pytest==6.2.1 pytest-html ==2.1.1 pyyaml == ...

  • pytest文档12-skip跳过用例

    前言 pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能 skip意味着只有在满足某些条件时才希望测试通过,否则pytest应该跳过运行测试. 常见示例是 ...

  • pytest文档28-重复执行用例(pytest-repeat)

    前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来. 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例, ...

  • pytest文档34-Hooks函数改变用例执行顺序(pytest_collection_modifyitems)

    前言 有一些小伙伴一直想改变pytest用例的执行顺序,实际上我们在用例设计原则上用例就不要有依赖顺序. pytest默认执行用例是先根据项目下的文件夹名称按ascii码去收集的,module里面的用 ...

  • pytest文档40-pytest.ini配置用例查找规则(面试题)

    前言 面试题:pytest如何执行不是test开头的用例?如执行 xxx_*.py这种文件的用例. pytest.ini 配置文件可以修改用例的匹配规则. pytest命令行参数 cmd打开输入pyt ...

  • pytest文档47-allure报告添加用例失败截图

    前言 使用 selenium 做 web 自动化的时候,很多小伙伴希望用例失败的时候能截图,把异常截图展示到allure报告里面. pytest 有个很好的钩子函数 pytest_runtest_ma ...

  • pytest文档2-用例运行规则

    用例设计原则 文件名以test_*.py文件和*_test.py 以test_开头的函数 以Test开头的类 以test_开头的方法 所有的包pakege必须要有__init__.py文件 help帮 ...

  • pytest文档15-使用自定义标记mark

    前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行.app自动化的时候,如果想android和ios公用一套代码时, 也可以使用标记功能,标明哪些是 ...

  • pytest文档27-运行上次失败用例(--lf 和 --ff)

    前言 "80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多"平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了, 当开发修复完bu ...

  • pytest文档32-allure描述用例详细讲解

    前言 pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结. allure报告可以很多详细的信息描述测试用例,包括epic.feature.story.title.iss ...