首页 > 应用开发 > Python > 如何高效的进行接口测试?【工具篇】
1、目前接口测试的现状
2、常用方案
3、存在问题
开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
前端开发 Mock 数据的时候又要去 mockjs 定义一遍,还需要手动设置 Mock 规则。
测试人员需要去 JMeter 再定义一遍。
前端根据 mockjs Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:
1、开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 mockjs。
2、后端开发的接口数据类型和文档不一致,肉眼难以发现问题。
同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
时间久了,各种不一致会越来越严重。
4. Apifox 神器出现
Apifox=Postman + Swagger + Mock + JMeter
官网地址:
接口文档定义:Apifox 遵循 OpenApi 3.0 (原Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。
接口调试:Postman 有的功能,比如环境变量、预执行脚本、后执行脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且和 Postman 一样高效好用。
数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。
接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是: JMeter 有的功能基本都会有,并且要更好用。
5、Apifox 十大核心功能
1、Apifox 脚本语法100%兼容 Postman脚本语法,Postman 脚本可以无缝迁移到 Apifox
2、使用方式
2.1、以下两个环节可添加脚本:
2.2、PostMan加断言在Pre-request script和Tests
以下两个环节可添加脚本:
Apifox一套接口文档,接口数据格式能做到前后端开发、测试等人员同时共享,可以省去不少沟通成本,对于提高团队协作还是有一定的帮助的。Apifox是一款综合性比较强的工具,学习成本肯定是比postman高些,如果你仅仅是个人开发,对文档、测试没那么高要求的,小而美的PostMan还是比较好的选择,如果你是大型项目,多团队协作,Apifox确实是一个不错的选择.
写脚本的易用性PostMan强很多,只不过Apifox可以兼容PostMan脚本。
1、断言请求返回的结果是否正确
2、将请求返回的结果数据写入环境变量
3、检查 response body 是否包含某个字符串
4、检查 response body 是否包含等于字符串
5、检查 json 值
6、检查 header 是否有设置 Content-Type
7、检查请求响应耗时是否低于 200 毫秒
8、检查 HTTP 状态码是否为 200
9、检查 HTTP 状态码名称是否包含某个字符串
10、是否正确的 POST 请求状态码
Apifox 内置了ChaiJS作为断言库,以下是常用的断言测试脚本示例,但并非全部示例,更多用法请参考文档: ChaiJS expect BDD library
1、断言目标字符串包含另一个字符串
2、断言目标严格等于(===)某值
如果设置了deep标记,则断言目标深度等于value
注意:
设置deep标记,然后使用equal和property断言。该标记可以让其后的断言不是比较对象本身,而是递归比较对象的键值对。
3、断言深度等于某值,相当于deep.equal(value)的简写
4、断言当前环境
5、断言数据类型
注意:
6、断言是否为空
还可以使用 .a方法检查数据类型后,在断言是否为空。
示例:
7、断言目标对象的键值
8、断言目标对象是否包含指定属性
注意:
9、断言目标对象的 length
10、断言目标对象的成员 (members)
注意:
11、断言目标对象包含指定 item
注意: 建议在 .include 前先使用 .a 方法判断数据类型。
示例:
官网下载地址:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016711/viewspace-2900345/ ,如需转载,请注明出处,否则将追究法律责任。