【问题标题】:how to use embedded expressions for multipart file input in karate如何在空手道中使用嵌入式表达式进行多部分文件输入
【发布时间】:2018-11-22 17:51:04
【问题描述】:

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

等待响应。 提前致谢

【问题讨论】:

  • 嗨彼得,我现在已经对这些问题做出了相应的回应。请解决这个问题。
  • 刚刚进行了一次编辑

标签: karate


【解决方案1】:

在上传之前编写一个 Java 实用程序来修改文件 linkedInOauth2RESTInput.json。您可以使用file: 前缀代替classpath:,所以我建议您将临时文件保存到target 文件夹中,然后您可以这样做:

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

但我同意这很复杂,因此我正在对空手道进行更改,以便您可以通过 value 而不是 read

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

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

【讨论】:

  • 嗨彼得,我试过 * multipart field properties = json 这个选项。但它在我们的服务器中不起作用。唯一的方法是你建议我会尝试为它编写java实用程序。如果您在未来的空手道版本中提供此功能,那就太好了。
  • @Anupama 我已经修复了。它将在 0.9.0 中可用
  • 哇太棒了!谢谢你将在新版本中测试:)
  • 嗨彼得,我在 0.9.0.RC5 版本中尝试过。看起来它不稳定,因为我现有的 js 文件正在无限运行。 0.9.0 发布后我会测试。
  • @Anupama 如果你想确保你能够使用 0.9.0 final - 请想办法复制这个问题并立即提交问题。没有其他人报告过这样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
相关资源
最近更新 更多