Шаблоны тест-кейсов по API, тест-кейсы по идемпотентности
Привет всем!
Давайте знакомиться.
Я, Надежда Дудник, главный инженер по тестированию в СБЕРе, а ещё ментор по тестированию ПО.
Как два года я введу блог по тестированию, помогаю начинающим специалистам по тестированию развивать свои хард скиллы, сочиняю тесты для закрепления знаний по основам тестирования и не только.
В рамках своего блога я поделилась информацией как составлять тест-кейсы по бэкенду, и захотелось также поделиться этой информацией здесь.
Хочу вам рассказать о важности написания тест-кейсов по API, а именно про стратегию составления тест-кейсов по бэку, где результатом будет являться хорошо структурированный тест-кейс.
На работе я постоянно провожу ревью тестовых моделей по бэку, даю обратную связь, чтобы согласно требованиям было качественное тестовое покрытие.
Как вы знаете, что каждый тест-кейс состоит из предусловий, шагов и ожидаемых результатов.
Сперва необходимо составлять позитивные тесты — успешное прохождение сценария, затем негативные тесты с невалидными и недопустимыми данными и т.д..
При выполнении каждого запроса API нам необходимо и важно проверить:
- корректность статуса кода;
- полезную нагрузку ответа;
- сам ответ от сервера: сообщение, ключ, значение, тип данных, структуру объектов;
- заголовки ответа от сервера;
- авторизацию с использованием методов аутентификации;
- протокол HTTP / HTTPS согласно спецификации;
- дополнительно доступы разных ролей, время ответа API, стиль формата обмена данными.
Хочу продемонстрировать пример тест-кейса "Добавить нового питомца в магазин (Вызов метода POST)", используя сайт https://petstore. swagger. io/
Важно выполнить следующие шаги:
Отправить POST запрос https://petstore. swagger. io/v2/pet с телом:
Проверить код состояния
Проверить тело ответа от сервера
Проверить структуру ответа
Проверить заголовки ответа
Часть ожидаемого результата:
Шаблон тест-кейсов API данного примера предлагаю просмотреть по ссылке.
Рассмотрим пример тест-кейсов для сайта https://try. vikunja. io/login.
Тест-кейс: "Регистрация пользователя"
Отправить POST запрос https://try. vikunja. io/api/v1/register с телом
Ожидаемый результат:
Запрос успешно отправлен на сервер
HTTP Status: 200 OK
Пользователь успешно зарегистрировован.
Тело ответа в формате JSON возращается от сервера и будет иметь следующий вид:
Шаблон тест-кейсов API для сайта Vikunja смотреть по ссылке.
Дополнительно я подготовила тест-кейсы на «Проверку идемпотентности» для тех, кто в начале пути по изучению основ тестирования, и этот материал для закрепления знаний.
В данной информации можно скачать коллекцию, в которой я указала просто запросы на методы POST, PUT, GET, DELETE. Ваша задача в некоторых запросах подставить свои значения. Эти тест-кейсы я расписала детально для вас. В проектных задачах по тестированию редко кто так составляет детально тест-кейсы API в TMS (Test Managment System), потому что мало времени на подробное описание тест-кейсов и на их актуализацию.
Если у вас возник вопрос, что такое "Идемпотентность", то по вышеуказанной ссылке имеется полезный материал на теорию по идемпотентности.
Пример тест-кейсов по идемпотентности:
Основные шаги при отправке запроса методом POST:
Отправить POST запрос https://petstore. swagger. io/v2/pet с телом (тело запроса было указано в первом примере)
Проверить код состояния
Проверить тело ответа от сервера
Ожидаемый результат:
POST /add_pet не идемпотентен. При каждом его вызове будет создан новый питомец.
В заключении, хочу сказать, что должно быть сгенерировано достаточно тест-кейсов, чтобы обеспечить функциональное покрытие в полном объеме. Поэтому важно не только качественно составлять тест-кейсы по UI, но и тест-кейсы по API.
Благодарю за прочтение и рекомендую использовать данные шаблоны при выполнении тестовых и проектных задач.
Класс