从0开始python学习-50.pytest之多接口用例封装

  1. yaml用例设计--一个yaml中多个用例,且互相存在关联关系
python 复制代码
- # 第一个用例
  request:
    method: post
    url: http://192.168.0.1:8010/api
    json:
      accounts: admin
      pwd: 123
      type: username
    headers:
      Content-Type: application/json
      
- # 第二个用例
  request:
    method: post
    url: http://192.168.0.1:8010/api/order/index
    headers:
      Content-Type: application/json
  1. 设计多接口用例读取封装
python 复制代码
def read_testcase(yaml_path):
    with open(yaml_path,encoding="utf-8") as f:
        case_list = yaml.safe_load(f)
        if len(case_list) >=2: # list长度大于等于2,则说明是多个接口用例,则yaml读取出来的格式为:[{},{}]
            return [case_list] # 将返回格式修改为[[{},{}]]
        else:
            return case_list # 单接口的用例格式,直接返回即可:[{}]
  1. 将读取caseinfo的方法进行list格式的兼容设计
python 复制代码
def create_testcase(yaml_path):
    @pytest.mark.parametrize('caseinfo', read_testcase(yaml_path))
    def func(self,caseinfo):
        global case_obj
        if isinstance(caseinfo,list): # 多接口用例
            for case in caseinfo:
                case_obj = verify_yaml(case)
                stand_case_flow(case_obj)
        else: # 单接口用例
            # 校验yaml中的数据
            case_obj = verify_yaml(caseinfo)
            # 用例的标准化流程
            stand_case_flow(case_obj)
    return func
相关推荐
安小牛11 小时前
Android 开发汉字转带声调的拼音
android·java·学习·android studio
刀法如飞11 小时前
一款Python语言Django框架DDD脚手架,助你快速搭建项目
python·ddd·脚手架
刀法如飞11 小时前
一款Python语言Django框架DDD脚手架,适合中大型项目
后端·python·领域驱动设计
yu859395811 小时前
基于MATLAB的随机振动仿真与分析完整实现
开发语言·matlab
赵钰老师11 小时前
【结构方程模型SEM】最新基于R语言结构方程模型分析
开发语言·数据分析·r语言
guygg8811 小时前
利用遗传算法解决列车优化运行问题的MATLAB实现
开发语言·算法·matlab
gihigo199811 小时前
基于MATLAB实现NSGA-III的土地利用空间优化模型
开发语言·matlab
MediaTea11 小时前
Scikit-learn:数据集
人工智能·python·机器学习·scikit-learn
vastsmile11 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言
仙女修炼史12 小时前
CNN的捷径学习Shortcut Learning in Deep Neural Networks
人工智能·学习·cnn