在 wiremock 记录映射期间忽略请求中的某些元素
Ignoring certain elements in request during wiremock record mappings
我正在使用 Wiremock 来记录映射。我正在使用 proxyBaseUrl,因此当映射不存在时,它会被路由到代理并记录请求和响应。在我的请求中,有一些我希望映射忽略的与时间戳相关的请求对象项。这样,当创建映射时,我已经有了 timestamp
通配符,如 \"timestamp\": \"${json-unit.any-string}\"
。我的测试创建了不同的时间戳,我希望 wiremock 在创建映射时忽略那些请求对象
当我 运行 测试时,创建了 100 多个映射并逐一检查它们并更新它们会很痛苦。所以我想提前训练记录映射来忽略某些请求对象。我该怎么做?
{
"priority": 1000000,
"request": {
"method": "POST",
"url": "/v1/computeserv/execution",
},
"response": {
"proxyBaseUrl": "https://actual.computeserv.com:12345"
}
}
您需要编写一个 StubMappingTransformer
来处理自动修改您保存的请求。您可以在 WireMock 上的 Transforming Generated Stubs 文档中阅读更多相关信息。
此外,许多现代 IDE 包含一些全局查找和替换功能,包括通过正则表达式进行搜索。如果您不希望经常记录和替换存根,您可能会更成功,只需 运行 记录,生成具有特定时间戳的存根,然后在您的文件中使用全局查找和替换功能IDE。例如,这里是 VSCode 的 Search and Replace.
的文档
取决于匹配您的 IDE 使用的正则表达式,但我想它会像
\"timestamp\": \"(.*)\"
我正在使用 Wiremock 来记录映射。我正在使用 proxyBaseUrl,因此当映射不存在时,它会被路由到代理并记录请求和响应。在我的请求中,有一些我希望映射忽略的与时间戳相关的请求对象项。这样,当创建映射时,我已经有了 timestamp
通配符,如 \"timestamp\": \"${json-unit.any-string}\"
。我的测试创建了不同的时间戳,我希望 wiremock 在创建映射时忽略那些请求对象
当我 运行 测试时,创建了 100 多个映射并逐一检查它们并更新它们会很痛苦。所以我想提前训练记录映射来忽略某些请求对象。我该怎么做?
{
"priority": 1000000,
"request": {
"method": "POST",
"url": "/v1/computeserv/execution",
},
"response": {
"proxyBaseUrl": "https://actual.computeserv.com:12345"
}
}
您需要编写一个 StubMappingTransformer
来处理自动修改您保存的请求。您可以在 WireMock 上的 Transforming Generated Stubs 文档中阅读更多相关信息。
此外,许多现代 IDE 包含一些全局查找和替换功能,包括通过正则表达式进行搜索。如果您不希望经常记录和替换存根,您可能会更成功,只需 运行 记录,生成具有特定时间戳的存根,然后在您的文件中使用全局查找和替换功能IDE。例如,这里是 VSCode 的 Search and Replace.
的文档取决于匹配您的 IDE 使用的正则表达式,但我想它会像
\"timestamp\": \"(.*)\"