Одной из наиболее полезных функций 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 на ранней стадии разработки.
Самостоятельная работа
- Проделайте все шаги из урока у себя на компьютере
- По аналогии напишите тесты для остальных эндпоинтов сущности пользователя. Позапускайте тесты по отдельности, а также для всей коллекции целиком
- Заставьте тесты "упасть" — умышленно внесите какую-нибудь ошибку в ожидаемые данные и изучите отчет об ошибке
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.