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

标签 karate

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

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

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

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

我怀疑这是因为我将 JsonPath 解析与 Karate 解析混合在一起了吗?

最佳答案

首先阅读: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")

关于karate - 如何在 JsonPath 过滤器中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665464/

相关文章:

karate - 如何在多个对象中断言 2 个键

unit-testing - 如何比较两种环境之间的 Karate 测试结果?

karate - 如何根据 Karate 中的过滤器从 jsonarray 中删除对象

karate - 如何在 Karate 中生成 auth 2.0 我在 Karate 演示项目中看到了一个示例,但在我们的例子中,我们需要将其发送为 "Authorization Code"

karate - 如何使用 power-shell 命令提示符运行 Karate 脚本

karate - 在 Karate 测试步骤中使用 if 条件的语法是什么?

karate - 702 毫秒后调用失败

Karate 框架重试,直到无法按预期工作

karate - 如何在 Karate 0.9.0 版本中将 CSV 文件上传为帖子请求?