从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
相关推荐
紫小米8 小时前
后端日志管理
python·fastapi
你不是我我8 小时前
【Java 开发日记】HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·开发语言·微服务
AI机器学习算法8 小时前
《动手学深度学习PyTorch版》笔记
人工智能·学习·机器学习
贺一航【Niki】8 小时前
【学习笔记】杂乱知识
笔记·学习
tjl521314_219 小时前
04C++ 名称空间(Namespace)
开发语言·c++
赏金术士9 小时前
Kotlin 数据流与单双向绑定
android·开发语言·kotlin
白雪茫茫9 小时前
监督学习、半监督学习、无监督学习算法详解
python·学习·算法·ai
つ安静与叛逆的小籹人9 小时前
小红书API:通过笔记ID获取笔记详情数据教程
笔记·python
05候补工程师10 小时前
[实战复盘] 拒绝 AI 屎山!我从设计模式中学到的“调教”AI 新范式
人工智能·python·设计模式·ai·ai编程
逻辑驱动的ken10 小时前
Java高频面试场景题25
java·开发语言·深度学习·面试·职场和发展