• 0
  • 0
分享

 

一、前言

工欲善其事,必先利其器

最近对 API 接口协作的软件研究了好久,市面上的软件都下载用了一轮,下面给大家介绍其中的最强「神器」 Apifox。

在介绍它之前,先说几个场景。如果你是后端、前端或测试,那一定遇到过这些场景。

1.1. 场景一、后端视角:

我是个 后端 ,遇到过的问题:

  • 1、接口定好,团队里的前端、测试小伙伴找我 要文档 。代码注释好给个 Swagger 还容易被吐槽界面丑、功能弱,不能做到 开发阶段即可并行联调 ,一开始是对接不了、调试不起来的,甚至有时候还会出现前端开发完界面,只能等后端联调。

  • 2、接口联调对接过程中,总会有些接口没预料的,发现一些 字段返回 null 或 类型不正确 会导致前端崩溃或界面显示异常,联调的时候 接口 bug 不好定位 等。

  • 3、接口初步对通了,又没测试数据。测试小伙伴是个新手,让我 造点数据 方便她测。一些复杂的流程数据通过数据库来造,又 费力不讨好 还容易出问题,往往结果就是反手一个 bug 甩过来。

  • 4、公司的接口是微服务化的,要开放给其他事业部或外部客户使用,需要提供接口定义、参数说明等等,自此 又多了份文档要维护,后续的所有迭代都需要同步 。

1.2. 场景二、前端视角:

我是个 前端 ,遇到过的问题:

  • 1、前端业务开发完,但是自测得依赖于接口数据来集合在前端(网页、客户端、小程序)来跑一整个流程。接口又还不能对接,可能要等几天甚至一周,就只能先自己 Mock 一些 JSON 数据 来自测,如果自己 造数据 的时候有些造的不太对,还得自己 定位查错是代码健壮性还是 JSON 本身造的问题 才能纠错,而且 webpack 或其他脚手架提供的 mock 服务往往 只能返回单一结果,想要 mock 多种情况非常麻烦 。

  • 2、后端开发完,联调却发现界面显示崩溃了,发现是 接口返回数据类型 和文档不一致,肉眼还分辨不出来,还得 费工夫调试 一轮下来才发现是接口问题。

  • 3、接口初步对通了,发现某些情况接口满足不了需求 需要加字段 ,后端要开发 0.5/1 天。要么干等进度延期,要么就提前同步去修改一下 Mock 的 JSON 数据 对应的改一下前端逻辑,往往有多套 JSON 还得全部同步改一遍。

1.3. 场景三、测试视角:

我是个 测试 ,遇到过的问题:

  • 1、负责接口测试时,不仅需要 花时间去思考接口的可能场景和手动造参数 到 JMeter 手动录入 ,往往一个接口变动还会引起 N 个用例的修改,费时间重复做接口同步的工作 。

  • 2、往往每个团队测试成员之间的断言总是最费时间维护的,其中涉及到 团队成员间的断言脚本同步 、 团队成员间的断言脚本同步,而且一个新的团队成员或团队人员的流动,还会伴随一段时间要带新人,手把手教人入门。

  • 3、测试接口测试时,对于一些性能问题或并发的问题不仅验证麻烦,还很容易,每个迭代回归测试要重复所有流程测试,然后 输出测试报告 。

这 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 导入等多种方式批量创建。

1.png

返回结构示例,定义好结构没有接口也可以直接预览生成,也可以边调试可以边保存,不用手动维护。

2.png

自动校验数据

对于之前一些 字段返回 null 或 类型不正确 ,接口调试的时候,不需要写断言,即会自动通过文档定义对必须属性、可空、类型做校验,检查返回数据的正确与否,醒目提示。

状态码检查、枚举检查,字段类型、必要字段断言检查等各种检查都是自动的,不需要写 断言 。

3.png

调试直观反映问题,修改问题后数据校验通过。接口就这样自测完了,完美。

4.png

造种子数据

支持参数 mock 动态值,随机产生人性化请求参数,配置测试用例,一键批量造种子数据。

首先,通过表单选择一下 body 的动态值。

5 种子.png

然后,运行查看下请求的实际 body 的随机值。

6.png

最后,一键导入用例到测试用例,不需要修改,直接设置轮次 5000,这就造了 5000 条随机数据了。

在线 API 接口文档

支持在线分享,可选密码访问,实时同步接口改动更新。

这是 Apifox 分享出来的 API 文档,贴个图你感受下:

7 在线AP.png

返回体示例

8.png

Markdown 文档

9.png

2.2 场景二、前端视角:

Mock 服务

有了 Mock 服务或工具之后,前后端可以同步进入开发,后端接口出来之前,前端可以通过 Mock 功能来制造假数据接口来进行开发和调试。

Apifox 不仅自带 Mock 服务根据接口定义里的数据结构、数据类型返回 Mock 数据,还内置 智能 Mock 功能,随字段名和字段数据类型会智能优化自动匹配生成 mock 规则。大多数情况下能轻易实现 “零配置” Mock 出非常人性化的数据,只要文档定义完即可使用。

零配置的数据结构:

10  2.2.png

零配置的接口:

11.png

看看 Mock 出来的随机数据:

12.png

可以看出 Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,根本不用手动写 JSON 或 mock 规则。

还支持高级 Mock 功能,即定制返回的返回数据,根据不同的请求参数值返回不同的数据、Header 延迟等配置。

13.png

高级 Mock 功能里还支持在返回数据里部分的数据是随机动态值,支持使用 Mock.js、Nunjucks 两大利器。

14.png

联调前数据校验

后端开发完了进入联调阶段,直接可以使用后端开发已有的用例根据情况去修改参数。不仅工作量少,且简单错误都是直观展示,校验过一轮接口的稳定性,再也不用扯皮是不是接口已经 Ready 了。

15.png

接口变更、迭代,让我们 拥抱变化

接口返回体需要 增加一个字段返回 或接口需要 增加一个参数 ,所有调试用例、测试用例、 Mock 服务都自动会增加参数和返回值,根本不需要 费力手动 同步接口、返回体的功夫。

用户模型增加一个 updatedAt 字段,表示用户的信息更新时间

16.png

返回的 Mock 数据,自动新增带了这个字段的 Mock 数据,零维护同步成本

2.3 场景三、测试视角:

复用开发成果

Apifox 的测试用例直接可以复用开发的调试接口用例。

接口新增一个参数 userType,直接在自动化测试的用例里自动会进行同步,减少不必要的手动参数同步。

数据结构增加新字段 name, photoUrls ,直接在所有相关的自动化测试的用例里自动会进行类型和必要性断言,无需定位改动影响的相关的用例范围,也无需手动断言,执行即可定位相关失败的用例。

团队间测试数据自动同步

接口数据、测试脚本、用例数据都能团队内共享,不需要自己去通过分享文件等方式来手动同步。

测试数据同步,且支持跟随环境自动切换管理。

测试步骤、间隔时间、线程、轮次等配置同步。

17 2.3.png

输出测试报告

支持流程测试用例的多线程、多轮次一键执行,并且还支持套件集合所有流程进行全流程测试,报告支持导出 HTML、JSON、控制台等格式。

测试用例单流程、多线程、循环多次测试。

18.png

测试套件集合测试用例所有流程进行全流程测试。

19.png

持续集成自动化接口监控

支持持续集成命令行模式,结合 Jenkins 可以实现自动化接口监控、每日测试等。

20.png

三、总结

这些场景都是我们团队里经常遇到的,Apifox 不仅能很好的解决这些问题,还非常容易上手、协作强、功能强大,很快就在我们团队里推广了起来。

绝对是最好用的接口管理神器,没有之一,秒杀市面上所有同类产品。

Apifox的安装非常方便,直接通过官网下载安装包解压安装即可,下载地址:www.apifox.cn

码字不易,喜欢的小伙伴点赞、转发、评论走起来,谢谢

21.png


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:文件上传和下载,用例怎么写 ?阿常回答:我们先分别给文件上传一个特定的场景。文件上传:每个文件大小不超过 20M,文件个数不超过 10个,文件格式不限。一、文件上传测试点一)文件大小1、文件大小 0 KB,上传时是否有提示。2、文件大小 19.8 M,是否能上传成功。3、文件大小 20.2 M,是否能上传成功。4、文件大小,是提交前校验,还是提交后校验。二)文件个数1、上传文件个数 1个,是否能上传成功。2、上传文件个数 10个,是否能上传成功。3、上传文件个数 11个,上传时是否有提示。4、上传文件个数,是提交前校验,还是提交后校验。三)文件格式1、验证所有支持...
            0 0 1433
            分享
          • 跟一位朋友聊侃职业发展,她以前也是IT圈的妹子,后来华丽转行。她知道我做过很长时间的测试,而且做的还不错。大概她是看到了我日常行事风格里也表现出了很强的测试思维—找问题,解决问题,追求完美,但似乎又不相信有什么事情是完美的。她跟我说:“测试我也做过一段时间的,现在觉得,就算有一天我拖着棍子去要饭,我也不会再回头去做测试!”因为她忍受不了这种以找bug为目标的工作。 我被她这句话伤害到了,尽管她一再表示,她绝对没有贬低测试这个行当的意思。   其实我当下的主要工作已经不是做测试了,但是项目偶尔缺人的时候,还是会被拉去帮忙。就在...
            2 5 2832
            分享
          •   响应时间  响应时间是指某个请求或操作从发出到接收到反馈所消耗的时间,包括应用服务器(客户端)处理时间、网络传输时间以及数据库服务器处理时间。比如一个页面从点击/输入到完全加载的时间;完成一次增加、删除、修改或者查询动作的事务响应时间等。  一个请求在网络上的传输往往要经历多个网络节点才能到达目标服务器,我们假设请求经历了三个网络节点的传输时间B1、B2、B3,客户端的处理时间为A,服务器的响应时间为C。则一次请求的完整路径可以描述为下图:  客户端从发出请求到接收到服务器反馈的完整链路时间为A—>B1—>B2—>B3—>C(节点处理时间都包括接收和发送两个过程)。...
            0 0 765
            分享
          •   测试报告作为测试阶段产物之一,是很好的收(che)尾(pi)文档,如何写出一份有价值的测试报告是测试工程师需要掌握的能力。  为什么是有价值的?因为部分同学的测试报告仅罗列了测试计划、测试用例、缺陷数据,即使图文并茂,也会因为缺少分析和总结而成为无效报告。  试想,如果你是测试经理/业务负责人/开发负责人,你需要从测试报告中了解到哪些有意义的信息?  笔者根据日常经验,总结出了一份简易的测试报告,里面包含了基础的信息,下面我们详细说一下。  报告编号  可以基于时间、项目名称、版本等标识设置报告编号(以定义好的编号标准为准)。  测试时间  描述测试开始和结束时间。  测试依据  说明该版...
            0 0 881
            分享
          •   51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)。链接:http://vote.51testing.com/  传统企业转型产业互联网的路上,充满了艰难险阻。有很多传统企业好不容易设计出了平台业务模式、筛选出了合适的系统供应商,并进入了平台系统建设阶段,就觉得马上大功告成了,没想到却栽在了系统验收这最后一步。  系统能否上线,功能的实现是最基本的要求,此外还应该优化系统的美观性和易用性,当然这是对于系统更高的要求。然而很多系统的基本功能还无法顺畅地操作,这是因为在系统验收之前的环节没有把控...
            0 0 754
            分享
      • 51testing软件测试圈微信