跳至主要內容

WireMock 作為服務

·閱讀時間 3 分鐘

我們很高興宣佈,我們現在為 WebdriverIO 提供一個新的模擬服務,稱為 wdio-wiremock-service

它能做什麼?

此服務可協助您在使用 WebdriverIO 執行測試時,無縫執行 WireMock。它使用著名的 Maven 儲存庫來為您下載 WireMock jar,然後自動安裝、啟動和停止。若要保持最新資訊,請加入我們的社群,前往我們的社群 Discord 支援伺服器以取得協助和支援。

您可以使用此服務執行的一些操作

  • 與 WebdriverIO 測試執行器一起自動執行 WireMock
  • 支援使用模擬和固定裝置檔案
  • 使用各種策略來比對請求 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