В Postman можно использовать скрипты (post-response scripts) для запуска JavaScript после запуска запроса. Добавив код во вкладке “Scripts” > “Post-response” для запроса, коллекции или папки, можно создавать и проверять тесты API. Эти скрипты также полезны для отладки тестов.
Важно отметить, что вкладка “Tests” была переименована в “Post-response”. Если вы раньше использовали вкладку “Tests” в HTTP-коллекции или запросе, Postman автоматически перенаправит вас на вкладку “Post-response”. В будущем вкладка “Tests” больше не будет доступна, и все тесты нужно будет писать в новой вкладке “Post-response”.
Содержание
- Тестирование в Postman
- Добавление скриптов
- Валидация ответов
- Форматирование сообщений о результатах тестов
- Тестирование коллекций и папок
- Создание тестов с помощью Postbot
- Добавление документации к скриптам
- Отладка тестов
- Следующие шаги
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Тестирование в Postman
Наиболее распространённые подходы к тестированию API включают контрактное, модульное, сквозное (end-to-end) и нагрузочное тестирование. Эти тесты помогают убедиться, что ваш API работает корректно, интеграции между сервисами надёжны, а изменения не нарушили существующую функциональность.
В Postman вы можете писать тесты для ваших API-запросов на языке JavaScript во вкладке “Post-response”. Этот код также можно использовать для отладки, если в вашем API-проекте возникнут проблемы. Например, можно написать тест для проверки того, как API обрабатывает ошибки, отправив запрос с некорректными данными или неправильными параметрами.
Вкладки “Pre-request” и “Post-response” используют Postman Sandbox — среду выполнения на базе Node.js, которая позволяет добавлять динамическое поведение к запросам и коллекциям. Это даёт вам гибкость в тестировании и взаимодействии с API.
- Вкладка “Scripts” > “Pre-request” позволяет выполнять любую предварительную обработку перед отправкой запроса, например, устанавливать значения переменных. Любой код здесь выполняется до отправки запроса.
- Вкладка “Scripts” > “Post-response” предназначена для любой пост-обработки после отправки запроса и позволяет писать тесты для оценки данных ответа. Вкладка “Post-response” имеет встроенную библиотеку Chai.js, поэтому вы можете использовать синтаксис BDD-разработки из Chai для создания читаемых утверждений.
Откройте боковую панель рядом с редактором кода, чтобы увидеть список доступных тестов. Вы можете выбрать один или несколько фрагментов и вставить их в ваши тесты. Эти заранее подготовленные блоки кода могут помочь вам извлекать данные из переменных, использовать шаблоны для тестов или выполнять часто встречающиеся утилитарные функции. Также можно попросить AI-помощника Postbot написать тесты за вас.
Если вы не знаете, с чего начать тестирование, в Postman есть шаблоны, которые помогут протестировать различные аспекты вашего API, включая качество, функциональность и производительность.
Примечание редакции: вас также может заинтересовать наш Большой учебник по Postman.
Добавление скриптов
Вы можете добавлять тесты к запросам, коллекциям и папкам в Postman. В Postman есть различные фрагменты кода, которые можно использовать для добавления и настройки тестов по своему усмотрению.
Чтобы добавить тест, откройте запрос, коллекцию или папку, затем введите код во вкладке “Scripts” > “Post-response”. Вы можете написать собственный JavaScript-код или открыть боковую панель рядом с редактором кода, чтобы выбрать подходящий шаблон для теста.
Скрипты позволяют использовать динамические переменные, выполнять проверки (assertions) на данных ответа и передавать данные между запросами. Тесты выполняются после завершения запроса и получения ответа от API, а результаты тестов отображаются во вкладке “Test Results” в разделе ответа.
Ваши скрипты могут содержать любое количество тестов, и они сохраняются вместе с запросом при нажатии на значок “Сохранить” (Save). Если вы поделитесь коллекцией, опубликуете документацию или используете кнопку “Запустить в Postman” (Run in Postman), ваш код будет доступен всем, кто просматривает или импортирует вашу коллекцию.
Если вы хотите понять, как работать с базовым синтаксисом тестов в Postman, можете воспользоваться шаблоном “Основы тестирования API” (API testing basics) в коллекции для тестирования API-запросов.
Добавление теста к gRPC-запросу
Вы можете добавлять тесты к gRPC-запросу перед его выполнением (Before invoke) или после получения ответа (After response). Оба варианта доступны для всех gRPC-запросов независимо от типа метода (однонаправленный, клиентский стриминг, серверный стриминг или двунаправленный стриминг).
Чтобы добавить тест к gRPC-запросу, выполните следующее:
- Перейдите на вкладку “Scripts” в вашем gRPC-запросе.
- Выберите этап выполнения (Before invoke или After response), к которому хотите добавить тест.
- Используйте шаблоны из правой панели для добавления теста или напишите свои собственные утверждения (assertions).
Тесты выполняются, когда вы выбираете “Invoke”, либо до, либо после выполнения запроса. Если вы выберете “Отмена” (Cancel), выполнение запроса и любых дальнейших скриптов остановится.
Если в скрипте “Before invoke” есть ошибки, выполнение запроса также будет остановлено.
Валидация ответов
Для проверки данных, которые возвращаются в ответе на запрос, можно использовать объект pm.response
. Сначала создайте тесты с помощью функции pm.test
, задав для них название и функцию, возвращающую булево значение (true или false). Это позволит определить, успешно ли выполнен тест. При написании теста используйте BDD-синтаксис библиотеки Chai.js и pm.expect
для проверки деталей ответа.
Первым параметром в функции .test
укажите текст, который будет отображаться в результатах теста. Это поможет идентифицировать каждый тест и объяснить его цель тем, кто просматривает результаты. Например, введите следующий код во вкладке “Post-response” запроса, чтобы проверить статус-код ответа (должно быть 200):
pm.test("Статусный тест", function () { pm.response.to.have.status(200); });
Нажмите “Send” (Отправить), чтобы выполнить запрос, а затем перейдите на вкладку “Test Results” (Результаты тестов) в ответе. В заголовке этой вкладки будет показано, сколько тестов прошло и сколько было выполнено всего. Также вы увидите количество успешных, пропущенных и неудачных тестов.
Если запрос возвращает статус-код 200, то тест считается пройденным. Чтобы увидеть, как сработает тест при другом статус-коде, попробуйте изменить ожидаемый статус-код в тестовом скрипте и снова запустите запрос. Такой подход поможет вам лучше понять реакцию системы на различные ответы.
Форматирование сообщений о результатах тестов
Синтаксис pm.expect
позволяет настраивать вывод сообщений о результатах тестов так, как вам удобно. Экспериментируйте с различными опциями, чтобы получить наиболее информативные и удобные сообщения.
Создайте копию (форк) коллекции “Intro to writing tests” (Введение в написание тестов), чтобы импортировать в Postman готовые шаблоны и примеры кода. Это поможет вам опробовать скрипты на практике и быстрее освоить написание тестов. Ваш код может тестировать окружение запроса, как в следующем примере:
pm.test("окружение должно быть production", function () { pm.expect(pm.environment.get("env")).to.equal("production"); });
Вы можете использовать различные варианты синтаксиса для написания тестов так, чтобы они были читаемыми и соответствовали логике вашего приложения и тестирования. Например:
pm.test("ответ должен быть приемлемым для обработки", function () { pm.response.to.not.be.error; pm.response.to.have.jsonBody(""); pm.response.to.not.have.jsonBody("error"); });
Ваши тесты могут проверять ответы запросов с использованием синтаксиса, адаптированного к формату данных ответа. Например:
pm.test("ответ должен быть действительным и содержать тело", function () { pm.response.to.be.ok; pm.response.to.be.withBody; pm.response.to.be.json; });
Тестирование коллекций и папок
Вы можете добавлять скрипты к коллекции, папке или отдельному запросу в коллекции. Скрипт, связанный с коллекцией, будет выполняться после каждого запроса в коллекции. Скрипт, связанный с папкой, будет выполняться после каждого запроса, являющегося прямым дочерним элементом папки. Это позволяет повторно использовать часто выполняемые тесты после запросов. Порядок выполнения для каждого запроса будет следующим: сначала выполняются тесты коллекции, затем тесты папки и затем тесты запроса.
Вы также можете хранить скрипты в библиотеке (Package Library). Это позволяет содержать часто используемые скрипты и тесты в одном месте, делиться ими с командой и повторно использовать их в своих рабочих проектах.
Добавление скриптов к коллекциям и папкам помогает тестировать разные процессы в вашем API-проекте. Это позволяет убедиться, что ваши запросы правильно обрабатывают обычные сценарии и обеспечивают стабильную работу приложения для пользователей.
Чтобы добавить или изменить тесты для коллекции и папок, выберите нужную коллекцию или папку в боковой панели, затем перейдите на вкладку “Scripts” > “Post-response”. Запустив коллекцию с помощью “Collection Runner” (Запуск коллекции), вы увидите результаты всех тестов. Эти результаты включают время отклика в миллисекундах и информацию о том, прошёл ли каждый запрос свои тесты или не прошёл.
Вы можете написать скрипты для управления порядком выполнения запросов, используя ветвление и циклы.
Создание тестов с помощью Postbot
ИИ-помощник Postman, Postbot, помогает сократить необходимость писать шаблонный код для тестов. Получить доступ к Postbot можно через нижнюю панель Postman или через значок Postbot в редакторе кода. Как только вы начинаете вводить свои тесты, Postbot предлагает типичные действия для тестирования.
Postbot анализирует ответ на ваш запрос и любые сохранённые примеры, чтобы предложить подходящий код для тестирования. Вы можете использовать обычный язык, чтобы указать Postbot, что нужно сделать, а он задействует искусственный интеллект для автоматической генерации тестовых скриптов. С помощью Postbot можно добавить новый набор тестов, визуализировать ответы, сохранить поле из ответа или исправить существующие тесты.
Чтобы написать тест с использованием Postbot, выполните следующие шаги:
- Отправьте ваш запрос, чтобы получить ответ.
- Выберите вкладку “Scripts” > “Post response”.
- Выберите значок Postbot в редакторе кода.
- Выберите один из предложенных запросов. Также вы можете ввести запрос, чтобы сказать Postbot, что вам нужно, а затем выбрать кнопку воспроизведения. Postman напишет тест за вас.
Вы также можете использовать Postbot для автозаполнения кода теста. Если у вас уже есть ответ, и вы начинаете вводить pm.test,
Postbot предложит варианты тестов для вашего запроса. Просто выберите нужное название теста, и Postbot автоматически вставит код для проверки вашего ответа. Это позволяет быстро и удобно добавлять тесты, не тратя время на их написание вручную.
Добавление документации к скриптам
Postman поддерживает использование JSDoc для документирования JavaScript-функций в ваших скриптах. Документация, добавленная с помощью JSDoc, будет отображаться во всплывающем окне при вызове ваших функций. Вы можете ознакомиться с официальной документацией JSDoc, чтобы узнать, как правильно добавить описание для ваших скриптов.
Пример ниже показывает, как можно документировать функцию logger
с использованием JSDoc. Документация объясняет, что делает функция, описывает параметр data
и уточняет, что он должен быть строкой:
/** * Эта функция выводит строку в консоль Postman. * @param {string} data - Текст для вывода в консоль Postman. */ function logger (data) { console.log(`Вывод информации в консоль, ${data}`) }
Отладка тестов
Если у вас возникли проблемы с тестами, выполните следующие действия:
- Проверьте, есть ли в ваших скриптах ошибки (они выделяются красным подчеркиванием). Наведите курсор на ошибку и выберите “Просмотреть проблему” (View Problem), чтобы получить помощь. Вы также можете проверить окно просмотра ответа для поиска конкретных ошибок.
- Отлаживайте ваши тесты, используя операторы логирования, чтобы убедиться, что вы создаете утверждения на основе корректных данных.
Следующие шаги
Когда вы освоите написание базовых тестов в Postman, можно переходить к созданию более сложных тестов и их использованию вместе с другими инструментами Postman.
- Чтобы узнать больше о возможностях объекта
pm
, посмотрите примеры скриптов и справочник JavaScript в Postman. - Для проверки состояния и производительности вашего API с помощью Postman Monitors, ознакомьтесь с разделом “Мониторинг состояния и производительности ваших API в Postman”.
- Если вы хотите автоматизировать тестирование и интегрировать выполнение коллекций в вашей конфигурации CI/CD, обратитесь к разделу “Интеграция CI-инструментов в Postman”.
- Для сохранения и повторного использования часто используемых скриптов и тестов воспользуйтесь библиотекой пакетов Postman.
Перевод статьи «Write scripts to test API response data in Postman».