Я пытаюсь опубликовать json в теле запроса. До этого я читаю его, а затем обновляю несколько ключей, используя метод set в Framework Karate. Однако тест проходит, но в консоли я вижу, что он показывает 400 bad ошибка запроса
Я проверил все необходимые параметры по сравнению с почтальоном. Тот же запрос Post, настроенный в почтальоне, работает как положено.
Background:
* json foojson = read ('foo.json')
* set foojson.foo = 'foo1'
* set foojson.foo4[0].foo7 = 'fooo8'
Scenario:
Given url
And headers
And json foo1json = foojson
And request foo1json
And print request
When method post
Then status 200
Пожалуйста, найдите пример Json как показано ниже
{
"foo": "",
"fooA": "",
"fooB": "",
"fooFoo": [
{
"foo1": "foo A",
"foo2": "foo AA",
"foo3": "foo AAAA",
"foo4": {
"foo5": " ",
"foo6": "foo AAAA",
"foo7": "foo AAAA"
},
"foo8": "foo AAAA",
"foo9": 0,
"foo10": 0,
"foo11": [
]
}
],
"fooC": "foo AAAA",
"fooD": [
],
"fooE": ""
}
Фактически:
Сценарий здесь не удалось
scenarios: 1 | passed: 0 | failed: 1 | time: 2.2143
но трассировка показывает следующее:
DEBUG com.intuit.karate - response time in milliseconds: 2156.14
1 < 400
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Headers: Origin,Accept,X-Requested-With,Content-Type,Content-Disposition,Access-Control-Request-Method,Access-Control-Request-Headers,X-HTTP-Method-Override,
1 < Access-Control-Allow-Methods: POST, GET, HEAD, OPTIONS, PUT, PATCH, DELETE
1 < Access-Control-Max-Age: 3600
1 < Cache-Control: no-cache
1 < Connection: keep-alive
1 < Content-Security-Policy: child-src 'self'
1 < Content-Type: application/json;charset=UTF-8
Конкретная ошибка, как показано ниже:
{"timestamp": 1557310988561, "traceId": "", "path": "[POST]" ",
"ошибка": [{ "httpStatusCode": "BAD_REQUEST", "код": "BAD_REQUEST",
"message": "Ошибка синтаксического анализа JSON: Невозможно десериализовать экземпляр foo
из токена START_OBJECT; вложенным исключением является com.fasterxml.jackson.databind.exc.MismatchedInputException: Невозможно десериализовать экземпляр foo
из токена START_OBJECT \ n в [Источник: (PushbackInputStream); строка: 1, столбец: 1] "}]}
Пожалуйста, дайте мне знать, если кто-то может помочь мне в этом