一键智能Mock,你值得拥有

简介: 大家好呀,我是一名苦逼的前端开发工程师,为啥苦逼呢,这不,项目下周就要上线了,但是后端还没给我接口,没有接口我就无法调试,工作停滞不前,我也只能坐着干着急。我报告给了我的老板山哥: 老板,这后端不靠谱啊,都快上线了,接口还没出来。山哥回道,别着急呀,这不有 Mock 吗?

 

大家好呀,我是一名苦逼的前端开发工程师,为啥苦逼呢,这不,项目下周就要上线了,但是后端还没给我接口,没有接口我就无法调试,工作停滞不前,我也只能坐着干着急。

我报告给了我的老板山哥: 老板,这后端不靠谱啊,都快上线了,接口还没出来

山哥回道,别着急呀,这不有 Mock 吗

**Mock,什么是 Mock 啊?**我一脸狐疑,问向山哥。

山哥慢条斯理说,就是前端自己启动一个 HTTP 服务,模拟后端接口的数据,这样就无需等待后端接口开发完成了,不会因为后端开发延误而阻塞你的工作进程了

嗯,真是个不错的注意,我仿佛发现了新大陆!以后再也不用受后端拖累了,心里暗暗开心,但转念一想不对啊,时间不够啊!

我又沮丧了下来,转头向山哥说道: Mock 好是好,但是时间不够了啊,我重新启动一个 Mock HTTP Server,也要花不少时间呀

山哥见我开了窍,又忙不迭地说: 咱们团队不是用的 Apifox 管理 API 吗,只需要点下按钮,就可以自动 Mock!

一键 Mock 数据,这么简单,那应该怎么使用 Apifox 自动 Mock 呢?

山哥接下来,缓缓道来。

使用 Apifox 智能 Mock

Apifox,API 文档、API 调试、API Mock、API 自动化测试集成于一体的强大工具,可以在 Apifox官网 直接下载,在 Windows、Linux、Mac 下都可以使用。

1.png

image.gif

下载成功后,可打开其中的示例项目,是一个关于宠物店的项目。打开宠物店的项目,可以在每个标签页看到四个标签: 文档、修改文档、运行、高级 Mock。

2.png

image.gif

我们先看下这个查询宠物详情的接口,其请求接口为 /pet/{petId},而响应数据为 codedatadata 是一个 Pet 的一个自定义数据类型。

3.png

image.gif

在数据模型选项卡中,可以看到 Pet 这个自定义数据类型,其中有两个字段为 idnamephotoUrls

4.png

image.gif

在我们的本地是肯定没有宠物店的这个项目和接口的,那我们现在就可以使用一键 Mock 服务,请求 Mock 出来的宠物店数据,非常方便!

切换环境为Mock服务,此时地址栏前缀为 http://127.0.0.1:4523/mock/533840,点击运行按钮发送请求,见证奇迹的时刻到了,数据正确返回!

5.png

image.gif

在项目中进行 Mock 时,使用 http://127.0.0.1:4523/mock/533840 代替后端的 API 前缀即可,特别好用是不是!

但这仅仅是 Apifox 强大的只能 Mock 下的冰山一角!

假设,我们有一个用户接口,它有一个字段 email 期待返回邮箱格式的数据,一个字段 phone 期待返回手机格式的数据,一个字段 avatar 期待返回一个头像,而这在 Apifox 下都可以零配置完成!

6.png

image.gif

这就是,Apifox 强大的智能 Mock 规则: 你需要做的仅仅是定义 API 接口文档中的响应数据,接下来一键 Mock 服务,全部只能工作都交给 Apifox 的智能 Mock 来完成

在 Apifox 内部,当接口响应的数据字段未配置 mock 规则时,系统会自动使用智能 Mock 规则来生成数据,以实现使用时零配置即可 mock 出非常人性化的数据。根据项目设置、功能设置、智能 Mock 设置即可打开默认配置。

7.png

image.gif

除此之外,Apifox 还可以根据高级设置,对字段进一步的限制,如

    1. 字符串长度限定,及正则限定
    2. 数字最大最小的限定
    3. 枚举类型

    8.png

    image.gif

    举一个示例,宠物售卖状态总共有三种:在售、待上架、已售。我们可以通过高级设置的枚举类型来完成,如下图所示:

    9.png

    image.gif

    10.png

    image.gif

    使用 Apifox 自定义 Mock

    在 Apifox 自动 Mock 非常方便,但我们需要自定义 Mock 功能,在上个接口中,宠物有一个字段是 name,表示宠物的名字,我们可不可以将宠物的名字仅仅定位为两个字符。

    我们在 Apifox 数据模型设置中找到该宠物的数据模型,并配置其 name 字段。

    11自定义.png

    image.gif

    @cword(3)Apifox 的 Mock 语法,完全兼容 Mock.js(数据占位符方式),并扩展了一些 Mock.js 没有的语法(如国内手机号 @phone)。

    12.png

    image.gif

    如现有 Mock 语法无法满足需求,建议使用 正则表达式 @regexp 来实现灵活的定制。正则表达式基本能满足各种特殊场景的需求。

    13.png

    image.gif

    而我们将宠物的名字限制为两个字符,即可使用: @cword(2) 替代。

    Apifox 的高级 Mock

    Apifox 的智能 Mock 与自定义 Mock 已经足够强大,但是他的功能远不止于此。我们尽管可以使用自定义 Mock 对数据进行每个字段更为精细的模拟,但远远无法满足复杂业务的多样性。

    以以上查询宠物详情的接口为例,难免有记录不存在的示例,此时接口响应为完全不同的数据类型。此时,我们可以使用 Apifox 的高级 Mock 用以模拟数据。

    14高级.png

    image.gif

    当我们查询宠物的 ID 为3时,返回不存在数据的相应格式,同时设置状态码为 404。

    15.png

    image.gif

    为了满足业务的多样性,我们还可以使用基于模板的高级 Mock 功能与 Apifox 的 Mock 语法相结合。这里使用了 Javascript 的 nunjucks 模板语法,可以生成你想生成的任意数据。

    16.png

    image.gif

    小结

    今天关于 Apifox 强大的 Mock 功能就介绍到了这里,除了这些功能外,它还有以下更强大的功能:

      1. 接口设计:Apifox 接口文档遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 规范的同时,提供了非常好用的 可视化文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。
      2. 数据模型:可复用的数据结构,定义接口 返回数据结构及 请求参数数据结构(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。
      3. 接口调试:Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击 保存为用例按钮,即可生成 接口用例,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。
      4. 接口用例:通常一个接口会有多种情况用例,比如 参数正确用例、 参数错误用例、 数据为空用例、 不同数据状态用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。
      5. 接口数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。
      6. 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
      7. 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:JMeter 有的功能基本都会有,并且要更好用。
      8. 快捷调试:类似 Postman 的接口调试方式,主要用途为临时调试一些 无需文档化的接口,无需提前定义接口即可快速调试。
      9. 代码生成:根据接口及数据数据模型定义,系统自动生成 接口请求代码、 前端业务代码及 后端业务代码。
      10. 团队协作:Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的 团队/项目/成员权限管理,满足各类企业的需求。

      你是不蠢蠢欲动也想下载尝试一下呢?

        相关文章
        |
        6月前
        |
        前端开发
        什么是 Mock 测试?掌握 Mock 测试的核心原理
        Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。
        |
        6月前
        |
        XML 前端开发 测试技术
        【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?
        在开发过程中,进度比较赶的情况下,前端人员当页面写完时,后台的接口还没写完,等要交付的时候后端才把接口给你,这个时候就很尴尬。 这个时候 Mock 就可以很好的解决这个问题,前端团队可以在 API 还没开发完成的情况下,借助 Mock API 实现预对接,加速开发进程。测试团队可以通过 Mock API 解决不必要的系统,完成集成测试。 Eolink Apikit 为前端工程师提供 API 文档管理,快速接口测试,以及 Mock API 创建与调用,及查看文档变更历史的能力。有助于前端工程师快速查看 API 文档详情与历史记录,快速生成和使用 Mock API 提前进行页面效果验证。
        32 0
        |
        4月前
        |
        JavaScript 数据安全/隐私保护
        |
        3月前
        阿萨学工具: Apifox 的自定义智能Mock功能
        阿萨学工具: Apifox 的自定义智能Mock功能
        |
        3月前
        阿萨学工具: Apifox 的智能Mock功能
        阿萨学工具: Apifox 的智能Mock功能
        |
        前端开发 JavaScript 测试技术
        【Eolink Apikit】Mock 解决方案
        在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能正常工作。并且界面之间存在着严重的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock 数据是很关键的。这样做会降低前端开发者的工作量,降低开发费用,提高开发效率。 以下是一些常见的 Mock 方法,我们可以根据具体的场景和条件来进行选择和配置。最关键的是要知道如何去做,并从中挑选出最适合自己的方式。
        232 0
        【Eolink Apikit】Mock 解决方案
        |
        数据可视化 前端开发 Java
        Mock工具介绍,为什么使用Mock?
        Mock工具介绍,为什么使用Mock?
        448 0
        |
        NoSQL JavaScript 前端开发
        部署自己的MOCK(一)
        本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
        部署自己的MOCK(一)
        部署自己的MOCK(二)
        本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
        |
        开发框架 JSON 前端开发
        接口自动化测试之Mock
          在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢?   我们需要测试,但是有些请求又需要修改一下参数,或者改变一下request实现的方式,比如修改状态码,产生的图片要进行替换,或者是替换执行文件等
        446 0