一、ApiFox简介
介绍:ApiFox是一款集成了API 文档、API 调试、API Mock、API 自动化测试等多种功能于一身的一体化协作平台。
功能定位:
Apifox = Postman + Swagger + Mock + JMeter
。ApiFox软件使用文档
下载与安装:官网下载地址
下载完成后直接安装即可。如果不想安装客户端,也可以直接使用WEB版本,更加轻量级。
二、ApiFox的使用场景
Apifox 是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发
、后端开发
和测试人员
。
- 前端开发
- 接口文档管理
- 接口数据 Mock
- 接口调试
- 前端代码自动生成
- 后端开发
- 接口文档管理
- 接口调试
- 接口自动化测试
- 后端代码自动生成
- 测试人员
- 接口调试
- 接口自动化测试
三、ApiFox以一敌四的优势
在使用Postman + Swagger + Mock + JMeter时,我们常常会遇到如下一些问题:
维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。
- 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
- 前端开发 Mock 数据的时候又要去 mockjs 定义一遍,还需要手动设置 Mock 规则。
- 测试人员需要去 JMeter 再定义一遍。
- 前端根据 mockjs Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:
- 开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 mockjs。
- 后端开发的接口数据类型和文档不一致,肉眼难以发现问题。
- 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
- 时间久了,各种不一致会越来越严重。
ApiFox如何解决这些问题?
Apifox = Postman + Swagger + Mock + JMeter
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。
通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!
四、ApiFox简单入门
安装好客户端(或者使用WEB端)后,就可以直接上手使用:
- 新建团队和项目:
- 设置主题:(默认是白色主题)
- 接口测试:获取天气数据
运行之后的相应结果如下:
{"reason": "查询成功!","result": {"city": "杭州","realtime": {"temperature": "14","humidity": "55","info": "晴","wid": "00","direct": "东风","power": "3级","aqi": "140"},"future": [{"date": "2022-02-27","temperature": "8/14℃","weather": "晴转多云","wid": {"day": "00","night": "01"},"direct": "东风转持续无风向"},{"date": "2022-02-28","temperature": "9/20℃","weather": "多云转小雨","wid": {"day": "01","night": "07"},"direct": "持续无风向转西北风"},{"date": "2022-03-01","temperature": "7/15℃","weather": "小雨","wid": {"day": "07","night": "07"},"direct": "西北风转持续无风向"},{"date": "2022-03-02","temperature": "7/17℃","weather": "晴转阴","wid": {"day": "00","night": "02"},"direct": "持续无风向"},{"date": "2022-03-03","temperature": "8/14℃","weather": "小雨转小到中雨","wid": {"day": "07","night": "21"},"direct": "持续无风向"}]},"error_code": 0}
五、API 接口设计与接口文档
Apifox 接口文档遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化
文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。
当我们定义好API接口后,就可以直接在线生成API文档:
六、API 数据 Mock
接口数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置
即可 Mock 出非常人性化的数据,具体在本文后面介绍。
- 新创建一个Mock接口:
- 定义接口名称和入参:
- 设置mock相应结果:
我们点击预览可以查看生成的随机mock数据(ApiFox最智能的地方就是,他可以根据你设置的mock参数,去自动识别和随机出对应的参数值,例如我们的birthday字段就会被自动识别成生日):
- 代码自动生成:
我们可以根据自定义的mock数据接口,去自动生成对应的实体类代码。
- 保存mock接口,并运行测试:
测试浏览器访问:
七、API 自动化测试
提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是: JMeter 有的功能基本都会有,并且要更好用。
- 参考:ApiFox自动化测试官方文档
八、数据库集成
如下图所示,ApiFox可以连接远程或者本地数据库,可以作为轻量级的数据库操作可视化工具:
新建连接:
支持多种源数据导入:
九、在线调试
这个文档是用 Apifox 做的,我之前有试用过这个工具,没想到最近又有这么多厉害的新功能出来了。
点击文档右上角的运行按钮,就会出现“在线运行”的模块:
这个界面上就能直接调试接口了!直接 1. 填参数,2. 选环境,3. 点发送,接口请求就发出去了!下面就有返回结果!根本用不着 Postman!更不用把 API 照着抄一遍!
我心想,如果当时上线之前,用的是 Apifox 的话,那简直是不会出现事故:
参数不存在?我在线调试后获得数据了,通过比对我知道哪个参数不存在
参数类型错误?同样的,在线调试之后,通过比对,我知道哪个参数的类型是错的
接口不存在(是因为接口写错了)?调试的时候就报接口不存在了,第一时间找后端~
十、ApiHub
ApiHub中集成了很多第三方应用的Api工具,例如:
我们举一个高德地图API的使用例子:
- 使用高德地图API进行天气接口调用:参考文档
效果如下:
当然也可以在这里测试高德地图的其他各种接口调用功能~
其他
此外ApiFox还具备其他多种功能,例如:
- 数据模型:可复用的数据结构,定义接口
返回数据结构
及请求参数数据结构
(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。 - 接口调试:Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击
保存为用例
按钮,即可生成接口用例
,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。 - 接口用例:通常一个接口会有多种情况用例,比如
参数正确
用例、参数错误
用例、数据为空
用例、不同数据状态
用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。 - 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
- 快捷请求:类似 Postman 的接口调试方式,主要用途为临时调试一些
无需文档化
的接口,无需提前定义接口即可快速调试。 - 代码生成:根据接口及数据数据模型定义,系统自动生成
接口请求代码
、前端业务代码
及后端业务代码
。 - 团队协作:Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的
团队/项目/成员权限
管理,满足各类企业的需求。 - …
想了解更多,可以查看官网:ApiFox官网地址,ApiFox官方答疑qun