接口自动化框架httprunner 是如何生成动态类

HttpRunner 是一个用于接口自动化测试的工具,它使用了 Python 中的 type 函数来生成动态类。

在 HttpRunner 中,通过使用 type 函数和 GenericTestCaseMeta 元类,动态地生成测试用例类。

下面是一个示例代码展示了如何使用 type 函数来生成动态测试用例类:

from httprunner import TestCase, HttpRunner

# 创建一个动态类的元类
class GenericTestCaseMeta(type):

    def __new__(cls, name, bases, attrs):
        # 动态为测试用例类添加属性和方法
        attrs['config'] = {}
        attrs['teststeps'] = []

        return super().__new__(cls, name, bases, attrs)

# 创建动态测试用例类
MyTestCase = type("MyTestCase", (TestCase,), {
    "__metaclass__": GenericTestCaseMeta
})

# 创建测试用例实例
tc = MyTestCase()

# 输出测试用例类的属性
print(tc.config)
print(tc.teststeps)

在这个示例中,我们定义了一个元类 GenericTestCaseMeta,通过重写 __new__ 方法,在创建测试用例类时动态地向类中添加 configteststeps 属性。

然后,我们使用 type 函数来创建一个名为 MyTestCase 的动态测试用例类,并向其传递三个参数:类名 "MyTestCase",基类 (TestCase,),以及包含元类信息 "__metaclass__": GenericTestCaseMeta 的字典。

最后,我们创建了一个 MyTestCase 类的实例 tc,并输出了实例的 configteststeps 属性。

通过这种方式,HttpRunner 实现了动态生成测试用例类,使用户能够根据需要自定义测试用例类的属性和方法。

猜你喜欢

转载自blog.csdn.net/qq_39208536/article/details/132298669