Невозможно проверить заголовки ответов из REST API с использованием Karate

#rest #testing #karate

#rest #тестирование #karate

Вопрос:

У меня есть простой REST API, который позволяет размещать ресурсы в заданной конечной точке, и я хочу проверить правильность установки заголовков ответов. Я определил следующую функцию, которая вставляет группу пользователей в базу данных:

   Scenario Outline: Creating a bunch of new users when the database is empty
    Given header Content-Type = 'application/json'
    And request __row
    When method post
    Then status 201
    * match header Content-Type == 'application/json'
    * match header Location == 'http://localhost:8080/users/' response.id

    Examples:
      | users |
 

Пользователи вставлены правильно, и в консоли я вижу следующие заголовки ответов:

 1 < 201
1 < Connection: keep-alive
1 < Content-Type: application/json
1 < Date: Mon, 22 Feb 2021 14:06:31 GMT
1 < Keep-Alive: timeout=60
1 < Location: http://localhost:8080/users/user1@test.com
1 < Transfer-Encoding: chunked
 

Но каждый раз, когда я пытаюсь запустить этот тест, я получаю один и тот же ответ:

 path: $['Content-Type'][0], actual: null, expected: 'application/json', reason: actual json-path does not exist
 

Комментарии:

1. не могли бы вы попробовать новую версию RC, где это должно работать лучше: github.com/intuit/karate/wiki/1.0-upgrade-guide

Ответ №1:

Работает для меня на 0.9.6

 * url 'https://httpbin.org/get'
* method get
* match header Content-Type == 'application/json'
 

Но, как я упоминал в своем комментарии, пожалуйста, попробуйте версию 1.0 / RC: https://github.com/intuit/karate/wiki/1.0-upgrade-guide

Поскольку мы сосредотачиваем усилия на этом.

Комментарии:

1. Спасибо! Я пробовал версию 0.9.6 (в Windows), но с версией 0.9.9.RC4 все работает правильно