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

时间:2018-11-22 09:05:43

标签: karate

我需要为多部分数据输入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”。由于这是多部分输入,因此我不了解如何替换其内容。

等待回应。 在此先感谢

1 个答案:

答案 0 :(得分:1)

编写Java实用程序以在上载之前修改文件linkedInOauth2RESTInput.json。您可以使用file:前缀而不是classpath:,因此建议您将临时文件保存到target文件夹中,然后可以执行以下操作:

Given multipart file properties = { read: 'file:target/linkedInOauth2RESTInput.json', filename: 'blob', contentType: 'application/json' }

但是我同意这很复杂,因此我对空手道进行了更改,以便您可以代替read来传递value

编辑:在这种情况下,这可能还取决于服务器:

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