Как сделать POST-запрос в каркасе каратэ, если тип контента - multipart / formdata? - PullRequest
1 голос
/ 13 июня 2019

Я пишу BDD (Behavior Driven Development Script) для моего приложения с использованием фреймворка каратэ. Я хочу сделать запрос POST с content-type = multipart / formdata. При выполнении запроса POST данные не передаются бэкэнд-приложению.

Создан файл JSON с данными в нем и вызов файла JSON в файле .feature.

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 голосов
/ 13 июня 2019

Нет. Пожалуйста, обратитесь к документации здесь: 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
...