将自定义步骤定义添加到Karate框架

时间:2017-09-07 18:40:45

标签: java cucumber karate

我需要提取一个从“复杂”响应头解析的字段,并在测试后期使用该值。

似乎Karate中的“header”关键字设置为设置请求标头,而不是解析响应标头。

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

1 个答案:

答案 0 :(得分:1)

您可以访问响应标头。请查看responseHeaders的文档。

尽管如此,match header的捷径最有可能是你想要的。

空手道的理念是你永远不需要编写自定义的步骤定义。

编辑:一些例子,听起来你只需要对Location标题进行一些字符串操作?您可以自由地将JS代码混合到Karate表达式中。

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