避免在Wiremock中记录特定请求



我在Scala 2.13项目中使用Wiremock 2.28.1,我想跳过在Wiremock中记录特定请求/响应,因为它们只是针对health/readyhealth/alive端点的活跃/就绪HTTP调用:

{
"mappings": [
{
"request": {
"method": "GET",
"url": "/api/v1/health/ready"
},
"response": {
"status": 200,
"body": "",
"headers": {
"Content-Type": "text/plain"
}
}
},
{
"request": {
"method": "GET",
"url": "/api/v1/health/alive"
},
"response": {
"status": 200,
"body": "",
"headers": {
"Content-Type": "text/plain"
}
}
}
]
}

WireMock服务器配置为:

new WireMockConfiguration()
.bindAddress(configOptions.host)
.port(configOptions.port)
.stubCorsEnabled(configOptions.enableCors)
.disableRequestJournal() // avoid JVM heap exhaustion for recorded requests
.usingFilesUnderClasspath(s"$confBasePath/${configOptions.mappingsFolder}")
.notifier(new ConsoleNotifier(configOptions.verboseNotifier))  // <-- TRUE
.httpsPort(...)

有没有办法告诉WireMock跳过记录/health/*API调用?

有几种方法可以做到这一点:

  1. 编写自己的Notifier实现,根据消息的内容过滤消息,并在启动选项中使用它来代替ConsoleNotifier

  2. 通过实现AdminApiExtension并将其注册到启动选项中,使healthcheck成为管理员API函数(这意味着URL必须位于/__admin/下。

相关内容

  • 没有找到相关文章

最新更新