当前位置:网站首页>全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)
全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)
2022-07-05 00:34:00 【兴趣使然的草帽路飞】
一、ApiFox简介
介绍:ApiFox是一款集成了API 文档、API 调试、API Mock、API 自动化测试等多种功能于一身的一体化协作平台。
功能定位:
Apifox = Postman + Swagger + Mock + JMeter
。下载与安装:官网下载地址
下载完成后直接安装即可。如果不想安装客户端,也可以直接使用WEB版本,更加轻量级。
二、ApiFox的使用场景
Apifox 是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发
、后端开发
和测试人员
。
- 前端开发
- 接口文档管理
- 接口数据 Mock
- 接口调试
- 前端代码自动生成
- 后端开发
- 接口文档管理
- 接口调试
- 接口自动化测试
- 后端代码自动生成
- 测试人员
- 接口调试
- 接口自动化测试
三、ApiFox以一敌四的优势
在使用Postman + Swagger + Mock + JMeter时,我们常常会遇到如下一些问题:
维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。
- 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
- 前端开发 Mock 数据的时候又要去 mockjs 定义一遍,还需要手动设置 Mock 规则。
- 测试人员需要去 JMeter 再定义一遍。
- 前端根据 mockjs Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:
- 开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 mockjs。
- 后端开发的接口数据类型和文档不一致,肉眼难以发现问题。
- 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
- 时间久了,各种不一致会越来越严重。
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 做的,我之前有试用过这个工具,没想到最近又有这么多厉害的新功能出来了。
点击文档右上角的运行按钮,就会出现“在线运行”的模块:
这个界面上就能直接调试接口了!直接 1. 填参数,2. 选环境,3. 点发送,接口请求就发出去了!下面就有返回结果!根本用不着 Postman!更不用把 API 照着抄一遍!
我心想,如果当时上线之前,用的是 Apifox 的话,那简直是不会出现事故:
参数不存在?我在线调试后获得数据了,通过比对我知道哪个参数不存在
参数类型错误?同样的,在线调试之后,通过比对,我知道哪个参数的类型是错的
接口不存在(是因为接口写错了)?调试的时候就报接口不存在了,第一时间找后端~
十、ApiHub
ApiHub中集成了很多第三方应用的Api工具,例如:
我们举一个高德地图API的使用例子:
- 使用高德地图API进行天气接口调用:参考文档
效果如下:
当然也可以在这里测试高德地图的其他各种接口调用功能~
其他
此外ApiFox还具备其他多种功能,例如:
- 数据模型:可复用的数据结构,定义接口
返回数据结构
及请求参数数据结构
(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。 - 接口调试:Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击
保存为用例
按钮,即可生成接口用例
,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。 - 接口用例:通常一个接口会有多种情况用例,比如
参数正确
用例、参数错误
用例、数据为空
用例、不同数据状态
用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。 - 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
- 快捷请求:类似 Postman 的接口调试方式,主要用途为临时调试一些
无需文档化
的接口,无需提前定义接口即可快速调试。 - 代码生成:根据接口及数据数据模型定义,系统自动生成
接口请求代码
、前端业务代码
及后端业务代码
。 - 团队协作:Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的
团队/项目/成员权限
管理,满足各类企业的需求。 - …
想了解更多,可以查看官网:ApiFox官网地址,ApiFox官方答疑qun
边栏推荐
- 华为200万年薪聘请数据治理专家!背后的千亿市场值得关注
- Deux nombres se remplacent
- Ap8022 switching power supply small household appliances ACDC chip offline switching power supply IC
- P4408 [noi2003] truant children (tree diameter)
- P4281 [ahoi2008] emergency assembly / gathering (LCA)
- [Yocto RM]11 - Features
- 挖财学院开户安全的吗?开户怎么开?
- abc 258 G - Triangle(bitset)
- 积分商城游戏设置的基本要点
- Leetcode70 (Advanced), 322
猜你喜欢
[path planning] RRT adds dynamic model for trajectory planning
《论文笔记》Multi-UAV Collaborative Monocular SLAM
基于三维gis平台的消防系统运用
OpenHarmony资源管理详解
What is the difference between port mapping and port forwarding
npm install报错 强制安装
NPM install error forced installation
Distributed base theory
微服务(Microservice)那点事儿
【雅思阅读】王希伟阅读P3(Heading)
随机推荐
Hisilicon 3559 universal platform construction: YUV422 pit stepping record
【北京大学】Tensorflow2.0-1-开篇
npm install报错 强制安装
Business implementation - the log is written to the same row of data
他做国外LEAD,用了一年时间,把所有房贷都还清了
2022.07.03(LC_6109_知道秘密的人数)
The pit of sizeof operator in C language
Introduction to ACM combination counting
JS how to realize array to tree
Summary of the function and usage of const, volatile and restrict
【Unity】InputSystem
Every time I look at the interface documents of my colleagues, I get confused and have a lot of problems...
It's too convenient. You can complete the code release and approval by nailing it!
Acwing164. Accessibility Statistics (topological sorting +bitset)
兩個數相互替換
const、volatile和restrict的作用和用法总结
URL和URI
Huawei employs data management experts with an annual salary of 2million! The 100 billion market behind it deserves attention
[paper reading] cavemix: a simple data augmentation method for brain vision segmentation
Multilingual Wikipedia website source code development part II