Karate 如何在JsonPath筛选器中使用变量

Karate 如何在JsonPath筛选器中使用变量,karate,Karate,我试图在空手道测试中使用JsonPath筛选器表达式的RHS中的一个变量,如下所示: * def name = 'A Name' * def ids = $response[?(@.name == '#(name)')].id 如果我在表达式的RHS中使用文本字符串'A Name',它将按预期工作 我尝试了各种方法来计算变量: ”,“#(名称)”等 我怀疑这是因为我把JsonPath解析和空手道解析混为一谈了吧?请先阅读以下内容: 你要找的是: 请先阅读以下内容: 你要找的是: 是的,我之前阅

我试图在空手道测试中使用JsonPath筛选器表达式的RHS中的一个变量,如下所示:

* def name = 'A Name'
* def ids = $response[?(@.name == '#(name)')].id
如果我在表达式的RHS中使用文本字符串
'A Name'
,它将按预期工作

我尝试了各种方法来计算变量:
“#(名称)”等

我怀疑这是因为我把JsonPath解析和空手道解析混为一谈了吧?

请先阅读以下内容:

你要找的是:

请先阅读以下内容:

你要找的是:


是的,我之前阅读了这两个文档,但是我错过了关键部分:-(:
#如果表达式是dynamic*def temp=karate.jsonPath(cat,“$.kittens[?(@.name==”+bob.name+“)]))
所以对于这个特定的例子,一个动态JsonPath表达式,空手道对象是必需的/推荐的方法?@kpschmidt是的,这是正确的。再看看
Karate.filter()
它可以在某些情况下更优雅地做同样的事情是的,我之前读过这两个文档,但我错过了关键的一方:-(:
#如果表达式是动态的,则使用空手道对象*def temp=karate.jsonPath(cat,“$.kittens[?(@.name=”“+bob.name+”))”)”
因此对于这个特定的情况,动态的jsonPath表达式,空手道对象是必需的/推荐的方法?@kpschmidt是的。这是正确的。另外请查看
karate.filter()
在某些情况下,它可以更优雅地完成同样的事情
* def ids = karate.jsonPath(response, "$.kittens[?(@.name=='" + name + "')].id")