(一)零代码封装pytest框架(测试用例封装)

测试用例封装(根据pytest规则)

1、目的

(1)需要一个py文件(以test_开头)

(2)需要一个pytest的类(以Test开头)

(3)需要pytest用例(以test_开头)

(4)能通过数据驱动读取yaml测试用例

(5)通过数据驱动获取请求四要素并发送请求

2、在 pytest框架 的基础上去将测试用例封装起来

第一步:首先在testcase目录下建立test_all_case.py文件(对应目的中的(1))

第二步:创建一个TestAllCase类(对应目的中的(2))

class TestAllCase:
    pass

第三步:通过yaml文件创建用例(对应目的中的(3))

# 获取testcase的路径
testcase_path = Path(__file__).parent

# 获取testcase路径下的所有yaml文件列表
yaml_case_list = testcase_path.glob("**/*.yaml")

# 通过每个yaml文件循环生成以test_开头的用例,并加入到TestAllCase类下
for yaml_path in yaml_case_list:
    # 通过反射,重命名函数名,并加载到TestAllCase类下                       
    setattr(TestAllCase, "test_"+yaml_path.stem, create_testcase(yaml_path))  

第四步:在第三步中需要用到create_testcase()函数(对应目的的(4、5))

def create_testcase(yaml_path):

    @pytest.mark.parametrize("caseinfo", read_testcase_yaml(yaml_path))
    def func(self, caseinfo):
        # **new_caseinfo.request解包request字典,变成url="", method=""。。等
        RequestsUtil().send_all_requests(**caseinfo.request)
    return func

最终代码如下:

class TestAllCase:
    pass


# 通过yaml文件创建用例(testcase下有多少个yaml文件就创建多少个用例)
def create_testcase(yaml_path):

    @pytest.mark.parametrize("caseinfo", read_testcase_yaml(yaml_path))
    def func(self, caseinfo):
        # 发送请求四要素,**new_caseinfo.request解包request字典,变成url="", method=""。。等
        RequestsUtil().send_all_requests(**caseinfo.request)
    return func


# 获取testcase的路径
testcase_path = Path(__file__).parent

# 获取testcase路径下的所有yaml文件列表
yaml_case_list = testcase_path.glob("**/*.yaml")

# 通过每个yaml文件循环生成以test_开头的用例,并加入到TestAllCase类下
for yaml_path in yaml_case_list:
    # 通过反射,重命名函数名,并加载到TestAllCase类下                       
    setattr(TestAllCase, "test_"+yaml_path.stem, create_testcase(yaml_path))  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OY-xin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值