网络知识 娱乐 全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)

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

一、ApiFox简介

  • 介绍:ApiFox是一款集成了API 文档、API 调试、API Mock、API 自动化测试等多种功能于一身的一体化协作平台。

  • 功能定位:Apifox = Postman + Swagger + Mock + JMeter

  • ApiFox软件使用文档

  • 下载与安装:官网下载地址

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


二、ApiFox的使用场景

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

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

三、ApiFox以一敌四的优势

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

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

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

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还具备其他多种功能,例如:

  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 天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。

想了解更多,可以查看官网:ApiFox官网地址,ApiFox官方答疑qun