Тестирование 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 на ранней стадии разработки.

Рекомендуемые программы