Karate.prevRequest.body 给出空值
Karate.prevRequest.body is giving null value
嗨空手道社区希望你能帮助我解决这个问题,我正在尝试为我的测试用例提供一些证据,因为我工作的组织既不接受黄瓜也不接受空手道报告。
问题发生在我的 javaScript 函数使用空手道的 karate.prevRequest.body 功能时,这会带来一个空值,但我已经在功能级别尝试过并且工作完美,我真的不知道知道发生了什么,我希望有人知道我做错了什么。
这是我从功能和 javaScript.
获得的代码和响应
来自功能
* def requestBody = karate.prevRequest.body
* def requestString = new java.lang.String(requestBody, 'utf-8')
* print requestString
回应
11:09:15.800 [ForkJoinPool-1-worker-3] INFO com.intuit.karate - [print] {"enrollmentTimeStamp":"2021-03-26T11:09:14","customer":{"customer":"2021032611306","fullName":"Elizabeth Chase Olsen"}}
javaScript在相同的特征下
And configure afterScenario =
"""
function() {
if( karate.prevRequest != null){
var requestBody = new java.lang.String( karate.prevRequest.body , 'utf-8');
}
var requestMethod = karate.prevRequest.method;
var requestHeaders = karate.prevRequest.headers;
var request = requestMethod + "\n" +requestHeaders+ requestBody;
karate.log(requestBody);
var reportResults = Java.type('Features.reportResults').writeResultsToFilePretty(requestMethod, requestHeaders, requestBody, response, karate.info.scenarioName, karate.info.featureFileName);
}
"""
回复:
11:09:16.040 [ForkJoinPool-1-worker-3] ERROR com.intuit.karate - javascript function call failed: java.lang.NullPointerException
11:09:16.043 [ForkJoinPool-1-worker-3] ERROR com.intuit.karate - failed function body: function() {
if( karate.prevRequest != null){
var requestBody = new java.lang.String( karate.prevRequest.body , 'utf-8');
}
var requestMethod = karate.prevRequest.method;
var requestHeaders = karate.prevRequest.headers;
var request = requestMethod + "\n" +requestHeaders+ requestBody;
karate.log(requestBody);
var reportResults = Java.type('Features.reportResults').writeResultsToFilePretty(requestMethod, requestHeaders, requestBody, response, karate.info.scenarioName, karate.info.featureFileName);
}
11:09:16.044 [ForkJoinPool-1-worker-3] WARN com.intuit.karate - afterScenario hook failed: javascript function call failed: java.lang.NullPointerException
首先请切换到 1.0 - 这很可能已修复或工作得更好:https://github.com/intuit/karate/wiki/1.0-upgrade-guide
其次:如果您想要自定义报告并愿意深入研究 Java 代码,请参阅:
第三,也许这会给你你的组织所要求的“证据”,但同样,你应该愿意做一些自定义代码:https://twitter.com/KarateDSL/status/1338892932691070976
第四,对于高级用户来说,有一个叫做 RuntimeHook
的东西,所以如果您了解如何使用它 - 您可以获得空手道发出的每个 HTTP 请求的详细信息。
最后,如果 none 以上工作意味着你应该为空手道贡献一些代码:)
嗨空手道社区希望你能帮助我解决这个问题,我正在尝试为我的测试用例提供一些证据,因为我工作的组织既不接受黄瓜也不接受空手道报告。
问题发生在我的 javaScript 函数使用空手道的 karate.prevRequest.body 功能时,这会带来一个空值,但我已经在功能级别尝试过并且工作完美,我真的不知道知道发生了什么,我希望有人知道我做错了什么。
这是我从功能和 javaScript.
获得的代码和响应来自功能
* def requestBody = karate.prevRequest.body
* def requestString = new java.lang.String(requestBody, 'utf-8')
* print requestString
回应
11:09:15.800 [ForkJoinPool-1-worker-3] INFO com.intuit.karate - [print] {"enrollmentTimeStamp":"2021-03-26T11:09:14","customer":{"customer":"2021032611306","fullName":"Elizabeth Chase Olsen"}}
javaScript在相同的特征下
And configure afterScenario =
"""
function() {
if( karate.prevRequest != null){
var requestBody = new java.lang.String( karate.prevRequest.body , 'utf-8');
}
var requestMethod = karate.prevRequest.method;
var requestHeaders = karate.prevRequest.headers;
var request = requestMethod + "\n" +requestHeaders+ requestBody;
karate.log(requestBody);
var reportResults = Java.type('Features.reportResults').writeResultsToFilePretty(requestMethod, requestHeaders, requestBody, response, karate.info.scenarioName, karate.info.featureFileName);
}
"""
回复:
11:09:16.040 [ForkJoinPool-1-worker-3] ERROR com.intuit.karate - javascript function call failed: java.lang.NullPointerException
11:09:16.043 [ForkJoinPool-1-worker-3] ERROR com.intuit.karate - failed function body: function() {
if( karate.prevRequest != null){
var requestBody = new java.lang.String( karate.prevRequest.body , 'utf-8');
}
var requestMethod = karate.prevRequest.method;
var requestHeaders = karate.prevRequest.headers;
var request = requestMethod + "\n" +requestHeaders+ requestBody;
karate.log(requestBody);
var reportResults = Java.type('Features.reportResults').writeResultsToFilePretty(requestMethod, requestHeaders, requestBody, response, karate.info.scenarioName, karate.info.featureFileName);
}
11:09:16.044 [ForkJoinPool-1-worker-3] WARN com.intuit.karate - afterScenario hook failed: javascript function call failed: java.lang.NullPointerException
首先请切换到 1.0 - 这很可能已修复或工作得更好:https://github.com/intuit/karate/wiki/1.0-upgrade-guide
其次:如果您想要自定义报告并愿意深入研究 Java 代码,请参阅:
第三,也许这会给你你的组织所要求的“证据”,但同样,你应该愿意做一些自定义代码:https://twitter.com/KarateDSL/status/1338892932691070976
第四,对于高级用户来说,有一个叫做 RuntimeHook
的东西,所以如果您了解如何使用它 - 您可以获得空手道发出的每个 HTTP 请求的详细信息。
最后,如果 none 以上工作意味着你应该为空手道贡献一些代码:)