Коллекции тестов по API в Postman и в Insomnia

Коллеги, все желаю хорошего дня.

Для начинающих специалистов по тестированию

Автор: Надежда Дудник

Недавно я делилась информацией как составлять тест-кейсы по бэкенду (читать статью Шаблоны тест-кейсов по API, тест-кейсы по идемпотентности).

Сейчас хочу продемонстрировать примеры создания запросов по данным тест-кейсов для сайта:

UI: https://try.vikunja.io/login
API documentation: https://try.vikunja.io/api/v1/docs

Разберем следующие функциональные проверки на API:

Регистрация нового пользователя
Регистрация с существующим username
Регистрация с существующим email
Успешная авторизация и получение токена
Создание project (проекта)
Получение информации проекта по id
Обновление проекта по id
Удаление проекта по id
Создание task (задачи)
Получение всех задач в проекте
Получение инфомации задачи по id
Обновление задачи по id
Удаление задачи по id
Добавление label в task (можно добавить несколько)
Создание label (метки)
Получение всех меток в задаче
Получение информации метки по id
Обновление метки по id
Удаление метки по id

Создание запросов на основе тест-кейсов в инструментах:

Postman

Postman (Version 10.20.3, OS platform win32 10.0.19045 на момент написания статьи)

Так выглядит коллекция запросов:

Коллекция

Коллекция «Vikunja API» в Postman

Переменные со своими значениями объявлены в самой коллекции:

Необходимые переменные для работы

Необходимые переменные для работы

Код на вкладке Tests для установки переменных в коллекцию:

в запросе POST Login

var jsonData = JSON.parse(responseBody);
pm.collectionVariables.set("token", jsonData.token);

Токен можно объявить или через вкладку "Headers" как Authorization: Bearer {{token}} 
или
через вкладку "Authorization" -> type 'Bearer Token'
в запросе PUT Creates a new project

var jsonData = JSON.parse(responseBody);
pm.collectionVariables.set("project_id", jsonData.id);
в запросе PUT Create a task

var jsonData = JSON.parse(responseBody);
pm.collectionVariables.set("task_id", jsonData.id);
в запросе PUT Create a label

var jsonData = JSON.parse(responseBody);
pm.collectionVariables.set("label_id", jsonData.id);

Пример запроса и ответа от сервера:

PUT Create a task

PUT Create a task

Просмотреть и скачать коллекцию: ссылка на коллекцию

Insomnia

Insomnia (Version: Insomnia 8.4.5, OS: Windows_NT x64 10.0.19045 на момент написания статьи)

Так выглядит коллекция запросов:

Коллекция

Коллекция «Vikunja API» в Insomnia

Переменные со своими значениями объявлены в окружении:

Необходимые переменные для работы

Необходимые переменные для работы

Значения переменных взяты следующим образом:

пример редактирования переменной: более подробно можно почитать здесь

пример редактирования переменной: более подробно можно почитать здесь

Пример запроса и ответа от сервера:

PUT Create a task

PUT Create a task

Просмотреть и скачать коллекцию: ссылка на коллекцию

Заключение

На основе данных примеров показала как составлять запросы и строить структуру коллекции в postman и insomnia.

Внести скрипты проверок — планируется.

Эти примеры помогут больше не только в построении запросов, но и в написании функциональных тест-кейсов по API при обучении и даже на работе.

Благодарю за прочтение.

С уважением, Надежда Дудник (protestinginfo), главный инженер по тестированию в финтехе и ментор по тестированию ПО.

И желаю достичь своей цели!

© Habrahabr.ru