Как ты используешь логи в тестировании
Вопрос
Как ты используешь логи, когда находишь баг в API?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Нахожу запрос по trace id или request id из ответа, иначе по времени и id сущности
Смотрю ERROR и WARN, стектрейс, на каком сервисе и шаге упало
Прикладываю к баг-репорту выдержку и trace id
Проверяю сами логи: уровни, отсутствие паролей и персональных данных
Инструменты: Kibana, Grafana Loki, Sentry, kubectl logs, tail и grep
Что могут спросить следом
- Что делать, если в ответе нет request id?
- Что такое структурированные логи?
- Какие баги можно найти в самих логах?
Разбор
Когда API вернуло ошибку, я беру из заголовков ответа request id или trace id и ищу по нему в системе логов, у нас это Kibana, в других проектах Grafana Loki. Если идентификатора нет, ищу по времени и по id заказа или пользователя. Смотрю записи ERROR и WARN, стектрейс, на каком сервисе и на каком шаге упало, и что было перед этим. В баг кладу trace id и короткую выдержку, тогда разработчик сразу видит причину. Сами логи тоже тестирую: ошибки пишутся с уровнем ERROR, а не INFO, иначе алерт не сработает; в логах нет паролей, токенов, номеров карт; у каждой строки есть trace id. На стенде без системы логов использую docker logs, kubectl logs или tail -f с grep на сервере.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.