Шаблоны тест-кейсов по API, тест-кейсы по идемпотентности

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет всем!

Давайте знакомиться.

Я, Надежда Дудник, главный инженер по тестированию в СБЕРе, а ещё ментор по тестированию ПО.

Как два года я введу блог по тестированию, помогаю начинающим специалистам по тестированию развивать свои хард скиллы, сочиняю тесты для закрепления знаний по основам тестирования и не только.

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

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

На работе я постоянно провожу ревью тестовых моделей по бэку, даю обратную связь, чтобы было качественное тестовое покрытие согласно требованиям.

Как вы знаете, что каждый тест состоит из предусловий, шагов и ожидаемых результатов.

Сперва необходимо составлять позитивные тесты - успешное прохождение сценария, затем негативные тесты с невалидными и/или недопустимыми данными, null для обязательных ключей и т.д..

При выполнении каждого запроса API нам необходимо и важно проверить:

  • корректность статуса кода;

  • полезную нагрузку ответа;

  • сам ответ от сервера: сообщение, ключ, значение, тип данных, структуру объектов;

  • заголовки ответа от сервера;

  • авторизацию с использованием методов аутентификации;

  • протокол HTTP / HTTPS согласно спецификации;

  • дополнительно доступы разных ролей, время ответа API, стиль формата обмена данными.


Сейчас я хочу продемонстрировать пример тест-кейса "Добавить нового питомца в магазин (Вызов метода POST)", используя сайт https://petstore.swagger.io/

Тест-кейс API "Добавление нового питомца в магазин"
Тест-кейс API "Добавление нового питомца в магазин"

Важно выполнить следующие шаги:

Отправить POST запрос https://petstore.swagger.io/v2/pet с телом:

{
    "id": 10,
    "category": {
        "id": 1,
        "name": "animal"
    },
    "name": "Bulldog",
    "photoUrls": [
        "https: //site.com/bulldog/photo"
    ],
    "tags": [
        {
            "id": 1,
            "name": "#dog"
        }
    ],
    "status": "available"
}

Проверить код состояния

Проверить тело ответа от сервера

Проверить структуру ответа

Проверить заголовки ответа

Часть ожидаемого результата:

HTTP Status: 200 OK Схема JSON отображена корректно, имена и типы полей соответствуют ожидаемым, 
включая вложенные объекты: 
"category": {
    "id": 1,
    "name": "animal"
} 
вложенная структура данных, содержащая объекты и массивы: 
"tags": [
    {
        "id": 1,
        "name": "#dog"
    }
] 
значения полей соответствуют ожидаемым значениям из тестовых данных: 
"id": 10 - number 
"category": {
    "name": "animal"
} - object 
"name": "Bulldog" - string 
"photoUrls": [
    "https://site.com/bulldog/photo"
] - array 
"tags": [
    {
        "name": "#dog"
    }
] - array with objects "status": "available" - string

Шаблон тест-кейсов API данного примера предлагаю просмотреть по ссылке.


Рассмотрим пример тест-кейсов для сайта https://try.vikunja.io/login .

Тест-кейс API: регистрация и авторизация пользователя.
Тест-кейс API: регистрация и авторизация пользователя.

Регистрация пользователя

Отправить POST запрос https://try.vikunja.io/api/v1/register с телом

Postman: Body -> Raw -> JSON 
{
    "email": "string",
    "id": 0,
    "password": "stringst",
    "username": "string"
}

Ожидаемый результат

Запрос успешно отправлен на сервер

HTTP Status: 200 OK

Пользователь успешно зарегистрировован
Тело ответа в формате JSON возращается от сервера и будет иметь следующий вид: 
{

"created": "string",    
"email": "string",    
"id": 0,    
"name": "string",    
"updated": "string",    
"username": "string",    
"web.Auth": null
}

Шаблон тест-кейсов API для сайта Vikunja смотреть по ссылке.


Дополнительно я подготовила тест-кейсы на «Проверку идемпотентности» для тех, кто в начале пути по изучению основ тестирования и этот материал для закрепления знаний.
В данной информации можно скачать коллекцию, в которой я указала просто запросы на методы POST, PUT, GET, DELETE. Ваша задача в некоторых запросах подставить свои значения. Эти тест-кейсы я расписала детально для вас. В проектных задачах по тестированию редко кто так составляет детально тест-кейсы API в TMS, потому что мало времени на подробное описание тест-кейсов и на их актуализацию.

Если у вас возник вопрос, что такое "Идемпотентность", то по вышеуказанной ссылке имеется полезный материал на теорию по идемпотентности.

Пример тест-кейсов по идемпотентности:

Добавить нового питомца в магазин (Вызов метода POST  /add_pet не идемпотентен)
Добавить нового питомца в магазин (Вызов метода POST /add_pet не идемпотентен)

Основные шаги при отправке запроса методом POST:

Отправить POST запрос https://petstore.swagger.io/v2/pet с телом, пример которого был указан выше

Проверить код состояния

Проверить тело ответа от сервера

Ожидаемый результат:

POST /add_pet не идемпотентен. При каждом его вызове будет создан новый питомец.


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

Благодарю за прочтение и рекомендую использовать данные шаблоны при выполнении тестовых и проектных задач.

Источник: https://habr.com/ru/post/718560/


Интересные статьи

Интересные статьи

Если Вы используете Битрикс24 и у Вас один из архивных тарифов, то наверняка Вы уже в курсе того, что в 2023 году планируется прекратить их поддержку. Если нет, то сейчас самое время чтобы об этом пог...
Всем привет. Как часто вам нужно разрабатывать сотни авто тестов и предоставлять заинтересованным лицам отчеты с результатами? Лично мне очень часто. В этом мне помогает Anna.
Кто бы что ни говорил, но я считаю, что изобретение велосипедов — штука полезная. Использование готовых библиотек и фреймворков, конечно, хорошо, но порой стоит их отложить и создать ...
В Челябинске проходят митапы системных администраторов Sysadminka, и на последнем из них я делал доклад о нашем решении для работы приложений на 1С-Битрикс в Kubernetes. Битрикс, Kubernetes, Сep...
С версии 12.0 в Bitrix Framework доступно создание резервных копий в автоматическом режиме. Задание параметров автоматического резервного копирования производится в Административной части на странице ...