首页 > 解决方案 > 如何获得要在钩子上使用的响应

问题描述

我正在尝试制作一个简化版本的测试报告,其中我正在生成一个 HTML 文件报告,其中仅包含断言和错误响应消息(尝试不发布所有日志和步骤)。

我知道我们有空手道的钩子。但是,我在 github 中查找了空手道对象,但找不到任何可以从中提取响应的对象(要传递给挂钩上调用的 js 函数)

我现在正在做的是这样的:

配置

//karate-config.js
karate.configure('afterScenario', karate.call('classpath:hooks.js'));

挂钩

//hooks.js
//Looking on how to extract the response and log it here
function(){
    var info = karate.tags; 
    karate.log('Tags', info);
  }

我错过了空手道物品上的任何东西吗?或者这应该以另一种方式实现?

非常感谢!

标签: karate

解决方案


试试这个:

var response = karate.get('response');

编辑更好的例子:

Background:
* configure afterScenario = function(){ karate.log('***', karate.get("response.headers['X-Karate']")) }

Scenario:
Given url 'http://httpbin.org'
And path 'headers'
And header X-Karate = 'test'
When method get
# this will fail
Then status 400

我已经直接尝试过两者,karate.get('response')并且response两者都有效。如果您使用karate.call()传递response作为参数。


推荐阅读