Logging 如何仅在失败的REST API请求上记录所有详细信息(调试级别)?
每次执行功能测试后,如果使用Logging 如何仅在失败的REST API请求上记录所有详细信息(调试级别)?,logging,karate,Logging,Karate,每次执行功能测试后,如果使用logback test.xml中的以下行为所有请求设置了if,我会获得超过1GB的日志: <logger name="com.intuit.karate" level="DEBUG"/> <logger name="com.intuit.karate" level="INFO"/> 是否可以仅在失败的REST API请求上配置调试日志级别? 实现这一目标的正确方法是什么 更新: 由于下面的回答,我在logbacktest.xml中得到了I
logback test.xml
中的以下行为所有请求设置了if,我会获得超过1GB的日志:
<logger name="com.intuit.karate" level="DEBUG"/>
<logger name="com.intuit.karate" level="INFO"/>
是否可以仅在失败的REST API请求上配置调试日志级别?
实现这一目标的正确方法是什么
更新:
由于下面的回答,我在logbacktest.xml
中得到了INFO
级别:
<logger name="com.intuit.karate" level="DEBUG"/>
<logger name="com.intuit.karate" level="INFO"/>
更新2:发现由于代码重用(子调用)而存在一些限制。
在以下情况下,钩子不会记录详细信息:
Scenario: CRUD for a machine group.
When call read('this:create-machinegroup.feature')
Then call read('this:retrieve-machinegroup.feature@last-created')
And call read('this:update-machinegroup.feature')
And call read('this:delete-machinegroup.feature@single')
And call read('this:retrieve-machinegroup.feature@404')
如果
karate.info.errorMessage
不为空,则可以使用全局afterScenario()
hook来记录karate.prevRequest
和响应
@beloyar不,你实际上可以在karate config.js
中执行此操作,请阅读文档此方法的唯一限制是我的代码重用。。。如果我用参数调用子场景,那么这个钩子不会记录任何细节。。。看来,我必须重构我所有的代码重用。。。为了让这个钩子工作,破坏了测试的可读性,这是非常令人难过的。。。