一、前言
工欲善其事,必先利其器
最近对 API 接口合作的软件钻研了良久,市面上的软件都下载用了一轮,上面给大家介绍其中的最强「神器」Apifox。
- Apifox 官网:apifox.cn
在介绍它之前,先说几个场景。如果你是后端、前端或测试,那肯定遇到过这些场景。
1.1. 场景一、后端视角:
我是个 后端,遇到过的问题:
- 接口定好,团队里的前端、测试小伙伴找我 要文档 。代码正文好给个 Swagger 还容易被吐槽界面丑、性能弱,不能做到 开发阶段即可并行联调,一开始是对接不了、调试不起来的,甚至有时候还会呈现前端开发完界面,只能等后端联调。
- 接口联调对接过程中,总会有些接口没意料的,发现一些 字段返回 null 或 类型不正确 会导致前端解体或界面显示异样,联调的时候 接口 bug 不好定位 等。
- 接口初步对通了,又没测试数据。测试小伙伴是个老手,让我 造点数据 不便她测。一些简单的流程数据通过数据库来造,又 费劲不讨好 还容易出问题,往往后果就是反手一个 bug 甩过去。
- 公司的接口是微服务化的,要凋谢给其余事业部或内部客户应用,须要提供接口定义、参数阐明等等,自此 又多了份文档要保护,后续的所有迭代都须要同步。
1.2. 场景二、前端视角:
我是个 前端,遇到过的问题:
- 前端业务开发完,然而自测得依赖于接口数据来汇合在前端(网页、客户端、小程序)来跑一整个流程。接口又还不能对接,可能要等几天甚至一周,就只能先本人 Mock 一些 JSON 数据 来自测,如果本人 造数据 的时候有些造的不太对,还得本人 定位查错是代码健壮性还是 JSON 自身造的问题 能力纠错,而且 webpack 或其余脚手架提供的 mock 服务往往 只能返回繁多后果,想要 mock 多种状况十分麻烦。
- 后端开发完,联调却发现界面显示解体了,发现是 接口返回数据类型 和文档不统一,肉眼还分辨不进去,还得 费工夫调试 一轮下来才发现是接口问题。
- 接口初步对通了,发现某些状况接口满足不了需要 须要加字段,后端要开发 0.5/1 天。要么干等进度延期,要么就提前同步去批改一下 Mock 的 JSON 数据 对应的改一下前端逻辑,往往有多套 JSON 还得全副同步改一遍。
1.3. 场景三、测试视角:
我是个 测试,遇到过的问题:
- 负责接口测试时,不仅须要 花工夫去思考接口的可能场景和手动造参数 到 JMeter 手动录入,往往一个接口变动还会引起 N 个用例的批改,费时间反复做接口同步的工作。
- 往往每个团队测试成员之间的断言总是最费时间保护的,其中波及到 团队成员间的断言脚本同步 、 团队成员间的断言脚本同步,而且一个新的团队成员或团队人员的流动,还会随同一段时间要带新人,手把手教人入门。
- 测试接口测试时,对于一些性能问题或并发的问题不仅验证麻烦,还很容易,每个迭代回归测试要反复所有流程测试,而后 输入测试报告。
这 3 个场景都反映了一个关键问题,工作效率低(PS:并不是单个人或单个角色的影响,而是因为合作不可避免的会影响到了所有人的效率)。
二、Apifox
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化合作平台,定位
Postman + Swagger + Mock + JMeter
。通过一套零碎、一份数据,解决多个零碎之间的数据同步问题。只有定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就能够间接应用,无需再次定义;API 文档和 API 开发调试应用同一个工具,API 调试实现后即可保障和 API 文档定义完全一致。高效、及时、精确!
上面针对前言中的三个场景来聊聊。
2.1 场景一、后端视角:
丑陋的接口文档
定义一下参数、返回构造,即可生成的一份 丑陋的文档。并且设计文档对我的项目已有接口还反对 swagger 导入、抓包 cURL 导入等多种形式批量创立。
返回构造示例,定义好构造没有接口也能够间接预览生成,也能够边调试能够边保留,不必手动保护。
主动校验数据
对于之前一些 字段返回 null 或 类型不正确,接口调试的时候,不须要写断言,即会主动通过文档定义对必须属性、可空、类型做校验,查看返回数据的正确与否,醒目提醒。
状态码查看、枚举查看,字段类型、必要字段断言查看等各种查看都是主动的,不须要写 断言。
调试直观反映问题,批改问题后数据校验通过。接口就这样自测完了,完满。
造种子数据
反对参数 mock 动静值,随机产生人性化申请参数,配置测试用例,一键批量造种子数据。
首先,通过表单抉择一下 body 的动静值。
而后,运行查看下申请的理论 body 的随机值。
最初,一键导入用例到测试用例,不须要批改,间接设置轮次 5000,这就造了 5000 条随机数据了。
在线 API 接口文档
反对在线分享,可选明码拜访,实时同步接口改变更新。
这是 Apifox 分享进去的 API 文档,贴个图你感触下:
返回体示例
Markdown 文档
2.2 场景二、前端视角:
Mock 服务
有了 Mock 服务或工具之后,前后端能够同步进入开发,后端接口进去之前,前端能够通过 Mock 性能来制作假数据接口来进行开发和调试。
Apifox 不仅自带 Mock 服务依据接口定义里的数据结构、数据类型返回 Mock 数据,还内置 智能 Mock 性能,随字段名和字段数据类型会智能优化主动匹配生成 mock 规定。大多数状况下能轻易实现“零配置”Mock 出十分人性化的数据,只有文档定义完即可应用。
零配置的数据结构:
零配置的接口:
看看 Mock 进去的随机数据:
能够看出 Apifox 零配置 Mock 进去的数据和真实情况是十分靠近的,前端开发能够间接应用,基本不必手动写 JSON 或 mock 规定。
还反对高级 Mock 性能,即定制返回的返回数据,依据不同的申请参数值返回不同的数据、Header 提早等配置。
高级 Mock 性能里还反对在返回数据里局部的数据是随机动静值,反对应用 Mock.js、Nunjucks 两大利器。
联调前数据校验
后端开发完了进入联调阶段,间接能够应用后端开发已有的用例依据状况去批改参数。不仅工作量少,且简略谬误都是直观展现,校验过一轮接口的稳定性,再也不必扯皮是不是接口曾经 Ready 了。
接口变更、迭代,让咱们 拥抱变动
接口返回体须要 减少一个字段返回 或接口须要 减少一个参数 ,所有调试用例、测试用例、Mock 服务都主动会减少参数和返回值,基本不须要 费劲手动 同步接口、返回体的功夫。
用户模型减少一个 updatedAt
字段,示意用户的信息更新工夫
返回的 Mock 数据,主动新增带了这个字段的 Mock 数据,零保护同步老本
2.3 场景三、测试视角:
复用开发成绩
Apifox 的测试用例间接能够复用开发的调试接口用例。
接口新增一个参数 userType
,间接在自动化测试的用例里主动会进行同步,缩小不必要的手动参数同步。
数据结构减少新字段 name
, photoUrls
,间接在所有相干的自动化测试的用例里主动会进行类型和必要性断言,无需定位改变影响的相干的用例范畴,也无需手动断言,执行即可定位相干失败的用例。
团队间测试数据主动同步
接口数据、测试脚本、用例数据都能团队内共享,不须要本人去通过分享文件等形式来手动同步。
测试数据同步,且反对追随环境主动切换治理。
测试步骤、间隔时间、线程、轮次等配置同步。
输入测试报告
反对流程测试用例的多线程、多轮次一键执行,并且还反对套件汇合所有流程进行全流程测试,报告反对导出 HTML、JSON、控制台等格局。
测试用例单流程、多线程、循环屡次测试。
测试套件汇合测试用例所有流程进行全流程测试。
继续集成自动化接口监控
反对继续集成命令行模式,联合 Jenkins 能够实现自动化接口监控、每日测试等。
三、总结
这些场景都是咱们团队里常常遇到的,Apifox 不仅能很好的解决这些问题,还非常容易上手、合作强、功能强大,很快就在咱们团队里推广了起来。
相对是最好用的接口治理神器,没有之一,秒杀市面上所有同类产品。
Apifox 的装置十分不便,间接通过官网下载安装包解压装置即可,下载地址:https://www.apifox.cn/
码字不易,喜爱的小伙伴点赞、转发、评论走起来,谢谢