引言
与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小。因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中。
手工做接口测试,测试数据和参数都可以由测试人员手动填写和更新。
因此我们在考虑将接口用例实现自动化的时候,主要思路就是在单个接口请求的测试用例已经完成的前提下,我们如何解决以下问题:
- 业务测试场景会调用不止一个接口,下一个接口的请求依赖于上一个接口的数据,需要解决接口依赖问题
- token等鉴权数据有过期时间,多个接口用到该参数,需要解决一次修改,多处生效的问题
- 一个接口要用到多个测试数据做覆盖
- 批量测试下,需要知道某个接口返回的参数/数据是否符合预期
本文使用的自动化接口测试工具为Apifox,官网下载地址:www.apifox.cn 直接下载注册安装后即可使用。 接下来依次讲解下上述问题如何使用apifox解决。
正文
一、接口传参
举一个常见的场景说明。查询接口请求获取数据的时候,需要带一个access_token的参数,而access_token参数需要另外的鉴权接口获取。因此需要鉴权接口将获取到的token参数传递给查询接口,查询接口才能发起请求。
另一个常见的场景是,用户需要先登陆,才能将选中的商品加入购物车。 这个接口顺利发起请求依赖于上一个接口获取数据。 手动测试的情况下,直接人工复制即可。
解决方案: 需要将上一个接口返回的数据进行识别提取出目标参数,保存为全局变量,下一个接口直接调用参数。
步骤: 1)在apifox的接口tab-后置操作tab,选择提取变量
2)填写变量名称,变量类型和提取的表达式。提取表达式符合json path 语法。在本接口数据中由于返回数据只有一层,因此采用$.目标参数的方式提取。 如果有多层参数,可以点击提取表达式旁边的问号,查看详细的json path语法。
获取到的参数以变量的形式存储,点击接口tab右上角的设置图标,可以查看到获取到的环境变量的值。
接着就可以在下一个接口,以参数的方式调用: