接口自动化框架设计
框架通用性:哪里都可以使用
可扩展性:方便新增和修改功能
可维护性:是否便于修改,适当封装但不能过度、分层设计(同一类型放一块)
分层设计框架思路:
1、写测试用例数据:test_data,存放excel
2、测试用例文件:test_cases,写测试流程、业务流程、接口要干什么
3、封装的工具类:tools,类似日志收集器、mysql数据库操作、excel读取、yaml配置文件读取、响应数据提取、os路径参数化、re正则表达式、参数替换(jsonpath、re)、request请求数据封装、Faker构造测试数据、接口断言、数据库断言、反射添加和读取对象属性
4、配置文件:config setting,py文件 ini yaml文件
5、日志文件:logs
6、测试报告:reports
7、框架执行入口:main,用例收集、用例执行、邮件发送
具体实现步骤思路:
1、编写测试用例:数据驱动、通过excel写测试用例的数据,handle_excel读取测试用例数据
2、获取测试用例路径:通过handle_path进行封装
3、对handle_excel读取数据data进行参数替换和去掉空格和换行符,得到直接可以发送请求的参数
主要实现的核心功能:
1、前置sql语句:setup_sql
2、请求参数替换(正则表达式、jsonpath、读取数据库、读取配置文件)
3、发送请求:鉴权的问题(接口返回值,处理不同请求类型的问题,通过设置新增字段)
4、响应结果的处理:接口返回类型不统一的问题,返回json,text,返回为空
5、接口响应断言:expected_data校验接口层
6、全局变量的提取:extract_data参数依赖问题
7、数据库断言:assert_db校验到数据层(确定数据新增、状态是否同步)
8、接口请求【前后】数据库断言
9、日志输出
10、测试报告输出 shutil模块
11、邮件发送:unittestreport
12、加密接口
13、数据隔离