写点什么

软件测试丨 Allure2 报告中添加用例支持 tags 标签、失败重试功能

作者:测试人
  • 2023-06-08
    北京
  • 本文字数:1347 字

    阅读完需:约 4 分钟

获取更多相关知识

本文为霍格沃兹测试开发学社学员学习笔记分享,文末附原文链接。

1、Allure2 报告中添加用例支持 tags 标签

Allure2 添加用例标签应用场景

  • Allure 报告支持的一些常见 Pytest 特性包括 xfail、skipif、fixture 等。测试结果会展示特定的标识在用例详情页面。



Allure2 添加用例标签-xfail、skipif

  • 用法:使用装饰器 @pytest.xfail()、@pytest.skipif()

import pytest
# 当用例通过时标注为 xfail@pytest.mark.xfail(condition=lambda: True, reason='这是一个预期失败的用例')def test_xfail_expected_failure(): """this test is an xfail that will be marked as expected failure""" assert False
# 当用例通过时标注为 xpass@pytest.mark.xfaildef test_xfail_unexpected_pass(): """this test is an xfail that will be marked as unexpected success""" assert True
# 跳过用例@pytest.mark.skipif('2 + 2 != 5', reason='当条件触发时这个用例被跳过 @pytest.mark.skipif')def test_skip_by_triggered_condition(): pass
复制代码



Allure2 添加用例标签-fixture(终结器)

  • 应用场景:fixture 和 finalizer 是分别在测试开始之前和测试结束之后由 Pytest 调用的实用程序函数。Allure 跟踪每个 fixture 的调用,并详细显示调用了哪些方法以及哪些参数,从而保持了调用的正确顺序。

"""@Author: 霍格沃兹测试开发学社-西西@Desc: 更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860"""import pytest
@pytest.fixture()
def func(request): print("这是一个fixture方法")
# 定义一个终结器,teardown动作放在终结器中 def over(): print("session级别终结器")
request.addfinalizer(over)

class TestClass(object): def test_with_scoped_finalizers(self,func): print("测试用例")
复制代码


import pytest
@pytest.fixture()def func1(): print("这是fixture func1 前置动作") yield print("这是fixture func1 后置动作")@pytest.fixture()def func(request): # 前置动作 -- 相当于setup print("这是一个fixture方法") # 后置动作 -- 相当于teardown # 定义一个终结器,teardown动作放在终结器中 def over(): print("session级别终结器") # 添加终结器,在执行完测试用例之后会执行终结器中的内容 request.addfinalizer(over)

class TestClass(object): def test_with_scoped_finalizers(self,func,func1): print("测试用例")
复制代码



在 setup 中后执行的,在 teardown 中先执行

2、Allure2 报告中支持记录失败重试功能

Allure2 失败重试功能应用场景

  • Allure 可以收集用例运行期间,重试的用例的结果,以及这段时间重试的历史记录。


Allure2 失败重试功能

  • 重试功能可以使用 pytest 相关的插件,例如 pytest-rerunfailures。

  • 重试的结果信息,会展示在详情页面的”Retries” 选项卡中。

"""@Author: 霍格沃兹测试开发学社-西西@Desc: 更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860"""import pytest
@pytest.mark.flaky(reruns=2, reruns_delay=2)def test_rerun2(): assert False
复制代码




原文链接:https://ceshiren.com/t/topic/24789

发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试丨Allure2报告中添加用例支持tags标签、失败重试功能_程序员_测试人_InfoQ写作社区