Интерпретировать коды ответов HTTP и отличать ошибку клиента от ошибки сервера.
Классы HTTP-кодов и ключевые коды
Что говорит нам код ответа
HTTP-коды делятся на классы по первой цифре. 2xx — успех: запрос принят и обработан (200 OK — стандартный успех). 3xx — перенаправление: клиенту нужно обратиться по другому адресу. 4xx — ошибка на стороне клиента: запрос составлен неверно или прав нет. 5xx — ошибка на стороне сервера: запрос правильный, но сервер не справился.
Ключевые коды, которые тестировщик встречает каждый день: 200 OK — всё хорошо, данные в теле ответа; 404 Not Found — ресурс по этому URL не существует; 401 Unauthorized — пользователь не аутентифицирован или токен неверный; 403 Forbidden — пользователь аутентифицирован, но прав на это действие нет; 500 Internal Server Error — что-то сломалось на сервере.
Правило различия 401 и 403: спросите себя — помогут ли правильные логин/пароль? Если да (пользователь не вошёл или передал неверный токен) — ожидайте 401. Если нет (пользователь вошёл, но у него просто нет прав) — ожидайте 403. Это частая ошибка реализации: разработчик возвращает не тот код, и тестировщик должен это поймать.
Почему тестировщик смотрит на код, а не только на экран? Интерфейс может показывать «Что-то пошло не так» при любой ошибке, а код ответа точно говорит, кто виноват — клиент или сервер. Кроме того, некоторые баги видны только в коде ответа: например, API возвращает 200, но в теле — пустой список там, где должны быть данные.
Lesson notes
Что говорит нам код ответа
HTTP-коды делятся на классы по первой цифре. 2xx — успех: запрос принят и обработан (200 OK — стандартный успех). 3xx — перенаправление: клиенту нужно обратиться по другому адресу. 4xx — ошибка на стороне клиента: запрос составлен неверно или прав нет. 5xx — ошибка на стороне сервера: запрос правильный, но сервер не справился.
Ключевые коды, которые тестировщик встречает каждый день: 200 OK — всё хорошо, данные в теле ответа; 404 Not Found — ресурс по этому URL не существует; 401 Unauthorized — пользователь не аутентифицирован или токен неверный; 403 Forbidden — пользователь аутентифицирован, но прав на это действие нет; 500 Internal Server Error — что-то сломалось на сервере.
Правило различия 401 и 403: спросите себя — помогут ли правильные логин/пароль? Если да (пользователь не вошёл или передал неверный токен) — ожидайте 401. Если нет (пользователь вошёл, но у него просто нет прав) — ожидайте 403. Это частая ошибка реализации: разработчик возвращает не тот код, и тестировщик должен это поймать.
Почему тестировщик смотрит на код, а не только на экран? Интерфейс может показывать «Что-то пошло не так» при любой ошибке, а код ответа точно говорит, кто виноват — клиент или сервер. Кроме того, некоторые баги видны только в коде ответа: например, API возвращает 200, но в теле — пустой список там, где должны быть данные.