Зарегистрируйтесь, чтобы продолжить обучение

Тесты Тестирование API c Postman

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

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

В этом уроке мы рассмотрим, как писать тесты в Postman и как они работают. Мы узнаем, как проверять статус ответа, его заголовки и тело. По окончании урока вы будете уметь тестировать свои API с помощью Postman и гарантировать их стабильность и надежность.

Написание простого теста в одном запросе

Базовой единицей тестирования в Postman является запрос. Каждый запрос тестирует определенную часть функциональности, вызывая конечную точку API и проверяя ответ. Вы можете проверять различные данные в ответе: статус, тело, заголовки, куки

Чтобы написать тест, откройте запрос, к которому вы хотите написать тест, перейдите на вкладку Scripts и внутри нее откройте вкладку Post-response. Перед вами откроется редактор кода, в котором вы можете писать тестовые скрипты. Среда выполнения в Postman построена на основе Node.js, поэтому тестовые скрипты пишутся на языке JavaScript

Редактор кода

Не расстраивайтесь, если вы плохо знакомы с JavaScript. Боковая панель в редакторе содержит тестовые сниппеты практически на все случаи жизни. Вы можете выбрать из списка один или несколько подходящих сниппетов и уже предварительно написанный блок кода будет вставлен в редактор. Вам останется только подредактировать его под свои условия

Панель сниппетов

Напишем наш первый тест, который проверит статус код ответа. Запишите в редактор код ниже и нажмите Save, чтобы сохранить изменения в запросе:

pm.test('Status code is 200', () => {
  pm.expect(pm.response.code).to.equal(200)
})

Код теста

Посмотрим подробнее, что здесь происходит

При помощи функции pm.test() определяется тест. Первый параметр функции — это строка, которая появляется в результатах теста. Она используется, чтобы идентифицировать ваши тесты и сообщить цель теста всем, кто просматривает результаты

Второй параметр — функция, которая возвращает логическое значение и определяет, прошел тест или нет. Внутри этой функции используются матчеры, которые являются ключевой частью теста. Именно они проверяют функциональность

pm.expect(pm.response.code).to.equal(200)

Матчер начинается с функции pm.expect(data), в которую передаются данные на проверку. Затем expect() возвращает специальный объект, у которого уже можно вызывать различные методы для проверки

Здесь pm.response — это объект, который позволяет получить доступ к данным ответа

Postman содержит большое количество матчеров для проверки различных ситуаций. С полным списком можно ознакомиться в документации. Рассмотрим наиболее часто используемые ситуации.

Предположим, мы хотим проверить структуру данных в ответе. Это можно сделать при помощи матчера to.have.property()

pm.test('Response body has expected structure', () => {
  var jsonData = pm.response.json()
  pm.expect(jsonData).to.have.property('id')
  pm.expect(jsonData).to.have.property('email')
  pm.expect(jsonData).to.have.property('firstName')
  pm.expect(jsonData).to.have.property('lastName')
})

Проверка, что данные в теле ответа соответствуют конкретным значениям:

pm.test('Response body has expected data', () => {
  var jsonData = pm.response.json()
  pm.expect(jsonData.firstName).to.eql('Rossie')
})

Проверка заголовков ответа:

pm.test('Response body has expected data', () => {
  pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json')
})

Запуск тестов

После того как тесты написаны, их можно запускать

Запуск одиночного теста

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

Чтобы вручную запустить один тест, сделайте следующее:

  • Выберите Collections на боковой панели и откройте запрос с тестом, который вы хотите запустить.
  • Настройте запрос, если это необходимо, и нажмите кнопку Send
  • В поле с результатами ответа откройте вкладку Test Results, чтобы просмотреть результаты теста

    Результат одиночного теста

Запуск набора тестов

Если наши запросы организованы в коллекции, мы можем запустить тесты сразу для всех запросов из коллекции в выбранном порядке. Postman позволяет сделать это с помощью "Collection Runner":

  • В левом меню выберите Collections и найдите коллекцию, содержащую ваши запросы.
  • Нажмите на иконку Runner в правом верхнем углу

    Запуск коллекции

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

    Параметры запуска коллекции

  • Нажмите Run для выполнения всех запросов в коллекции. Результаты тестов будут отображены в режиме реального времени.

    Результаты запуска коллекции

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


Самостоятельная работа

  1. Проделайте все шаги из урока у себя на компьютере
  2. По аналогии напишите тесты для остальных эндпоинтов сущности пользователя. Позапускайте тесты по отдельности, а также для всей коллекции целиком
  3. Заставьте тесты "упасть" — умышленно внесите какую-нибудь ошибку в ожидаемые данные и изучите отчет об ошибке

Дополнительные материалы

  1. Тестирование в Postman
  2. Написание скриптов

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff