微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在线模拟记录映射期间忽略请求中的某些元素

如何解决在线模拟记录映射期间忽略请求中的某些元素

我正在使用 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\": \"(.*)\"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。