WireMock 简介

作者: 舌尖上的大胖 | 来源:发表于2019-06-10 05:53 被阅读0次

WireMock 官网 http://wiremock.org

一、开发过程中遇到的问题

在服务端与客户端约了定了接口,但还没有完成开发时,客户端的处理方式:

  • 在程序中写模拟数据
    • 程序中增加垃圾代码,后期还要删除,可能对代码造成影响
    • 模拟异步请求不方便
    • 服务端接口开发完成后,需要重新书写网络请求部分的代码
    • JS、iOS、Android 多前端需要分别模拟数据,重复工作量
  • 使用 Nginx、http-server 等 WebServer
    • 只支持 GET 请求
    • 无法针对请求进行校验或特定处理
  • 自己写简单的程序模拟返回数据
    • 开发期间 API 还处于频繁变动时期,持续调整成本较高

以上方法均不方便做单元测试

  • 对于需要演示的场景,没有后端业务服务器支撑,无法演示,客户端改造成本高

二、WireMock

​ 模拟 API,进行快速,强大和全面的测试。WireMock 是基于 HTTP 的 API 模拟器。 有些人可能会认为它是服务虚拟化工具或模拟服务器。

​ 当依赖的 API 不存在或不完整时,它可以使您保持高效。 它支持测试真实 API 无法可靠生成的边缘情况和故障模式。 而且因为速度快,它可以将构建时间从几小时减少到几分钟。

(一)运行

1、运行模式
  • 独立运行模式
  • Web 部署
2、下载及安装
  • Maven / Gradle
  • 独立运行的 Jar

详见 Download and Installation

3、运行

这里只说明独立运行方式

$ java -jar wiremock-standalone-2.21.0.jar

(二)配置及使用

支持的配置方式:

  • Java
  • 命令行
  • REST API
  • ==JSON API==
1、基本配置

这里只说 JSON 文件配置方式

两个文件夹:

  • mappings 存放配置文件
  • __files 存放相关的资源文件

JSON 配置:

{
    "request": {
        "method": "GET",
        "url": "/api/mytest"
    },
    "response": {
        "status": 200,
        "body": "More content\n"
    }
}

指定 Response 的 Header:

{
    "request": {
        "method": "GET",
        "url": "/whatever"
    },
    "response": {
        "status": 200,
        "headers": {
            "Content-Type": "text/plain",
            "Set-Cookie": ["session_id=91837492837", "split_test_group=B"],
            "Cache-Control": "no-cache"
        }
    }
}
2、通过文件指定 Response Body
{
    "request": {
        "method": "GET",
        "url": "/body-file"
    },
    "response": {
        "status": 200,
        "bodyFileName": "path/to/myfile.xml"
    }
}

注意:

  • bodyFileName 指定的文件路径==必须是相对路径==,即不能以 / 开头,默认以 __files 为相对路径的起始路径

  • 所有文件的编码必须为 ==UTF-8==

3、作为简单的文件服务器使用

所有放在 __files 中的文件,均可以通过以下方式直接访问,无需配置映射:

http://<host>:<port>/your/file/path
4、未映射请求的提供默认响应结果
{
  "priority":10,
  "request": {
    "method": "ANY",
    "urlPattern": ".*"
  },
  "response": {
    "status": 404,
    "jsonBody": {"status":"Error","message":"Endpoint not found"},
    "headers": {
      "Content-Type": "application/json"
    }
  }
}
5、Request 匹配
  • URL
  • HTTP Method
  • Query parameters
  • Headers
  • Basic authentication (a special case of header matching)
  • Cookies
  • Request body
  • Multipart/form-data

(完)

相关文章

  • WireMock 简介

    WireMock 官网 http://wiremock.org 一、开发过程中遇到的问题 在服务端与客户端约了定了...

  • Mock工具wiremock-py

    作者 | 咪咪 wiremock-py wiremock-py 是基于WireMock实现的, 使用Python批...

  • wiremock

    1.下载wiremock server http://repo1.maven.org/maven2/com/git...

  • WireMock实战-1

    一.简介 1.是什么WireMock是一个基于http api的模拟器。有些人可能认为它是服务虚拟化工具或模拟服务...

  • 初识Wiremock

    WireMock是一个HTTP模拟服务器,其核心是Web服务器,可以准备好为特定请求(存根)提供预设响应,并捕获传...

  • WireMock伪造Restful服务

    一、起因 现在开发步骤大部分都是前后端分离,前台在调试接口的时候,在后台接口真实数据没有开发完全的情况下,只能伪造...

  • WireMock快速生成接口

    WireMock的使用 前期对接口,但接口还未开发时使用。接口数据为虚拟的。 使用步骤 1.下载jar http:...

  • 3分钟搭建Wiremock

    3分钟搭建Wiremock 步骤一 下载一个Jar包:http://repo1.maven.org/maven2/...

  • 测试工具Wiremock介绍

    WireMock是一个开源的测试工具,支持HTTP响应存根、请求验证、代理/拦截、记录和回放。最直接的用法: 为W...

  • WireMock搭建模拟后台

    诞生场景 为了让前后端开发能并行,需要再后端还未开发完毕前,前端也能够通过模拟的响应进行开发。我们只需要有一个模拟...

网友评论

    本文标题:WireMock 简介

    本文链接:https://www.haomeiwen.com/subject/rstaxctx.html