Опубликовать запрос с ошибкой 400 неверных запросов в каратэ с сообщением об ошибке Json Parse - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь опубликовать 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] "}]}

Пожалуйста, дайте мне знать, если кто-то может помочь мне в этом

1 Ответ

0 голосов
/ 08 мая 2019

Я проверил все обязательные параметры по сравнению с Почтальоном

Это очень бесполезное утверждение.Теперь относительно этой ошибки:

Невозможно десериализовать экземпляр foo из токена START_OBJECT;Вложенное исключение - com.fasterxml.jackson.databind.exc.MismatchedInputException

. Совершенно очевидно, что сервер выдал эту ошибку, и похоже, что каратэ отправило JSON правильно, но вы не предоставилизапрос, так что никто не может ответить с отсутствием предоставленной информации.

Похоже, что Карате обнаружил ошибку на вашем сервере - что является целым пунктом тестирования API:) Поэтому, пожалуйста, проверьте еще раз.

Если вы все еще считаете, что с каратэ есть какие-то проблемы, пожалуйста, следуйте этому процессу: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

...