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.xfail
def 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