前言:本系列文章记作学习过程
接口自动化框架:Python+Pytest+Yaml(Yaml+CSV)+Allure+Log+Mysql
Git地址:https://gitee.com/make_a_summer/interface.git
项目作者:唐松(挽一夏)
个人邮箱:tasng@foxmail.com (欢迎探讨学习进步)
实现功能
- 测试数据隔离,实现数据驱动。使用yaml文件,或者yaml-csv文件实现单接口多组数据
- 支持多接口数据依赖:如A接口需要同时依赖B、C接口的响应数据作为参数。提取接口单个值,提取接口返回列表
- 数据库断言:直接在测试用例中写入查询的sql即可断言,无需编写代码
- 动态多断言: 如接口需要同时校验响应数据和sql校验,支持多场景断言
- 日志模块: 打印每个接口的日志信息
- 统计接口的运行时长
- 自定义拓展字段: 如用例中需要生成的随机数据,可直接调用
框架文件目录:
|-common // 辅助类,用于整个测试框架
| |-debugtalk.py // 自定义函数供测试脚本调用。生成随机数、日期时间戳等常用的功能
|-config // 配置
| |-config.py // 读取项目配置文件-config.yaml
| |-config.yaml // 项目配置文件
| |-extract.yaml // 存储接口数据关联
| |-setting.py // 项目基础路径
|-data // CSV测试文件
|-files // 上传文件
|-logs // 日志
|-reports // 测试报告
|-testcase // 测试用例
|-util_tools // 工具库文件
| └──db_connector // 数据库模块
| └──connectMysql.py // MySQL工具类
| └── headle_data // 测试文件操作模块
| └── csv_anlaysis_params.py // Yaml文件使用CSV格式,进行数据处理
| └── csv_handler.py // 读取CSV文件
| └── yaml_handler.py // 读取Yaml文件
| └── other_util // 其他工具类
| └── allure_type.py // Allure报告步骤中,数据格式处理
| └── genrate_id.py // 测试用例ID
| └── yaml_process // Yaml文件处理
| └── yaml_analysis.py // Yaml数据规范、替换、发送请求、数据提取、执行断言
| └── yaml_extract.py // 处理数据提取
| └── yaml_replace.py // 处理数据替换
| └── assertion_util.py // 封装断言
| └── logger_util.py // 封装日志
| └── requests_util.py // 封装发送请求
|-conftest.py // 运行前之前操作,清空extract.yaml文件
|-pytest.ini
|-environment.xml // allure报告中环境配置
|-run.py // 运行入口
接口文档
微信公众号-标签管理:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
1、登录
2、查询标签
3、创建标签
4、修改标签
5、删除标签
6、文件上传
学习视频推荐
B站up主(测开狗):
配套测试接口,从未接触接口自动化框架者,强烈建议先观看一遍
https://b23.tv/0Qlxedq
七月大佬接口框架:
https://gitee.com/yu_xiao_qi/pytest-auto-api2.git
如何创建用例
创建用例步骤
1、在testcase目录下,新建yaml测试文件
2、写完后新建py文件,用于执行yaml测试文件,实现接口测试
yaml测试文件的格式
-
name: # 用例名称
base_url: # 用例基础URL
request:
headers: # 请求头 (可选)
cookies: # cookies (可选)
method: # 请求方式
path: # 接口请求路径
data: # 请求参数 (可选)
extract: # 提取参数 (可选)
#extract_list: # 提取参数列表
validation: # 断言
yaml测试文件,必须包含4个一级关键字:
name(用例名称)、 base_url(