命令行工具测试开发那些事儿

WireMock 简介

2019-06-10  本文已影响0人  舌尖上的大胖

WireMock 官网 http://wiremock.org

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

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

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

二、WireMock

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

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

(一)运行

1、运行模式
2、下载及安装

详见 Download and Installation

3、运行

这里只说明独立运行方式

$ java -jar wiremock-standalone-2.21.0.jar

(二)配置及使用

支持的配置方式:

1、基本配置

这里只说 JSON 文件配置方式

两个文件夹:

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"
    }
}

注意:

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 匹配

(完)

上一篇 下一篇

猜你喜欢

热点阅读