有没有人用过 Apifox,是不是可以扔掉 Postman 了?

2020-06-18 11:59:09 +08:00
 apifox

1 、Apifox 定位

Apifox = Postman + Swagger + Mock + JMeter

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

2 、Apifox 功能

  1. 接口文档定义:Apifox 遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。
  2. 接口调试:Postman 有的功能,比如环境变量、预执行脚本、后执行脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且和 Postman 一样高效好用。
  3. 数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。
  4. 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:JMeter 有的功能基本都会有,并且要更好用。
15573 次点击
所在节点    推广
29 条回复
qW7bo2FbzbC0
2020-06-18 12:36:39 +08:00
生成 swagger 文档不是 web 框架的工作吗?
sunmker
2020-06-18 13:18:56 +08:00
有没有人用过你?
learningman
2020-06-18 13:50:35 +08:00
lzyroot
2020-06-18 14:04:01 +08:00
广东友文信息科技有限公司,会收集 api 吗😂
apifox
2020-06-18 14:07:18 +08:00
我们是前后端同步进入开发的。开发流程是:
1 、前端(或后端)在 Apifox 上定好接口
2 、前后端一起评审接口、填好用例
3 、前端使用 Apifox 定好的接口 Mock 数据进入开发
4 、后端使用 Apifox 调试接口,调试通过了,接口就开发完了
5 、后端开发完后,测试使用 Apifox 的 [集合测试] 功能,测试完整的接口调用流程
6 、前后端开发完,前端更换到正式数据,基本联调都会非常顺利,因为前后端双方都完全遵守了接口定义
ming61177
2020-06-18 14:10:23 +08:00
如果我用 RAP2 + Postman 你这个有啥优势。。。。
apifox
2020-06-18 14:10:35 +08:00
我们以前是开发人员都用 Postman 来调试接口,但是没人愿意写接口文档,没有接口文档,前端开发就很痛苦,所以我们就想“如果有个类似 Postman 这样的工具,可以做到接口调试完了,就自动保存成接口文档,那该有多美好”

然后就整出了这个 Apifox,同时做了非常多提升开发团队效率的工作,举个简单的例子:

Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据?

1. Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。
2. Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。如:名称包含字符串`image`的`string`类型字段,自动 mock 出一个图片地址 URL ;包含字符串`time`的`string`类型字段,自动 mock 出一个时间字符串;包含字符串`city`的`string`类型字段,自动 mock 出一个城市名。
3. Apifox 根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。
4. 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 `正则表达式`、`通配符` 来匹配字段名自定义 mock 规则。
apifox
2020-06-18 14:15:12 +08:00
@ming61177

[接口管理现状]

一、常用解决方案

1. 使用 Swagger 管理接口文档
1. 使用 Postman 调试接口
1. 使用 RAP Mock 数据
1. 使用 JMeter 做接口自动化测试

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

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

三、Apifox 就是为解决这个问题而生的
ming61177
2020-06-18 14:30:36 +08:00
1 、Swagger 跟 RAP 是重叠的,只会选择一个
2 、RAP 也支持 Swagger 导入 或者 Postman 导出
3 、确定接口的定义方,比如后台开发人员或者前后台共同协商后制定接口,在 RAP 上也直接 Mock 了,接口锁定,前端与后端或接口测试都共同使用 RAP,但是修改接口参数的权限只有一个人,并不会带来管理上的混乱吧?
hantsy
2020-06-18 14:50:14 +08:00
@apifox 这种流程倒是可以推的。

和 CDC ( Consumer Driven Contract )理论上有几份相似,协议优先的 API 设计方法。

Pact 也有专有的 Server 可以先运行事先定义 Contract 生成的 API,Consumer 和 Producer 端 分别实现。
apifox
2020-06-18 14:51:47 +08:00
@ming61177 建议下载一个 Apifox 体验下,相信你用的会喜欢上的。
hantsy
2020-06-18 14:52:11 +08:00
PostMan 我好多年没用了,不过有邮件订阅,好像现在也开始做 API 设计方面的工具( Contract 优先,先出 Mocking API )。
cumt21g
2020-06-18 15:45:32 +08:00
问题还很多啊, 导入 /导出生成的 md 有点不知所谓了,
生成代码里一堆 undefined
apifox
2020-06-18 16:00:21 +08:00
@cumt21g 加 Apifox 官网的联系方式,帮你解决
hehe22
2020-06-29 11:01:40 +08:00
必须登录才能用,呵呵,还取代 postman
caryxiao
2020-06-29 15:14:01 +08:00
不能离线使用吗?能否保证不收集用户隐私数据, 接口这种东西是很敏感的。
canzyp
2020-06-29 17:55:18 +08:00
下载完想体验下,让我注册,我就卸载了
vxlol
2020-06-29 21:49:06 +08:00
为什么不能离线使用?是为了方便收集大家的 API 吗~~~?
vxlol
2020-06-29 21:49:40 +08:00
@apifox 为什么不能离线使用?是为了方便收集大家的 API 吗~~~?
apifox
2020-07-02 15:40:36 +08:00
@vxlol 离线功能已经在规划中了

后续功能规划

1. 接口性能测试支持(类似 JMeter )
2. 支持离线使用,项目可选择在线同步(团队协作)还是仅本地存储(单机离线使用)
3. 提供私有化部署方案


另外:Apifox 的 [环境] 里的变量可以设置 [本地值] ,本地值只保存在本地,不会同步到云端,token 、账号、密码之类的敏感数据适合放在 [本地值]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX