一、ApiFox简介

  • 介绍:ApiFox是一款集成了API 文档、API 调试、API Mock、API 自动化测试等多种功能于一身的一体化协作平台。
  • 功能定位:​ ​Apifox = Postman + Swagger + Mock + JMeter​ ​。
  • ​ApiFox软件使用文档​
  • 下载与安装:​ ​官网下载地址​

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_postman

下载完成后直接安装即可。如果不想安装客户端,也可以直接使用WEB版本,更加轻量级。


二、ApiFox的使用场景

​Apifox​ ​​ 是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为​ ​前端开发​ ​​、​ ​后端开发​ ​​和​ ​测试人员​ ​。

  • 前端开发
  • 接口文档管理
  • 接口数据 Mock
  • 接口调试
  • 前端代码自动生成
  • 后端开发
  • 接口文档管理
  • 接口调试
  • 接口自动化测试
  • 后端代码自动生成
  • 测试人员
  • 接口调试
  • 接口自动化测试

三、ApiFox以一敌四的优势

在使用Postman + Swagger + Mock + JMeter时,我们常常会遇到如下一些问题:

维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。

  1. 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
  2. 前端开发 Mock 数据的时候又要去 mockjs 定义一遍,还需要手动设置 Mock 规则。
  3. 测试人员需要去 JMeter 再定义一遍。
  4. 前端根据 mockjs Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:
  • 开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 mockjs。
  • 后端开发的接口数据类型和文档不一致,肉眼难以发现问题。
  1. 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
  2. 时间久了,各种不一致会越来越严重。

ApiFox如何解决这些问题?

​Apifox = Postman + Swagger + Mock + JMeter​

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。

通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!


四、ApiFox简单入门

安装好客户端(或者使用WEB端)后,就可以直接上手使用:

  • 新建团队和项目:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_测试工具_02

  • 设置主题:(默认是白色主题)

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_03

  • 接口测试:获取天气数据

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_04

运行之后的相应结果如下:

{
"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​ ​​ 规范的同时,提供了非常好用的​ ​可视化​ ​文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_05

当我们定义好API接口后,就可以直接在线生成API文档:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_其他_06


六、API 数据 Mock

接口数据 Mock :内置 ​ ​Mock.js​ ​​ 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox ​ ​零配置​ ​ 即可 Mock 出非常人性化的数据,具体在本文后面介绍。

  • 新创建一个Mock接口:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_数据_07

  • 定义接口名称和入参:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_其他_08

  • 设置mock相应结果:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_其他_09

我们点击预览可以查看生成的随机mock数据(ApiFox最智能的地方就是,他可以根据你设置的mock参数,去自动识别和随机出对应的参数值,例如我们的birthday字段就会被自动识别成生日):

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_postman_10

  • 代码自动生成:

我们可以根据自定义的mock数据接口,去自动生成对应的实体类代码。

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_11

  • 保存mock接口,并运行测试:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_数据_12

测试浏览器访问:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_数据_13

七、API 自动化测试

提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是: JMeter 有的功能基本都会有,并且要更好用。

八、数据库集成

如下图所示,ApiFox可以连接远程或者本地数据库,可以作为轻量级的数据库操作可视化工具:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_postman_14


新建连接:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_测试工具_15


支持多种源数据导入:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_16

九、在线调试

这个文档是用 Apifox 做的,我之前有试用过这个工具,没想到最近又有这么多厉害的新功能出来了。

点击文档右上角的运行按钮,就会出现“ 在线运行 ”的模块:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_其他_17

这个界面上就能直接调试接口了!直接 1. 填参数,2. 选环境,3. 点发送,接口请求就发出去了!下面就有返回结果!根本用不着 Postman!更不用把 API 照着抄一遍!

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_测试工具_18

我心想,如果当时上线之前,用的是 Apifox 的话,那简直是不会出现事故:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_测试工具_19

参数不存在?我在线调试后获得数据了,通过比对我知道哪个参数不存在
参数类型错误?同样的,在线调试之后,通过比对,我知道哪个参数的类型是错的
接口不存在(是因为接口写错了)?调试的时候就报接口不存在了,第一时间找后端~

十、ApiHub

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_20


ApiHub中集成了很多第三方应用的Api工具,例如:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_java_21


我们举一个高德地图API的使用例子:

效果如下:

全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)_其他_22


当然也可以在这里测试高德地图的其他各种接口调用功能~

其他

此外ApiFox还具备其他多种功能,例如:

  1. 数据模型 :可复用的数据结构,定义接口​ ​返回数据结构​ ​​及​ ​请求参数数据结构​ ​(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。
  2. 接口调试 :Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击​ ​保存为用例​ ​​按钮,即可生成​ ​接口用例​ ​,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。
  3. 接口用例 :通常一个接口会有多种情况用例,比如​ ​参数正确​ ​​用例、​ ​参数错误​ ​​用例、​ ​数据为空​ ​​用例、​ ​不同数据状态​ ​用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。
  4. 数据库操作 :支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
  5. 快捷请求 :类似 Postman 的接口调试方式,主要用途为临时调试一些​ ​无需文档化​ ​的接口,无需提前定义接口即可快速调试。
  6. 代码生成 :根据接口及数据数据模型定义,系统自动生成​ ​接口请求代码​ ​​、​ ​前端业务代码​ ​​及​ ​后端业务代码​ ​。
  7. 团队协作 :Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的​ ​团队/项目/成员权限​ ​管理,满足各类企业的需求。