Какие минимальные тесты нужны для GET запроса к API колл-центра
Что проверяют
Умеете ли вы из бесконечного списка проверок выбрать минимальный набор, который ловит основные поломки, и привязать его к предметной области. Следом обычно спрашивают, что из этого вы бы автоматизировали первым и как проверите права доступа.
Как отвечать
Сначала уточните контракт: какой это эндпоинт, например GET /calls/{id} или GET /calls?operatorId=&from=&to=, какие параметры обязательны и какие коды ответа описаны в спецификации. Потом минимальный набор:
- успешный ответ:
200, заголовокContent-Type: application/json, тело соответствует схеме (JSON Schema из OpenAPI), поля и типы на месте; - корректность данных: вернулся именно тот звонок или оператор, длительность и статус совпадают с тем, что лежит в базе или было создано в подготовке теста;
- пустой результат: фильтр без совпадений по контракту обычно даёт
200и пустой массив, а не404и тем более не500; - несуществующий ресурс:
404для несуществующего или удалённогоid,400для невалидного формата, например буквы вместо числа; - авторизация: без токена
401, с токеном оператора, которому этот звонок не положен,403; - фильтры и пагинация: граничные значения периода,
limit, сортировка, стабильность страниц.
Для колл-центра стоит отдельно назвать персональные данные: номера клиентов в ответе замаскированы, если так требует роль, а время звонков приходит в согласованном формате с часовым поясом. И GET не должен ничего менять: повторный запрос возвращает то же самое.
Инструменты любые рабочие: Postman с прогоном через Newman, pytest с requests, REST Assured. Главное, чтобы тесты шли в CI.
Где спотыкаются
Проверяют только код 200. Сервер может ответить успехом с пустым телом или с ошибкой внутри JSON, поэтому схему и содержимое проверять обязательно.
Раздувают «минимальный» набор нагрузочными тестами и поиском SQL-инъекций. Это отдельные виды тестирования со своими инструментами, в смоук они не входят.
Путают 401 и 403, а ещё не проверяют доступ к чужим данным. Для колл-центра утечка чужих звонков серьёзнее любой ошибки форматирования.