从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
相关推荐
acanab39 分钟前
vscode对isaac lab开发时包不能正常导入的问题
vscode·python
娇娇yyyyyy41 分钟前
Qt编程(3): 信号和槽函数
开发语言·数据库·qt
wwww.wwww1 小时前
qt程序执行时报错:无法定位程序输入点,但是通过IDE的run又可以正常的运行。
开发语言·ide·qt
少云清2 小时前
【UI自动化测试】3_TPshop项目实战 _一个测试用例脚本编写过程
ui·测试用例
好奇龙猫3 小时前
【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(19):単語文法】
学习
乌鸦乌鸦你的小虎牙4 小时前
qt 5.12.8 配置报错(交叉编译环境)
开发语言·数据库·qt
feifeigo1234 小时前
Leslie人口模型MATLAB实现(中长期人口预测)
开发语言·matlab
写代码的二次猿4 小时前
安装openfold(顺利解决版)
开发语言·python·深度学习
一只大袋鼠4 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
Eward-an4 小时前
LeetCode 1980 题通关指南|3种解法拆解“找唯一未出现二进制串”问题,附Python最优解实现
python·算法·leetcode