1

我将 Wiremock 与调用 OSISoft PI Web API 的客户端一起使用,并且在将 POST 正文与此处定义的请求匹配时遇到问题,因为使用 Wiremock POST 正文将具有包含随机生成的端口的 URL。例如

{
  "1": {
    "Method": "POST",
    "Resource": "http://localhost:24353/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements",
    "Content": "{\"Name\":\"New Element\"}"
  }
}

如何匹配 Resource 元素中的 URL,其中端口号将在测试运行之间更改?显然,我不能像使用响应那样对请求使用模板。

通过查看有关请求匹配的文档,我发现使用equalToJson占位符或matchesJsonPath正则表达式可能是一种选择,但我不清楚确切的语法。还是我缺少一个更简单的选择?

4

1 回答 1

0

来自wiremock-user Google Group

如果您不需要特别为该元素匹配任何内容,则可以使用 JSON 占位符,例如"Resource": "${json-unit.any-string}".

如果您确实需要匹配端口号之后的部分,那么您可以使用正则表达式形式,例如:"Resource": "${json-unit.regex}.*/piwebapi/assetdatabases/D0NxzXSxtlKkGzAaZhKOB-KABJ2buwfWrkye3YhdL2FOUAUEhMQUZTMDRcQgYUUEVSRk9STUFOQ0UgVEVTVElORw/elements"}"

于 2021-09-02T19:54:27.873 回答