如何从空手道呼叫中获取响应HTTP状态?获取响应状态为204,但karate.log(result.response)为空

时间:2018-12-28 17:28:22

标签: karate

我正在通过Karate API调用网络服务。执行该服务时,我将获得预期的HTTP状态204。但是,当我记录响应时,我空白了。

下面是我的网络服务调用,响应和日志输出

    result = karate.call('ExecuteWebService.feature', [urlToExecute]);
    karate.log("Response is " + result.response); #Expecting that code displays HTTP status here

我知道通话会得到正确的响应,因为我的日志显示在内容下方

    HH.mm.ss.mil [main] DEBUG com.intuit.karate - 
    1 < 204
    1 < Date: Fri, Rest of date portion
    1 < X-Application-Context: App Context Data

但是karate.log不显示状态码。我需要状态代码,以便可以根据期望值声明状态,从而通过/失败测试

    HH.mm.ss.mil [main] DEBUG com.intuit.karate - response time in milliseconds: 431
    HH.mm.ss.mil [main] INFO com.intuit.karate - [print] 
    HH.mm.ss.mil [main] INFO com.intuit.karate - Response is  

您能建议如何从karate.call结果中提取HTTP状态,以便我断言响应吗?

2 个答案:

答案 0 :(得分:4)

这应该有效,

* def status = result.responseStatus

相似,您还可以访问responseresponseTimeresponseHeadersresponseCookies

答案 1 :(得分:0)

204响应码表示:

  

服务器已成功满足请求,并且没有   在响应有效内容正文中发送的其他内容

所以,响应主体中没有任何东西是正常的。
就您而言,我将只验证状态码正确(根据应用程序规范)。