API 工具 --Apifox 和 Postman 对比(区别)
前言
Postman 和 Apifox 有什么区别?他们之间分别有什么优势,感兴趣的同学可以继续往下看。 不吹不黑,只列功能,纯客观比对。
一.功能列表对比
(一)接口设计与文档管理功能

1.导入功能对比
Apifox 的导入功能除了支持 OpenApi 之外,还支持 yapi,RAP2,postman 等国内用得比较多的接口文档导入,而 Postman 支持的格式相对较少。


2.在线分享功能对比
Postman 的在线分享功能,付费版支持“只读”功能,Apifox 分享功能支持选择过期日期、设置密码,选择分享内容的范围,选择环境等功能。


3.编辑接口文档对比
接口文档既可以纯粹的 MD 格式文档对接口做整体说明,也可以在单个接口内部对单个接口进行说明注释。Apifox 会增加创建时间、负责人、所属业务分组等业务和协同层面的注释信息。




4.生成代码功能对比
Postman 支持将接口生成代码,postman 支持的接口和框架为 4 种,Apifox 支持 130 多种语言和框架


5.数据模型功能对比
在 postman 中没有这个功能,在 Apifox 中,由于本身具备接口设计的功能,因此会将实体类的相关参数封装成一个数据模型,供不同的接口调用,提高数据复用的效率,提高接口封装的程度,减少重复的工作。

(二)接口调试功能对比

对比了下,Postman 基本依赖于 JS 脚本,通过编写脚本对接口进行调试。Apifox 则是可视化调试界面为主,自定义脚本编辑为辅。




两者对比,在 postman 中需要写脚本才能实现的接口断言和提取变量、等待时间,在这里都能直接通过填写参数来完成、不需要写脚本。
而操作数据库这个功能 postman 则不支持。postman 只支持 js 脚本,Apifox 目前支持调用其他语言的外部函数和脚本,不过需要先安装相关的 Python、java 等环境。
(三)接口 mock 功能

Postman 也有 mock 功能,但它的 mock 服务需要自己搭建而且 mock 功能并不强。在 Postman 上执行 API mock 需要经过 3 步:
第一步:创建 mock 服务器,获得 mock url
第二步:逐个编写并添加 mock 示例,供执行 mock 时返回对应的接口响应

也就是说接口 mock 出来的响应来源于先前调试已经有的,或者直接自己编辑一个响应进去,才能得到一个返回。
mock server 只能返回自己手动添加进去的几条响应,而无法自己无限制创建出 mock 数据。
第三步: 将 mock url 复制到接口里进行调试。
而想要在 Apifox 内做接口 mock 只需要在环境
中选择 mock 服务在响应参数中选择 mock 规则,点击发送请求,则 mock 服务会返回与实际业务返回高度相似的接口响应。



(四)接口测试功能

在 Postman 里写测试脚本,使用动态参数,接口响应断言,参数传递都通过写脚本来实现。
如果要作业务接口测试,需要写各种场景下的用例,同样是通过写脚本来修改参数用例的执行顺序和设置循环次数的。使用 postman 至少需要掌握基础的 js 语言。
Apifox 里面做自动化测试可视化程度相对较高一些,创建用例的时候可以在接口设计面板修改参数然后保存,场景用例可以添加不同的参数用例作为步骤,通过拖曳来选择用例的执行顺序。
右侧的面板可以填写循环次数,接口间的参数传递和断言也可以在可视化面板提取出来。完成单个接口测试或者场景测试,都不需要写代码。

二.团队协作功能

Postman 的团队协作功能是付费的,3 人以下团队可使用免费版协作,3 人以上根据可用功能和人数有不同的价格版本。
但通常一个团队不可能只有 3 个人,也就是说,有限开放的那点协同功能是无法支持正常的团队协作需求的。

Apifox 的协同功能是免费的,团队成员的权限管理,接口数据同步、在线分享都没有障碍。
本身 Apifox 的定位和 Postman 就不一样,它一出生就是定位在 API 管理和协作上。所以除了协作功能必须的权限管理和数据同步上,它也最大程度地做数据复用,尽量减少不必要的工作量。
比如说接口调试的参数用例可以直接导入来做自动化测试,一个数据模型可以给多个接口使用,一套接口数据可以给后端做调试、前端做 mock、测试做自动化。

三.Apifox 没有的功能
Postman 支持 fork GitHub 上的代码,以及 API 网关。这两块在 Apifox 上均没有相关的功能。
两个工具的功能有相同的地方,但本质上各自的市场定位还是不同的,Postman 打通了接口调试、测试、到线上监测,代码生成。
而 Apifox 始终立身于前端、后端测试间基于接口的设计、调试、测试、文档管理等一系列接口的生命周期管理来发力。
在相同的功能点上,Apifox 基于本土互联网团队的协作模式和痛点,基本做到了人无我有,人有我优 的程度。因此如果基于各种原因,寻找 Postman 替代的开发们,不妨体验一下 Apifox。
四.产品价格
从收费模式上看,postman 是基础功能不收费,协作功能收费;Apifox 是公网版本不收费,私有化部署收费。
Apifox 的 SaaS 版本也没有什么功能和团队人数的限制,对于我们常规的项目开发来说,免费版本就够用了。
公网的 SaaS 版本,数据的确是放在他们服务器上的,但这点 Postman 其实也一样,而且 postman 的服务器可是放在国外的。
如果大家的项目安全保密级别较高,想要做私有化部署,可以去他们官网咨询,这方面我没咨询过就不对比了。

下载地址
Apifox 官网:www.apifox.cn
评论