作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的十分杰出。然而在整个软件开发过程中,API 调试只是其中的一部分,还有很多事件 Postman 无奈实现,或者
无奈高效实现
,比方:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。
接口治理现状
一、罕用解决方案
- 应用 Swagger 治理 API 文档
- 应用 Postman 调试 API
- 应用 MockJs 等工具 Mock API 数据
- 应用 JMeter 做 API 自动化测试
二、存在的问题
保护不同工具之间数据一致性十分艰难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个零碎之间数据不统一,导致合作低效、频繁出问题,开发测试人员痛苦不堪。
- 开发人员在 Swagger 定义好文档后,接口调试的时候还须要去 Postman 再定义一遍。
- 前端开发 Mock 数据的时候又要去 MockJs 定义一遍,还须要手动设置 Mock 规定。
- 测试人员须要去 JMeter 再定义一遍。
-
前端依据 MockJs Mock 进去的数据开发完,后端依据 Swagger 定义的接口文档开发完,各自都试测试通过了,本认为能够马上上线,后果一对接发现各种问题:
- 开发过程中接口变更了,只批改了 Swagger,然而没有及时同步批改 MockJs。
- 后端开发的接口数据类型和文档不统一,肉眼难以发现问题。
- 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不统一。
- 工夫久了,各种不统一会越来越重大。
Apifox 解决方案
一、如何解决这些问题
1、Apifox 定位
Apifox = Postman + Swagger + Mock + JMeter
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化合作平台。
通过一套零碎、一份数据,解决多个零碎之间的数据同步问题。只有定义好接口文档,接口调试、数据 Mock、接口测试就能够间接应用,无需再次定义;接口文档和接口开发调试应用同一个工具,接口调试实现后即可保障和接口文档定义完全一致。高效、及时、精确!
2、Apifox 主旨
节俭研发团队的每一分钟!
3、Apifox 性能
- 接口设计 :Apifox 接口文档遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 标准的同时,提供了十分好用的
可视化
文档治理性能,零学习老本,十分高效。并且反对在线分享接口文档。 - 数据模型 :可复用的数据结构,定义接口
返回数据结构
及申请参数数据结构
(仅 JSON 和 XML 模式)时可间接援用。反对模型间接嵌套援用,间接 JSON/XML 智能导入,反对 oneOf、allOf 等高级组合模式。 - 接口调试 :Postman 有的性能,比方环境变量、前置 / 后置脚本、Cookie/Session 全局共享 等性能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击
保留为用例
按钮,即可生成接口用例
,后续可间接运行接口用例,无需再输出参数,十分不便。自定义脚本 100% 兼容 Postman 语法,并且反对运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。 - 接口用例 :通常一个接口会有多种状况用例,比方
参数正确
用例、参数谬误
用例、数据为空
用例、不同数据状态
用例等等。运行接口用例时会主动校验数据正确性,用接口用例来调试接口十分高效。 - 接口数据 Mock:内置 Mock.js 规定引擎,十分不便 mock 出各种数据,并且能够在定义数据结构的同时写好 mock 规定。反对增加“冀望”,依据申请参数返回不同 mock 数据。最重要的是 Apifox
零配置
即可 Mock 出十分人性化的数据,具体在本文前面介绍。 - 数据库操作 :反对读取数据库数据,作为接口申请参数应用。反对读取数据库数据,用来校验(断言) 接口申请是否胜利。
- 接口自动化测试:提供接口汇合测试,能够通过抉择接口(或接口用例)疾速创立测试集。目前接口自动化测试更多功能还在开发中,敬请期待!指标是:JMeter 有的性能根本都会有,并且要更好用。
- 快捷调试 :相似 Postman 的接口调试形式,主要用途为长期调试一些
无需文档化
的接口,无需提前定义接口即可疾速调试。 - 代码生成 :依据接口及数据数据模型定义,零碎主动生成
接口申请代码
、前端业务代码
及后端业务代码
。 - 团队合作 :Apifox 天生就是为团队合作而生的,接口云端实时同步更新,成熟的
团队 / 我的项目 / 成员权限
治理,满足各类企业的需要。
二、Apifox 做的不仅仅是数据买通
如果你认为 Apifox 只做了数据买通,来晋升研发团队的效率,那就错了。Apifox 还做了十分多的翻新,来晋升开发人员的效率。
1、接口反对“用例治理”
通常一个接口会有多种状况用例,比方 正确用例
参数谬误用例
数据为空用例
不同数据状态用例
。定义接口的时候定义好这些不同状态的用例,接口调试的时候间接运行,十分高效。
2、“数据模型”定义、援用
能够独立定义数据模型,接口定义时能够间接援用数据模型,数据模型之间也能够互相援用。同样的数据结构,只须要定义一次即可多处应用;批改的时候只须要批改一处,多处实时更新,防止不统一。
3、调试时“主动校验”数据结构
应用 Apifox 调试接口的时候,零碎会依据接口文档里的定义,主动校验返回的数据结构是否正确,无需通过肉眼辨认,也无需手动写断言脚本检测,十分高效!
4、“可视化”设置断言
设置断言:
运行后,查看断言后果:
5、“可视化”设置提取变量
6、反对数据库操作
7、“零配置”Mock 出十分人性化的数据
先放一张图比照下 Apifox 和其余同类工具 零配置
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 规定。
8、生成在线接口文档
Apifox 我的项目可“在线分享”API 文档,分享进来的 API 文档可设置为公开或须要明码拜访,十分不便与内部团队合作。
体验地址:https://www.apifox.cn/apidoc/shared-ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285
9、代码主动生成
依据接口模型定义,主动生成各种语言 / 框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的业务代码(如 Model、Controller、单元测试代码等)和接口申请代码。目前 Apifox 反对 130 种语言及框架的代码主动生成。
更重要的是:你能够通过 自定义代码模板
来生成合乎本人团队的架构标准的代码,满足各种个性化的需要。
10、导入、导出
- 反对导出
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
格局数据。
三、后续性能布局
- 公布 Apifox WEB 版,反对在浏览器端应用 Apifox。
- 接口性能测试反对(相似 JMeter)。
- 反对插件市场,能够本人开发插件。
- 凋谢 Apifox API,容许开发者通过 API 调用 Apifox 的性能。
- 反对更多接口协议,如
GraphQL
、gRPC
、websocket
等。 - 反对离线应用,我的项目可抉择在线同步(团队合作)还是仅本地存储(单机离线应用)。
四、更多 Apifox 性能截图