Многие из нас используют Почтальон как простой инструмент или программу, которая помогает нам… тестировать запросы. Я думаю, что это было бы первое резкое описание, которое приходит на ум. Кто-то дает нам URL-адрес, сообщает нам метод, параметры и любые другие детали, и таким образом мы проверяем, является ли результат тем, что мы ожидали, или нет. Этот тип сценария очень распространен, например, при разработке API службы. Но если бы это было предназначено только для этого, Postman был бы не чем иным, как причудливой командой curl.

Конечно, Postman — гораздо более совершенный инструмент с десятками функций для создания запросов, управления и совместного использования коллекций, синхронизации учетных записей и т. д. Среди этих возможностей — основная тема этого поста: использование Postman в качестве решения проблемы создание и выполнение интеграционных тестов в нашем сервисном приложении. С помощью этого псевдоописательного заголовка я попытаюсь показать вам основные шаги, которые позволят вам попробовать это.

Тесты Postman написаны на Javascript и позволяют вам убедиться, что ваш API работает правильно, и каждая из служб правильно обрабатывает параметры, возвращая ожидаемые результаты, идеально имитируя работу клиента-потребителя вашего приложения. Важно отметить, что интеграционные (или сквозные) тесты в Postman являются дополнением к модульным тестам вашего приложения, поэтому я рекомендую вам работать с обеими частями при разработке API службы. Итак, без лишних слов, давайте применим это на практике.

Мы будем использовать общедоступный API http://api.icndb.com для создания наших тестов. Здесь вы можете получить подробную информацию о доступных услугах. Первым делом нужно будет создать новую коллекцию в Postman и добавить переменную с основным URL-адресом. В конце статьи вы можете скачать коллекцию Postman, чтобы протестировать ее самостоятельно:

Теперь пришло время добавить в коллекцию новый запрос, который получает ресурс /jokes /random. В результате получится примерно следующее изображение.

Среди верхних вкладок вы можете найти Тесты, в которых можно создавать тесты с использованием Javascript и где вы можете определять утверждения для результатов и, таким образом, подтверждать, что ваш API работает правильно. Тесты Postman могут использовать синтаксис Chai Assertion Library BDD. Здесь вы найдете официальные примеры

Следуя нашему варианту использования, мы создадим тесты, которые проверят следующие аспекты:

- Status code is 200
- Body.type = 'success'
- Body.value is an object containing
   - id is a number
   - joke is an string

На изображении ниже показаны 2 тестовых случая, первый из которых проверяет код состояния, а второй делает утверждение о свойствах тела ответа.

Если мы проверим запрос еще раз, используя «Отправить», мы увидим, что тесты были выполнены автоматически, а результаты отображаются на вкладке «Результаты тестирования», что подтверждает, что наш API работает правильно на этой конечной точке. Точно так же, если одно из утверждений не совпадает (мы изменим expect from id на строку), мы увидим ошибку в результатах.

Эти простые примеры являются основой тестирования в Postman, и, следуя этому подходу, мы сможем получить гораздо более надежное покрытие нашего API. Но что делать, если нашему API нужны параметры, которых мы не знаем, например получение id для получения деталей простого объекта. Для этого мы будем «цеплять» наши запросы, используя переменные в тестах. Прежде чем закончить, давайте посмотрим на этот пример, в котором мы хотим получить детали конкретной шутки по ее идентификатору после получения их списка.

Как видите, мы добавляем новую строку, которая сохраняет jokeId в переменной-коллекции (вы также можете сохранить ее как глобальную переменную). Затем создаем новый запрос на получение шутки по ее id, реализуя соответствующие тесты.

Здесь вы можете скачать тестовую коллекцию, чтобы самостоятельно запустить эти варианты использования.

Спасибо за чтение!