如何在JsonPath过滤器中使用变量

时间:2019-08-26 22:01:09

标签: karate

我试图在空手道测试中的JsonPath过滤器表达式的RHS中使用一个变量,类似于:

* def name = 'A Name'
* def ids = $response[?(@.name == '#(name)')].id

如果我在表达式的RHS中使用文字字符串'A Name',它将按预期工作。

我尝试了多种方法来获取变量以进行评估: '<name>'"#(name)"

我怀疑是因为我在混合JsonPath解析和空手道解析?

1 个答案:

答案 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")