无法将 java 代码字符串变量重新用于空手道中的另一个请求

Unable to reuse the java code string variable to another request in Karate

我有一个从 java 代码返回的字符串变量,我想在 POST 请求中使用它,如下所示:

And request {data:'string',data2:'{data3:'6DW7926NC7KMQ',data4:'#(funReturnedStringVal)'}'                                                  
     }

问题是当我 运行 它得到无效数据时,因为 funReturnedStringVal 不保留我从 java 代码中得到的值。我可以打印 funReturnedStringVal 的值,但是当我在上面的另一个请求中使用它时,我得到了上面的响应,即变量没有替换为实际值。

我试过了,但还是不行,请大家帮忙。

请进行此更改:

And request { data: 'string', data2: { data3: '6DW7926NC7KMQ', data4: '#(funReturnedStringVal)' } }

您的错误是将 JSON 的某些部分放在了字符串引号内。那么空手道将不会处理嵌入的表达式。

@Ranjan - 我刚刚看到您关于重用 java 代码的 post,看来您解决了您的问题。但是,我正在检查您的 json 格式是否正确?我发现您的 JSON 结构不正确。能否请您检查附件并从您这边验证。也许这对其他人也有帮助,我相信任何遇到 JSON 问题的人都会使用在线提供的任何 json 验证工具来彻底验证 JSON 请求结构。