将自定义步骤定义添加到空手道框架

Adding custom step definitions to Karate framework

我需要从 "complex" 响应 header 中提取一个字段并在稍后的测试中使用该值。

空手道中的"header"关键字似乎是设置请求headers,而不是解析响应headers。

有没有办法添加自定义步骤定义来维护对场景变量存储的访问?变量存储在 StepDefs class 中似乎是私有的,而且似乎没有办法轻松扩展它。

您可以访问 header 的回复。请查看 responseHeaders.

的文档

也就是说,match header short-cut 很可能就是您要查找的内容。

空手道的哲学是你永远不需要编写自定义 step-definitions。

编辑:一些示例,听起来您只需要对 Location header 进行一些字符串操作?空手道表达式可以随意混入JS代码

* def location = responseHeaders['Location'][0]
# assume location = 'foo?bar=baz'
* def bar = location.substring(location.indexOf('bar=') + 4)