跳至主要内容

WireMock 作为服务

·阅读 3 分钟

我们很高兴地宣布,我们现在为 WebdriverIO 提供了一个名为 wdio-wiremock-service 的新的模拟服务。

它能做什么?

此服务可帮助您在使用WebdriverIO运行测试时无缝运行 WireMock。它使用众所周知的Maven 存储库为您下载 WireMock jar 文件,然后自动安装、启动和停止。加入我们社区的Discord 支持服务器,随时了解最新信息,并获取帮助和支持。

您可以使用此服务执行一些操作

  • 自动运行WireMock 以及 WebdriverIO 测试运行器
  • 支持使用模拟和夹具文件
  • 使用各种策略匹配请求 URL、方法、标头 cookie 和主体。对 JSON 和 XML 提供一流的支持。
  • 使用所有可用的选项配置 WireMock

安装

npm install wdio-wiremock-service --save-dev

有关如何安装 WebdriverIO 的说明,请参见此处

配置

为了使用该服务,您需要将其添加到服务数组中

wdio.conf.js
exports.config
// ...
services: ['wiremock'],
// ...
};

还有许多其他可用于配置的选项,有关完整概述,请参见此处

创建模拟和夹具

该服务创建了一个目录(默认情况下为 ./mock),其中包含两个子目录(mappings__files)。它将使用 mappings 目录查找模拟文件,并使用 __files 目录查找夹具文件。

了解这一点后,创建夹具就像在 __files 目录中创建文件一样简单

./mock/__files/hello-world.json
Hello world

创建第一个模拟就像在 mappings 目录中创建文件一样简单

了解这一点后,创建夹具就像在 __files 目录中创建文件一样简单

./mock/mappings/my-test.json
{
"request": {
"method": "GET",
"url": "/api/mytest"
},
"response": {
"status": 200,
"bodyFileName": "hello-world.json"
}
}

编写测试

编写第一个测试非常简单

./test/specs/mytest.js
const fetch = require('node-fetch');
const assert = require('assert');

describe('My test', () => {
it('should assert the mock data', () => {
browser.call(async () => {
await fetch('https://127.0.0.1:8080/api/mytest')
.then((res) => res.text())
.then((body) => {
// assert that the request body returns the expected value
assert.equal(body, 'More content');
});
});
});
});

支持

加入我们社区的Discord 服务器,随时了解最新信息,并获取支持和解答问题。

期待在那里见到你!

欢迎!我如何提供帮助?

WebdriverIO AI Copilot