banner
Hi my new friend!

山河浪漫,
人间温暖。

Scroll down

1680748927319.jpg

1680748928348.jpg

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

(完)

原文链接:https://www.jianshu.com/p/c83e58850637

我很可爱,请给我钱

昵称
邮箱
0/200
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
0 条评论