一、API调试常用解决方案
1、Postman + Swagger + Mock + JMeter
作为一个后端开发,我做的大部分项目一般都是基于 Swagger 来管理 API 文档,基于 Postman 来做接口调试,基于 JMeter 来做接口性能测试,基于 RAP 等工具 Mock API 数据。
编辑
2、存在的问题
(1)多系统数据不互通
API设计者、前端开发、后端开发、测试人员大量重复工作。
(2)效率低
可视化程度低、操作不友好。
(3)无法团队协作
单机离线使用为主,成员之间无法实时同步数据,无法协作。
(4)学习成本高
初学者难以入手,需要大量的学习成本、培训成本。
(5)数据一致性困难
每次变更,都需要不同角色手动去多套系统修改,维护一致性非常困难。时间久了,不一致性越来越严重,最终不可维护。
貌似有一些繁琐,但也习以为常了,突然有一天,我在逛CSDN的时候,发现了Apifox,好奇的进入了官网看了看,瞬间感觉自己发现了宝藏,下载、安装、运行、调试,一顿操作猛如虎,酸爽!当天下午,我就组织了部门会议,给大家做了一个简单的Apifox分享!
3、Apifox
编辑
有了 Apifox,我们只需要定义接口文档就可以直接使用接口调试&测试、数据 Mock 等功能。并且,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!
根据官网描述,Apifox 主要为我们提供了下面这 4 类功能:
- 接口设计 :可视化文档管理,高效便捷,零学习成本! 遵循业界的 OpenApi 3.0 (原 Swagger)、JSON Schema 规范。
- 接口调试 :这个基本就是 Postman 有的功能,Apifox 上都有。
- 接口自动化测试 :这个基本就是 JMeter 有的功能,Apifox 上都有,并且要更好用。不过,这个功能目前仍然在持续开发中。
- 接口数据 Mock :内置 Mock.js 规则引擎,非常方便 mock 出各种数据。
除了上面介绍的功能之外,Apifox 还提供了 CI 持续集成、数据库操作、自动生成代码、数据导入/导出、团队协作等等开箱即用的功能。
二、下载与安装
下载与安装:Apifox官网地址
1、支持多种操作系统,贴心
编辑
2、一键安装,简单
编辑
3、自定义环境,节省固定的ip前缀,方便
编辑
三、功能特性
编辑
1、API 文档设计
- 可视化 API 文档管理,零学习成本。
- 支持数据模型,接口之间可以复用相同数据结构。
- 接口文档完全遵循 OpenAPI(Swagger) 规范。
- 支持在线分享 API 文档,方便与外部团队协作。
2、API 调试
- Postman 有的功能 Apifox 都有(如环境变量、前置/后置脚本、Cookie/Session 全局共享等),并且比 Postman 更高效好用。
- 自动校验数据结构:校验返回的数据结构是否符合文档定义,自动发现接口数据异常。
- 可视化的断言、提取变量、数据库(SQL)操作等功能。
- 支持接口用例功能(一个接口多个用例)。
(1)自定义json格式
编辑
(2)自动生成json格式数据
编辑
(3)返回结果校验
编辑
3、API 自动化测试
- 完善的 API 场景测试(流程测试)功能,保证接口数据的正确性。
- 可视化的断言、提取变量、数据库(SQL)操作等功能。
- 支持自定义前置/后置脚本,自动校验数据正确性。脚本语法 100% 兼容 Postman,降低学习成本。
- 支持调用 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等语言代码。
编辑
4、API 数据 Mock
Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,而无需再手动写 mock 规则。
Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据
- Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。
- Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。如:名称包含字符串image的string类型字段,自动 mock 出一个图片地址 URL;包含字符串time的string类型字段,自动 mock 出一个时间字符串;包含字符串city的string类型字段,自动 mock 出一个城市名。
- Apifox 根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。
- 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 正则表达式、通配符 来匹配字段名自定义 mock 规则。
5、CI 持续集成
- 支持命令行方式运行 API 测试 (Apifox CLI)。
- 支持集成 Jenkins 等持续集成工具。
6、数据库操作
- 支持读取数据库数据,作为 API 请求参数使用。
- 支持读取数据库数据,用来校验(断言) API 请求是否成功。
7、自动生成代码
- 根据接口/模型定义,自动生成各种语言/框架的业务代码和 API 请求代码。
- 支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 种语言及框架。
- 支持自定义代码模板,自动生成符合自己团队的架构规范的代码,满足各种个性化的需求。
8、支持 HTTP、TCP、RPC
- 支持 HTTP(s) 接口管理。
- 支持 Socket (TCP) 接口管理。
- 后续将会支持 GraphQL、Dubbo、gRPC、WebSocket 等协议接口。
9、数据导入/导出
- 支持导出 OpenApi (Swagger)、Markdown、Html 等数据格式,因为可以导出OpenApi格式数据,所以你可以利用 OpenApi (Swagger) 丰富的生态工具完成各种接口相关的事情。
- 支持导入 OpenApi (Swagger)、Postman、apiDoc、HAR、RAML、RAP2、YApi、Eolinker、NEI、DOClever、ApiPost 、Apizza 、ShowDoc、API Blueprint、I/O Docs、WADL、Google Discovery等数据格式,方便旧项目迁移。
- 支持定时自动导入OpenApi (Swagger)、apiDoc、Apifox格式数据。
(1)直接将postman接口同步导入Apifox
编辑
(2)像swagger一样生成API文档
编辑
(3)生成时下最流行的markdown文件,牛逼
编辑
10、团队协作
- 接口数据云端同步,实时更新。
- 成熟的团队/项目权限管理,支持管理员、普通成员、只读成员等角色设置,满足各类企业的需求。
编辑
四、最佳实践
- 前端(或后端):在 Apifox 上定好接口文档初稿。
- 前后端:一起评审、完善接口文档,定好接口用例。
- 前端:使用系统根据接口文档自动生成的 Mock 数据进入开发,无需手写 mock 规则。
- 后端:使用接口用例 调试开发中接口,只要所有接口用例调试通过,接口就开发完成了。如开发过中接口有变化,调试的时候就自动更新了文档,零成本的保障了接口维护的及时性。
- 后端:每次调试完一个功能就保存为一个接口用例。
- 测试人员:直接使用接口用例测试接口。
- 所有接口开发完成后,测试人员(也可以是后端)使用集合测试功能进行多接口集成测试,完整测试整个接口调用流程。
- 前后端 都开发完,前端从Mock 数据切换到正式数据,联调通常都会非常顺利,因为前后端双方都完全遵守了接口定义的规范。
五、后续功能规划
- 接口性能测试支持(类似 JMeter);
- 支持插件市场,可以自己开发插件;
- 开放 Apifox API,允许开发者通过 API 调用 Apifox 的功能;
- 支持更多接口协议,如GraphQL、gRPC、websocket等;
- 支持离线使用,项目可选择在线同步(团队协作)还是仅本地存储(单机离线使用);
六、Apifox 下载地址
介绍了Apifox这么多实用的功能,用上了才是真福利!
软件完全免费,堪称国产良心,有兴趣有需求的小伙伴,可以去官网下载: www.apifox.cn