如果内容类型为multipart / formdata,如何在空手道框架中发出POST请求?

时间:2019-06-13 03:57:28

标签: karate

我正在使用空手道框架为我的应用程序编写BDD(行为驱动的开发脚本)。我想用content-type = multipart / formdata发出POST请求。在发出POST请求时,数据不会传递到后端应用程序。

创建一个包含数据的JSON文件,然后在.feature文件中调用JSON文件。

file.json

{
"files[0].name": "file_1",
"files[0].type": "Audio",
"files[0].file": "classpath/folder/file.mp3",
"files[1].name": "file_2",
"files[1].type": "Video",
"files[1].file": "classpath/folder/file.3gp",
"location": "D:/files/"
}

Feature: POST call
  Background:
   # * url baseURI
  Scenario: Passing data in POST call
   Given url 'http://localhost:8080/request'
   And header Content-Type = 'multipart/formdata'
   And request read('classpath:folder/file.json')
   when method post
   Then status 200

期望要保存的数据,但是看不到数据传递到后端应用程序。这是传递multipart / formdata的正确方法吗?

1 个答案:

答案 0 :(得分:0)

不。请在此处参考文档:https://github.com/intuit/karate#multipart-file

我在下面做了很多假设,请参考文档和演示示例。

Given url 'http://localhost:8080/request'
And multipart file file_1 = { read: 'classpath:folder/file.mp3', filename: 'file.mp3', contentType: 'audio/mpeg' }
And multipart file file_2 = { read: 'classpath:folder/file.3gp', filename: 'file.3gp', contentType: 'video/mpeg' }
And multipart field location = 'D:/files/'
When method post
Then status 200