• pytest方法间变量值传递--request夹具


    相当于self对象,因为调试的时候测试用例是类似沙箱的单步运行,所以self对象的属性被阻挡在沙箱外边。

    request.cls 是pytest中的一个属性,它允许您在测试类中共享数据或属性。当您使用pytest编写测试类时,request 夹具允许您在测试方法之间传递数据或设置属性。

    具体来说,以下是 request.cls 的用法:

    在测试类中设置属性:您可以在一个测试方法中使用 request.cls 来设置属性,然后在同一个测试类中的其他测试方法中访问这些属性。这使得在整个测试类中共享数据变得容易。

    继承测试夹具:通过使用 @pytest.mark.usefixtures(“request”) 装饰器,您可以将 request 夹具应用于整个测试类,以使 request.cls 在整个测试类中可用。

    下面是一个示例,展示了如何在pytest测试类中使用 request.cls:

    import pytest
    
    class TestSample:
        def test_example1(self, request):
            # 在这个测试方法中,使用request夹具来写入属性到self对象中
            request.cls.shared_data = "Data from test_example1"
            assert 1 == 1
    
        def test_example2(self, request):
            # 在这个测试方法中,获取先前设置的属性
            shared_data = request.cls.shared_data
            assert shared_data == "Data from test_example1"
    
    @pytest.mark.usefixtures("request")
    class TestSampleFixture:
        pass
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    运行结果

    ============================= test session starts =============================
    collecting ... collected 2 items
    
    test.py::TestSample::test_example1 PASSED                                [ 50%]
    test.py::TestSample::test_example2 PASSED                                [100%]
    
    ============================== 2 passed in 0.02s ==============================
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在上述示例中,request.cls 用于在 test_example1 中设置属性 shared_data,然后在 test_example2 中获取该属性。通过使用 @pytest.mark.usefixtures(“request”) 装饰器,我们确保 request 夹具在整个 TestSampleFixture 测试类中可用。

    请注意,使用 request.cls 应该小心谨慎,确保不会引入测试之间的状态污染,因为pytest默认情况下会运行测试方法的时候不会重用测试类的实例。

  • 相关阅读:
    Config:分布式配置中心
    第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第十一节 - 检查字符串是否回文的 Python 程序)
    cookie
    统一SQL 支持Oracle cast函数转换
    排序 “贰” 之选择排序
    淘宝代购系统需要电商API接口
    MAC 安装maven
    万有引力的几个结论证明
    【性能测试】Jmeter —— jmeter计数器
    DCN论文精读
  • 原文地址:https://blog.csdn.net/qq_43496409/article/details/134042748