空手道:有没有办法在使用重试时禁用日志?
Posted
技术标签:
【中文标题】空手道:有没有办法在使用重试时禁用日志?【英文标题】:Karate: Is there a way to disable log when using retry? 【发布时间】:2021-12-22 18:44:26 【问题描述】:我正在使用空手道进行验证测试。
我对我的一个请求设置了重试,但有时重试次数超过 100 次,这会在每个请求上创建具有相同大负载的大型无用日志... 这让我的 CI 膨胀。
我想减少这个日志的数量,也许只为这个请求禁用日志?
我已经尝试过* configure report = false
,但这仅在 Cucumber html 报告中禁用。
我也想在 STDOUT 控制台中禁用。
所以也许在logback-test.xml
中设置了某种形式的日志级别操作?
谢谢。
【问题讨论】:
【参考方案1】:不,您不能禁用每个请求的日志,您可以通过将日志级别设置为 INFO
来关闭所有内容 - 但我想您不希望这样。 100 次重试对我来说听起来很不寻常。您可以通过功能请求来试试运气 - 但我可以告诉您,除非有人贡献代码,否则这将是低优先级。
如果这真的让您感到困扰,请编写一些自定义 Java 代码来执行此轮询 + HTTP 请求并从空手道调用它。
编辑:我想我有一个适合你的解决方案。您可以完全禁用出现在控制台上的空手道日志 - 同时仍然拥有对 logback-test.xml
进行此更改的 HTML 报告:
<root level="warn">
<!-- <appender-ref ref="STDOUT" /> -->
<appender-ref ref="FILE" />
</root>
所以只需注释掉控制台日志附加程序就可以了!
另请阅读:https://github.com/intuit/karate#report-verbosity
【讨论】:
我可以达到100多次重试,因为重试是每秒配置的,它是为了测试处理卫星图像的API,所以如果图像很大,图像的响应可能需要一段时间。编写一些 Java 代码可能很有用,但似乎有点矫枉过正......我已经按照您的建议测试了在logback-test.xml
中完全禁用 STDOUT
。好的,所以我认为这是最好的方法,我必须从 CI 中提取黄瓜报告。谢谢:)。
@RaphaelBahuau target/karate.log
文件将存在 - 所以您仍然拥有完整的日志
是的,我已经注意到了日志文件,但我喜欢在 CI 上实时观看日志,我发现只有在 stdout
中打印错误并在文件中完整登录 @ 987654329@(但我更喜欢使用 html 报告查看完整日志)。我忘了接受我的坏事!以上是关于空手道:有没有办法在使用重试时禁用日志?的主要内容,如果未能解决你的问题,请参考以下文章
Symfony Messenger:是不是可以在最后一次重试时不抛出异常?