Возникла проблема при отправке вложенного JSON в качестве запроса на проверку метода POST REST API с использованием инфраструктуры Karate

Обратите внимание, что я пытаюсь отправить приведенный ниже запрос и проверить ответ методом POST, используя URL-адрес

http://uat-ws.*.uk.***.ws/index.php/*/****/validatevoucher

как показано ниже: здесь я использую фреймворк Karate для автоматизации REST API.

Scenario: validate voucher

Given url 'http://-..uk../v3//******' 
And header Content-Type = 'application/json' 
And request {json request here}
When method post
Then status 200 



12:17:30.510 [main] DEBUG com.intuit.karate.StepDefs - response time in milliseconds: 579 12:17:30.528 [main] ERROR com.intuit.karate.StepDefs - FAILED, status code was 400, expected 200

[31mFailed scenarios:[0m [31mexamples/users/WSS.feature:3 [0m# Scenario: validate voucher

1 Scenarios ([31m1 failed[0m) 5 Steps ([31m1 failed[0m, [32m4 passed[0m) 0m3.516s

com.intuit.karate.KarateException: status code was 400, expected 200 at com.intuit.karate.StepDefs.handleFailure(StepDefs.java:516) at com.intuit.karate.StepDefs.status(StepDefs.java:447) at ✽.Then status 200(examples/users/WSS.feature:9)

person Ranjan Gupta    schedule 30.06.2017    source источник


Ответы (1)


Из ошибки довольно ясно, что запрос попадает на сервер, но сервер отвечает 400. Тест Karate работает нормально, но похоже, что сервер ожидал какой-то другой JSON или тип содержимого.

Я предлагаю воспользоваться помощью кого-нибудь, кто может посмотреть журналы сервера и выяснить, почему сервер выдает 400.

Изменить: перечитав свой вопрос, я предполагаю, что вы пытаетесь сформировать вложенный JSON. Да, JSON, который вы пытались использовать в скрипте, неверен. Вы можете попробовать это. Поскольку вы скрыли большую часть фактического запроса, очень трудно увидеть проблему. Пожалуйста, ознакомьтесь с JSON и как создать вложенный JSON, как в примере ниже.

And request
"""
{ 
  memberId: '******', 
  memberIpAddress: '******', 
  voucherData: { 
    blabla: { 
      voucherNo: '*****', 
      voucherValue: '***', 
      voucherIssueDate': '', 
      voucherExpiryDate: '******' 
    } 
  } 
}
"""
person Peter Thomas    schedule 30.06.2017