Что такое Postman
Постман — это инструмент с бесплатным тарифом для команд до трех человек и дополнительными платными возможностями: 10 000 запросов к Mock Server, аудит логов и создание групп.
Часто пишут, что Постман используют тестировщики. Но на самом деле инструмент пригодится и другим специалистам в области IT:
- техническим писателям — чтобы создавать, поддерживать, обновлять документацию по проекту;
- разработчикам backend/frontend — чтобы быстро получить информацию, на какие эндопоинты отправлять request и что приходит в респонс;
- DevOPS — для интеграции с конвейером, например pipeline, разработки и поддержки CI/CD.
Как пользоваться Postman
Чтобы использовать сервис для тестирования и документирования Application Programming Interface, не нужно скачивать программы или приложения. Достаточно пройти регистрацию на postman.com, а затем перейти в «My Workspace». Но при этом разработчики предлагаюти другие возможности:
- установить расширение Постман для VS Code;
- скачать программу для ПК;
- использовать Postman CLI.
В инструкции ниже разберем работу с веб-версией Постмана и ее интерфейсом после регистрации пользователя.
Как устроен Postman
Сервис предоставляет четыре вида пространств:
- персональное — доступно только одному пользователю;
- командное — нужно для организации доступа нескольких человек;
- публичное — пространство могут просматривать все;
- приватное — в платной версии доступ можно открыть только отдельным пользователям.
В «My Workspace» пользователь увидит столбец вкладок слева:
- «Collections» — файл проекта, который объединяет все связанные реквесты;
- «APIs» — документирование отдельных Application Programming Interface;
- «Environments» — настройка окружения и переменных;
- «Mock Servers» — создание и тестирование мок-сервера;
- «History» — история и логи.
Как тестировать запросы через Postman
Постман поддерживает работу с HTTP, REST, SOAP, GraphQL и WebSockets. Чтобы тестировать реквесты, нужно понимать их устройство. К примеру, любой HTTP-Request содержит:
- метод — GET, POST, PUT, HEAD, DELETE;
- ссылку, или URL, — адрес для доступа к ресурсу;
- версию HTTP-протокола — HTTP/1.X от HTTP/2.X.
Чтобы создать первый request в Постмане и протестировать возможности инструмента, достаточно:
- Нажать «New» и выбрать «HTTP».
2. Попасть на страницу со строкой для отправки запроса. Нужно выбрать метод — по умолчанию стоит «Get» — и указать URL. К примеру, для теста это может быть postman-echo.com/get. Чтобы увидеть респонс, необходимо нажать «Send».
3. В нижней части страницы появляется JSON-файл. Также можно увидеть, что request обработан успешно — status 200, время обработки и другие данные.
Что произошло:
- Постман отправил запрос GET на сервер API Postman Echo — postman-echo.com.
- Сервер Application Programming Interface получил реквест, обработал его и вернул ответ.
- Постман получил ответ и отобразил его в нижней части страницы.
Только вместо postman-echo.com разработчики и тестировщики могут использовать собственные API, писать на них test, документировать код и прочее.
Как создавать тесты в Postman
Постман предоставляет возможности для создания разных видов tests:
- сквозное end-to-end testing — E2E;
- интеграционное — integration testing;
- регрессное — regression;
- производительности — performance testing.
С помощью Постмена создают автотесты для проверки запроса и респонса. Можно писать небольшие скрипты, чтобы:
- проверить, что респонс успешный — код 200;
- уточнить, что лежит в теле ответа — body;
- протестировать, эквивалентно ли содержимое ответа тому, что ожидает разработчик;
- проверить наличие хедера — headers — и его содержимого;
- уточнить куки в респонсе и их значения;
- протестировать время ответа — response times.
В пошаговой инструкции разберем, как создать мок-сервер и протестировать его. Например, есть задача — обратиться к API сервиса gitverse.ru и получить список репозиториев с userId, а также ID, title и body самого репозитория. Эндпоинт — {{url}}/repositories.
Пример условный. Чтобы создать Application Programming Interface и протестировать его, нам необходимо:
- Создать мок-сервер. Для этого пользователь выбирает «Mock Servers → Create Mock Server».
2. Указать эндпоинт во вкладке «Request URL» — адрес с данными, и Response Body — ответ от сервера.
- Вписать значения. «Request URL» — {{url}}/repositories. В Response Body необходимо скопировать данные — ответ сервера. В нашем примере это будет массив, в котором лежат userId, id, title и body. Достаточно скопировать и вставить в поле «Response Body» код ниже:
[
{
"userId": 1,
"id": 1,
"title": "Это первый репозиторий на GiVerse AstroLibrary",
"body": "Сборник библиотек по астрономии с примерами программ на С/C++/Delphi/Python"
},
{
"userId": 1,
"id": 2,
"title": "RUS-dev",
"body": "Список SaaS, PaaS, IaaS — безопасных отечественных или приземленных сервисов для российских разработчиков"
},
{
"userId": 1,
"id": 3,
"title": "GigaChat.NET",
"body": ".NET GigaChat — это библиотека .NET для работы с ИИ от Сбера, который способен вести диалог с пользователем, писать код, создавать тексты и генерировать изображения прямо в ходе диалога"
},
{
"userId": 1,
"id": 4,
"title": "GigaChatJS",
"body": "Эта библиотека обеспечивает удобный доступ к GigaChat REST API из TypeScript или JavaScript"
}
]
4. Задать конфигурацию. Необходимо задать название, которое будет отображаться в рабочей области, окружение и, при необходимости, настройки приватности. Название мок-сервера — GitVerseMock, но пользователь может задать любое удобное имя для проекта.
5. Подтвердить создание мок-сервера. Он появится в разделе «Mock Servers».
Чтобы писать и запускать tests, необходимо выбрать созданный мок или Application Programming Interface в разделе «Collections» и нажать «Scripts».
В поле для теста вписывают код на JavaScript. В случае успешного получения респонса нужно вывести сообщение о том, что все отлично. Пример кода:
pm.test("У GitVerse все хорошо, пришел ответ 200 от сервера", function () {
pm.response.to.have.status(200);
});
После клика на кнопку «Send» во вкладке «Test Result» появится сообщение о том, что тест пройден.
Можно проверить корректность написания теста и его работоспособность. Например, изменим эндпоинт: ссылка будет выглядеть не как {{url}}/repositories, а как {{url}}/repo. После клика на «Send» появится ошибка: «AssertionError: expected response to have status code 200 but got 404». Ожидалось получить успешный ответ 200, а получили 404. Все логично: эндпоинта {{url}}/repo не существует.
Для мок-сервера можно написать и более сложный тест. Например, мы хотим убедиться, что тайтл четвертого объекта, лежащего в массиве, — "GigaChatJS". В разделе «Scripts» указываем код:
pm.test("Тайтл четвертого объекта — GigaChatJS", () => {
const responseJson = pm.response.json();
pm.expect(responseJson[3].title).to.eql("GigaChatJS");
pm.expect(responseJson[3].id).to.eql(4);
});
Результат выполнения — «PASS». Тест прошел, так как в четвертом объекте у нас действительно находится GigaChatJS:
{
"userId": 1,
"id": 4,
"title": "GigaChatJS",
"body": "Эта библиотека обеспечивает удобный доступ к GigaChat REST API из TypeScript или JavaScript"
}
Если изменить тест и обратиться ко второму объекту — responseJson[1].title, появляется ошибка. Во втором объекте у нас находится тайтл "RUS-dev". Об этом и сообщает результат.
Таким образом, мы создали мок-сервер с произвольными данными и написали для него первые тесты. Post Man позволяет создавать тесты любой сложности для проверки работы АПИ.
Как запускать коллекции тестов
В коммерческой разработке тестировать по одному реквесту долго, сложно и часто нецелесообразно: нужна автоматизация. Чтобы проверять работу нескольких API или запускать серию скриптов, используют коллекции.
Чтобы запустить коллекцию тестов, необходимо сохранить файлы с запущенными ранее tests. В меню «Collection» пользователь выбирает API, который хочет протестировать. Далее необходимо нажать «Run Collection».
Появляется форма, где нужно задать настройки:
- «Iterations» — количество запущенных итераций;
- «Delay» — задержка между запросами и некоторые другие.
После клика на «Run GitVerseMock» пользователь видит результаты запуска tests:
- окружение;
- количество итераций;
- длительность;
- количество tests.
В разделе «All Tests» отображается информация по каждому мок-серверу или Application Programming Interface, написанным тестам.
Коллекции автоматизируют рутину и упрощают работу QA-инженеров, разработчиков и других IT-специалистов.
Как работают запросы в Postman
Инструмент для тестирования и документирования используют для работы с request и response. Сервис предоставляет удобный конструктор.
Его основные элементы:
- GET — метод, который можно выбрать из выпадающего списка;
- URL — эндпоинт;
- SEND — отправка;
- SETTINGS — параметры;
- BODY — параметры ответа.
Постман поддерживает работу с REST, GraphQL, gRPC, WebSocket, MQTT и SOAP.
В пошаговой инструкции мы разобрали, как новичок может использовать Постман: отправить запрос, создать мок-сервер, написать tests и запустить их коллекцию.