Karate 如何在空手道中使用嵌入表达式进行多部分文件输入

Karate 如何在空手道中使用嵌入表达式进行多部分文件输入,karate,Karate,我需要替换多部分数据输入json文件的动态值'tenantID'。我需要找到一种方法来替换多部分输入json文件的值。以下代码显示了详细信息: * def tenantID = '2345'; * configure charset = null Given multipart file properties = { read: 'classpath:ic/feature/REST/TestData/linkedInOauth2RESTInput.json', filename: 'b

我需要替换多部分数据输入json文件的动态值'tenantID'。我需要找到一种方法来替换多部分输入json文件的值。以下代码显示了详细信息:

    * def tenantID = '2345'; 
* configure charset = null
Given multipart file properties = { read: 'classpath:ic/feature/REST/TestData/linkedInOauth2RESTInput.json', filename: 'blob', contentType: 'application/json' }
Given multipart file appIcon = { read: 'classpath:ic/feature/REST/TestDataGlobal_Weather.png', filename: 'Global_Weather.png', contentType: 'image/png' }


When method post
在上面的代码中,我需要替换'linkedInOauth2RESTInput.json'文件中的'tenantID'。由于这是多部分输入,我不理解如何替换它的内容

等待回应。
提前感谢

在上传之前,编写一个Java实用程序来修改文件
linkedInOauth2RESTInput.json
。您可以使用
文件:
前缀而不是
类路径:
,因此我建议您将临时文件保存到
目标
文件夹中,然后您可以执行以下操作:

Given multipart file properties = { read: 'file:target/linkedInOauth2RESTInput.json', filename: 'blob', contentType: 'application/json' }
但我同意这很复杂,所以我将改为空手道,这样你就可以传递一个
值,而不是
读取

编辑:在这种情况下,根据服务器的不同,这也可能起作用:

* def tenantID = '2345';
* def json = read('classpath:ic/feature/REST/TestData/linkedInOauth2RESTInput.json')
* multipart field properties = json

嗨,彼得,我现在已经相应地回答了这些问题。请解决这个问题。刚刚做了一个editHi Peter,我尝试了*multipart field properties=json这个选项。但它在我们的服务器上不起作用。唯一的办法是,正如你所建议的,我将尝试为它编写java实用程序。如果你在以后的空手道版本中提供这个功能,那就好了。@Anupama我已经做了修复。它将在0.9.0W中提供,太棒了!感谢您将在新版本中进行测试:)嗨,Peter,我尝试了0.9.0.RC5版本。看起来它不稳定,因为我现有的js文件正在无限运行。在0.9.0版本之后,我将进行测试。@Anupama如果您想确保能够使用0.9.0 final-请找出一种方法来复制此问题,并立即提交问题。没有其他人报告过类似的情况。