接口自动化流程简介

框架概览(流程)

简易框架

核心

  1. 获取yaml参数化数据,pytest参数化

  2. 将参数化的数据传递进page API接口内

  3. page API接口将各类参数组成一个模板,同时将接口数据文件路径和二级目录传递给发送终端

  4. 发送终端内将传进来的模板和文件路径及二级目录通过模板转换,将接口数据内对应数据替换成模板数据,通过封装的requests接口(**核心是请求数据是字典形式,request.request(**data))去请求拿到返回接口

  5. 对于结果的校验

    • pytest参数化时,传入的也有一个json表达式(”.code−>0;.code->0;.code−>0;.msg->success”)

    • 运行至最后将此表达式和响应结果传入自行封装的断言方法

    • 方法内如果判断一致就返回pass,在外面只需要断言assert 结果是不是pass

业务层

  1. 根据业务,给接口分类统一管理

  2. 暂定一个功能页面所有接口放到一个py文件内

    业务层

数据层

  1. 各接口请求地址、需要的参数.yaml(ApiData)

    接口地址

  2. 对于接口请求的各种数据管理(接口请求数据参数化)(TestDataPar)

    • 也可以理解为后面执行用例时候的参数化

用例层

  1. 暂定一个页面(功能)统一放在一个py文件下

通用层

  1. 文件路径统一管理

  2. token获取

  3. 常用加密(可根据自己公司继续添加加密方式)

工具层

  1. 通用请求封装(封装GET或POST请求 )

  2. json匹配(jsonPath)、读取(loadYaml)和保存(saveYaml)函数

  3. 模板替换(关键)(无此替换,用例达不到参数化运行)

  4. 封装拿到yaml接口参数数据,并且替换以后,最终发送函数

  5. 自定义断言方式(为了灵活度,pytest自带断言感觉有点局限:code码和msg)

  6. 日志相关封装

  7. 数据库封装

  8. 鉴于每个接口都可能用到token之类的,所以将调用接口获取token放到conftest.py内,在每个pytest用例运行之前都会运行此文件获取到token

配置文件

  • pytest.ini可配置运行哪些东西,具体可根据自己使用百度有关配置(暂配置忽略警告)

    • 运行的类

    • 运行的文件

    • 运行的命令等待

    1
    2
    3
    4
    5
    6
    [pytest]
    fiterwarnings =
    error
    ignore::UserWarning

    # 更多配置可查看pytest官方文档

接口自动化流程简介
http://example.com/2023/02/23/接口自动化流程简介/
作者
冰红茶
发布于
2023年2月23日
许可协议