我试图在空手道测试中的JsonPath过滤器表达式的RHS中使用一个变量,类似于:
* def name = 'A Name'
* def ids = $response[?(@.name == '#(name)')].id
如果我在表达式的RHS中使用文字字符串'A Name'
,它将按预期工作。
我尝试了多种方法来获取变量以进行评估:
'<name>'
,"#(name)"
等
我怀疑是因为我在混合JsonPath解析和空手道解析?
答案 0 :(得分:1)
请先阅读以下内容:https://github.com/intuit/karate#rules-for-embedded-expressions
您正在寻找的是:https://github.com/intuit/karate#jsonpath-filters
* def ids = karate.jsonPath(response, "$.kittens[?(@.name=='" + name + "')].id")