Расскажите про опыт тестирования API
Что проверяют
Умеете ли вы проверять контракт, а не только счастливый путь. Ответ должен быть про конкретные проверки и инструменты.
Как отвечать
Рамка и примеры.
> «Тестирую REST API двух сервисов, ежедневно. Начинаю со спецификации: сверяю схему ответа, коды и обязательные поля. Функциональные проверки в Postman, коллекции с переменными окружения и тестами на схему, часть гоняется в CI на каждый мердж. Нагрузку меряю k6, последний раз нашли деградацию на пятистах запросах в секунду из-за отсутствующего индекса».
Что проверяю по существу:
- контракт: коды ответов, схема, типы, обязательные и необязательные поля;
- краевые значения: пустые строки, нули, отрицательные числа, очень длинные значения, юникод и эмодзи;
- ошибки: невалидное тело, отсутствующие поля, чужой идентификатор, истёкший токен;
- авторизация: доступ к чужому ресурсу, отсутствие токена, недостаточные права. Это самое ценное, что находится в API-тестировании;
- идемпотентность и повторы: что будет, если клиент отправит запрос дважды;
- пагинация и сортировка: границы, несуществующая страница, устойчивый порядок.
Где спотыкаются
Проверяют только код 200 и не смотрят на тело ответа.
Не проверяют доступ к чужим данным, а это самая частая реальная дыра.
Гоняют коллекцию руками и не подключают её в CI.
Не могут объяснить разницу между 401 и 403 и между 400 и 422.