karate - 如何获得要在钩子上使用的响应
问题描述
我正在尝试制作一个简化版本的测试报告,其中我正在生成一个 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);
}
我错过了空手道物品上的任何东西吗?或者这应该以另一种方式实现?
非常感谢!
解决方案
试试这个:
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
作为参数。
推荐阅读
- reactjs - 下拉onchange时的formik表单验证问题
- sql - 使用 SQL 清理数据 - 获取列差异
- soql - 用于测试的特定值的 SOQL 过滤器(涉及子查询)
- java - 通过 Firebase 对 Android 进行 GitHub 身份验证
- python - 如何切换 Python Tkinter GUI 摄像头源?
- go - 在 Go 中分配切片与重新声明切片
- machine-learning - 如何使用具有 dkb 值的集群算法?
- java - 如何从 MacOS 中删除 Java Web Start
- xmlhttprequest - 在 VB 代码中通过 ADODB 流下载文件时出错
- pytest - 如何从另一个夹具参数化夹具?