使用 wiremock 如何匹配 POST 主体中的 wiremock 服务器 URL?
With wiremock how can I match against the wiremock server URL in the body of a POST?
我将 Wiremock 与调用 OSISoft PI Web API 的客户端一起使用,并且我在将 POST 正文匹配到定义为 here 的请求时遇到了问题,与 Wiremock 一样POST 主体将有一个 URL 包含随机生成的端口。例如
{
"1": {
"Method": "POST",
"Resource": "http://localhost:24353/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements",
"Content": "{\"Name\":\"New Element\"}"
}
}
如何匹配 Resource 元素中的 URL,其中端口号将在测试运行之间更改?显然,我不能像处理响应那样对请求使用模板。
通过查看 request matching 上的文档,我发现使用带占位符的 equalToJson
或带正则表达式的 matchesJsonPath
可能是一种选择,但我不清楚确切的语法.还是我缺少更简单的选项?
来自wiremock-userGoogle组
If you don't need to match anything in particular for that element you could use a JSON placeholder e.g. "Resource": "${json-unit.any-string}".
If you do need to match the part after the port number then you can use the regex form e.g.: "Resource": "${json-unit.regex}.*/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements"}"
我将 Wiremock 与调用 OSISoft PI Web API 的客户端一起使用,并且我在将 POST 正文匹配到定义为 here 的请求时遇到了问题,与 Wiremock 一样POST 主体将有一个 URL 包含随机生成的端口。例如
{
"1": {
"Method": "POST",
"Resource": "http://localhost:24353/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements",
"Content": "{\"Name\":\"New Element\"}"
}
}
如何匹配 Resource 元素中的 URL,其中端口号将在测试运行之间更改?显然,我不能像处理响应那样对请求使用模板。
通过查看 request matching 上的文档,我发现使用带占位符的 equalToJson
或带正则表达式的 matchesJsonPath
可能是一种选择,但我不清楚确切的语法.还是我缺少更简单的选项?
来自wiremock-userGoogle组
If you don't need to match anything in particular for that element you could use a JSON placeholder e.g.
"Resource": "${json-unit.any-string}".
If you do need to match the part after the port number then you can use the regex form e.g.:
"Resource": "${json-unit.regex}.*/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements"}"