一、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数据(ApiFox最智能的地方就是,他可以根据你设置的mock参数,去自动识别和随机出对应的参数值,例如我们的birthday字段就会被自动识别成生日):
我们可以根据自定义的mock数据接口,去自动生成对应的实体类代码。
测试浏览器访问:
七、API 自动化测试
提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是: JMeter 有的功能基本都会有,并且要更好用。
八、数据库集成
如下图所示,ApiFox可以连接远程或者本地数据库,可以作为轻量级的数据库操作可视化工具:
新建连接:
支持多种源数据导入:
九、在线调试
这个文档是用 Apifox 做的,我之前有试用过这个工具,没想到最近又有这么多厉害的新功能出来了。
点击文档右上角的运行按钮,就会出现“
在线运行
”的模块:
这个界面上就能直接调试接口了!直接 1. 填参数,2. 选环境,3. 点发送,接口请求就发出去了!下面就有返回结果!根本用不着 Postman!更不用把 API 照着抄一遍!
我心想,如果当时上线之前,用的是 Apifox 的话,那简直是不会出现事故:
参数不存在?我在线调试后获得数据了,通过比对我知道哪个参数不存在
参数类型错误?同样的,在线调试之后,通过比对,我知道哪个参数的类型是错的
接口不存在(是因为接口写错了)?调试的时候就报接口不存在了,第一时间找后端~
十、ApiHub
ApiHub中集成了很多第三方应用的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 天生就是为团队协作而生的,接口云端实时同步更新,成熟的
团队/项目/成员权限
管理,满足各类企业的需求。
-
…