Код состояния 400 означает, что вы допустили другую ошибку в запросе. Каратэ работает нормально, это всего лишь HTTP-клиент, возможно, запрос был не в «форме», которую ожидал сервер. Поговорите с командой на стороне сервера, если можете, или проверьте документацию по API.
Вот простой пример, который работает, вставьте его и попробуйте:
* def body = [{"name":"John","salary":"10000","age":"25"}, {"name":"Maria","salary":"20000","age":"27"}]
* url 'https://httpbin.org/post'
* request body
* method post
* status 200
РЕДАКТИРОВАТЬ: для цикла Пожалуйста, прочитайте документацию.
Приведенный ниже пример является лишь одним из способов сделать это - пожалуйста, определите, что вам лучше всего подходит: https://github.com/intuit/karate#data -driven-tests
Feature:
Background:
* def data = [{"name":"John","salary":"10000","age":"25"}, {"name":"Maria","salary":"20000","age":"27"}]
Scenario Outline:
* url 'https://httpbin.org/post'
* request __row
* method post
* status 200
Examples:
| data |