原文地址:https://zhuanlan.zhihu.com/p/38513570
摘要:
- 什么是自动化测试
- 手工测试中的接口事件
- 人的行为自动化实现成本
- 自动化实现的两种方案/思路
- 以系统为测试对象:(上游接口准备下游测试数据)根据业务流程,按步骤调用接口,组装成用例
- 以接口为测试对象:依赖数据库准备测试数据,来转注单接口的测试
- 实现两个阵营
- 无代码型
- 通过代码实现一个case的自动化执行过程。(我们将要实现的自动化用例实现程度是对于接口测试的全过程自动化测试,包括数据的构造、入参定义、预期返回值定义、接口请求、接口返回值断言、数据清理。)
- 编写测试用例/业务场景
- 创建接口依赖的业务数据
- 请求接口
- 返回值和接口行为断言
- 重置测试 | 提取可重用数据
- get类型的接口自动化case编写步骤
- 通过直接读写数据库或者调用上游接口制造测试数据/重用数据库现有数据。
- 定义一个字典表示要发起请求的数据。
- 定义一个字典表示预期返回数据(一般返回数据是json)
- 使用HttpRequest类库发起请求接口。
- 使用Should类库中的断言方法比对接口返回的json和定义的字典数据是不是一样。
- 通过操作数据库清理测试过程中产生的测试数据。
- post类型的接口自动化case编写步骤
- 定义一个字典表示要发起请求的数据。
- 定义一个字典表示预期返回数据(一般返回数据是json)。
- 由于post接口会对数据库又操作仅仅查看接口返回值不足以证明接口行为的正确性所4、以还要定义一个字典表示数据库中的预期数据。
- 请求接口使用HttpRequest类库发起请求接口。
- 使用Should类库中的断言方法比对接口返回的json和定义的字典数据是不是一样。
- 使用DB类库查询到数据库中需要验证的数据,这个数据是数据库中实际数据。
- 使用Should类库中的断言方法比对数据库中的实际数据库和数据库中的预期数据是不是一样。
- 通过操作数据库清理测试过程中产生的测试数据。
- 接口自动化测试框架整体组成
- SDK:自动化用例开发者提供的SDK:数据定义、数据驱动、场景切入、执行策略、工具库、断言等开发规范和功能
- 运行容器
- WEB可视化管理:case管理、执行和结果查看的可视化系统:执行控制、策略配置、结果展示、问题分析的功能
- case结果
- case结果关注着在查看到case执行结果后,对于执行失败的case进行问题分析,并且将分析结果通过web可视化管理系统标记记录。