Коллеги, всем желаю хорошего дня.
Для начинающих специалистов по тестированию.
Автор: Надежда Дудник
Недавно я делилась информацией как составлять тест-кейсы по бэкенду (читать статью Шаблоны тест-кейсов по 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 на момент написания статьи)
Так выглядит коллекция запросов:
Переменные со своими значениями объявлены в самой коллекции:
Код на вкладке 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);
Пример запроса и ответа от сервера:
Просмотреть и скачать коллекцию: ссылка на коллекцию.
Insomnia
Insomnia (Version: Insomnia 8.4.5, OS: Windows_NT x64 10.0.19045 на момент написания статьи).
Так выглядит коллекция запросов:
Переменные со своими значениями объявлены в окружении:
Значения переменных взяты следующим образом:
Пример запроса и ответа от сервера:
Просмотреть и скачать коллекцию: ссылка на коллекцию.
Заключение
На основе данных примеров показала как составлять запросы и строить структуру коллекции в postman и insomnia.
Внести скрипты проверок - планируется.
Эти примеры помогут больше не только в построении запросов, но и в написании функциональных тест-кейсов по API при обучении и даже на работе.
Благодарю за прочтение.
С уважением, Надежда Дудник (protestinginfo), главный инженер по тестированию в финтехе и ментор по тестированию ПО.
И желаю достичь своей цели!
PrinceKorwin
Подскажите знающие люди. А есть какой-то тул чтобы можно было его использовать локально без этих вот GUI и Cloud?
Просто набор скриптов/правил по который провалидировать REST API разрабатываемого приложения?
Сценарий простой:
поправил код
запустил сервис
прогнал REST API тесты
Ну и чтобы на всех платформах работало и желательно не тянуло за собой тонны всего.
des1roer
scratch в phpstorm. функциональные тесты
PrinceKorwin
Хотелось бы что-то на подобие wrk, только не для нагрузки на API, а на его валидацию.
PrinceKorwin
Кажется нашёл: https://hurl.dev
Выглядит обещающе.
savostin
Postman cli