空手道-从json文件读取数据并将其关联到动态生成的请求

问题描述

我有以下data.json文件

{
  "ids": {
    "id": "a2mx8m6yvksgu3605c7c1a61d"
  },"second": {
    "name": "test2"
  },"third": {
    "name": "test3"
  }
}

我确实从json中获取了ID的变量。

* def id = data.ids.id

我想将此变量ID(上面定义)用于请求。 下面定义的请求被动态发送到xml文件,即使用生成xml请求,但是当我尝试传递变量id时,以下内容不起作用。 但是,当我对id值进行硬编码时,此方法有效。

* def ARG = {attr:  [ { regex: '#(ids)',value: '<id>"#(id)"</id>'} ] }

请帮助我如何将从json读取的数据传递给上面的代码行。

解决方法

阅读文档:https://github.com/intuit/karate#rules-for-embedded-expressions

* def id = 'foo'
* def val = '<id>' + id + '</id>'
* def arg = { value: '#(val)' }
* match arg == { value: '<id>foo</id>' }