高级 Mock

    请求 Mock 数据时,规则匹配优先级:高级 Mock 里的期望 > 自定义 Mock 脚本。

    如果匹配到了高级 Mock 里的期望,则不调用自定义 Mock 脚本

    配置项说明:

    截图

    1. 支持设置参数名和参数值之间的比较关系,包含:等于、小于、大于、存在、包含等

    2. 期望条件里的参数位置选择为body,则实际请求的 body 请求类型需要和该接口定义保持一致,如接口定义的 body 请求类型为form-data,则 mock 时该参数也需要放在form-data里。

    3. 期望条件 : json 类型的 body 支持使用JSON Path 匹配

      • 参数名以 $ 字符起始的,使用 JSON Path 来匹配
      • 参数名不是以 $ 字符起始的,直接匹配 JSON 第一级的属性名
    4. 返回数据:即接口请求返回的数据,支持 mock.jsNunjucks 语法,即可按一定的规则返回动态数据。如下是使用动态模板语法的例子:

      生成数据如下:

    自定义脚本方式可获取用户请求的参数,可修改返回内容。

    注意:此处脚本仅用于 高级mockMock 自定义脚本,不能用于前后置脚本中。

    1. 首先开启此功能
    2. 使用 JavaScript 脚本修改返回的 JSON 数据,如图

    截图

    设置分页数据

    • fox.mockRequest.headers 请求的 HTTP 头
    • fox.mockRequest.cookies 请求带的 Cookies
    • fox.mockRequest.getParam(key: string) 获取请求参数,包括 Path 参数、Body 参数、Query 参数。
    • fox.mockResponse.headers 响应的 HTTP 头
    • fox.mockResponse.code 系统自动生成的的 HTTP 状态码
    • fox.mockResponse.json() 系统自动生成的 JSON 格式响应数据
    • fox.mockResponse.setBody(body: any) 设置接口返回 Body,参数支持 JSON 或字符串
    • fox.mockResponse.setDelay(duration: number) 设置 Mock 响应延时,单位为毫秒

    关于如何深刻理解 高级 mock 的使用方法,可以看下列文章和视频

    Mock 功能全解析