前言
简单记录分享下接触的第一个接口自动化测试项目,如何从 0-1 编写自动化用例流程
单接口自动化测试
- 入参:接口字段参数类型、是否必传、范围限制、边界值验证
- 回参:返回值类型、数据预期检查
- 单接口各字段的接口关联
- 正常、异常场景测试
- 接口性能指标
- 安全性检查
业务组合接口测试 – E2E
- 业务流驱动测试:业务组合、多接口串联成一个业务(按照业务流进行测试)
- 模拟真实用户使用场景(真实数据)
一、自动化框架
1. 基本介绍
-
Unittest 框架:官方文档
-
Tdata 数据驱动:主要解决测试用例和数据分离
# 数据解析 fresh_parse_data(cls, selector=None, case_name=None, tdata=None, **kwargs) # 数据更新 update_tdata(cls, data, selector, case_name=None, tdata=None)
数据驱动:数据和用例步骤分离,通过 yaml、excel 等文件保存数据,将测试用例里的数据提取到文件中,通过改变文件中数据驱动测试用例执行 – 数据存储,通过解析数据进行驱动测试
-
用例流调用 :case --> step --> client
case:采用 tdata “!” 引用,数据一般不能写死,如果环境/账号/后端服务变更就跑不过了
step:不做复杂计算,严格按照 “解析参数 - 请求 - 更新 | teardown”
client:封装尽量通用,注释与 tdata 字段强关联(必传参数 [x],非必传参数 []) -
Allure 测试报告:
按照标签以作者进行构建 @attr(*args: “P0”, Author.Ohhhzm)# run_test_case.py if __name__ == '__main__': run(attr=Author.Ohhhzm, report_type='ALLURE', log='INFO')
二、用例编写整体流程
1. 获取接口文档,分析接口流程和参数
输出自动化测试用例设计
2. 服务注册
定义被测服务 – 在 service_conf.py 增加服务定义
3. 环境配置
- 在 env/init.py 增加环境定义
- xxx_env.py 添加待测服务的环境信息(域名 host)、请求头信息、接口信息 – 可以包含多个服务
4. 消息模板
- 定义:底层解析参数时,没有参数则读取消息模板参数,如消息模板没有,则接口无参数请求
- 作用:接口测试的默认传参,适用于接口字段多,且通过传参复杂
5. 用例编写
- 用例文件一般组成:导包、前后置处理、用例
- 前置:一般为定义用例构建环境、用例待测服务、前置处理等
- 后置:主要为一些清理机制(如关闭测试套、其他清理工作)
- 用例:
- test_xxx 开头函数定义
- 增加 @attr(“P0”) 代表用例优先级
- 函数名称为用例 id
- 注释为用例标题
- 数据与脚本分离:参数处理下移至底层封装,让用例看起来清晰简单,没有复杂数据处理动作,同时各个用例之间可以共用 client
三、总结
1、使用 Tdata 做数据驱动,其实就是 数据解析 + 数据更新
2、理解数据流调用链:“case 用例” 到 “step 步骤” 再到 “client API”
3、client 底层抽象为 API,尽量覆盖正向、异常用例
(API 可视化可采用 Swagger,可视化效果好)

459

被折叠的 条评论
为什么被折叠?



