我需要提取一个从“复杂”响应头解析的字段,并在测试后期使用该值。
似乎Karate中的“header”关键字设置为设置请求标头,而不是解析响应标头。
有没有办法添加自定义步骤定义来维护对场景变量存储的访问?看来变量存储在StepDefs
类中是私有的,似乎没有办法轻松扩展它。
答案 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)