Ответ
404 Not Found — это клиентский код ошибки HTTP, который сервер возвращает, когда не может найти запрашиваемый ресурс по указанному URI.
Типичные причины в тестируемых системах:
- Запрос к несуществующему ID (например,
/api/users/999999). - Опечатка в пути эндпоинта.
- Ресурс был удалён, а ссылка на него осталась.
- Неправильная конфигурация маршрутизации на сервере.
Пример тестирования 404 в разных контекстах:
1. API-тестирование (проверка негативного сценария):
import requests
def test_get_nonexistent_user_returns_404():
# Запрос к заведомо несуществующему ресурсу
response = requests.get('https://api.example.com/v1/users/0')
# Основная проверка
assert response.status_code == 404,
f'Запрос к несуществующему ресурсу должен вернуть 404, а не {response.status_code}'
# Дополнительно: иногда сервер возвращает тело ошибки
if response.content:
error_body = response.json()
assert 'message' in error_body
# Проверяем, что сообщение об ошибке информативно
2. UI-тестирование (Playwright):
// Пример проверки, что клик по битой ссылке ведет на страницу 404
const { test, expect } = require('@playwright/test');
test('Ссылка на удаленную страницу ведет на 404', async ({ page }) => {
await page.goto('/article/old-deleted-article');
// Проверяем статус ответа для страницы
const response = await page.waitForResponse(resp =>
resp.url().includes('/article/old-deleted-article')
);
expect(response.status()).toBe(404);
// Или проверяем, что на странице отображается нужный заголовок/текст
await expect(page.locator('h1')).toHaveText('Страница не найдена');
});
Ключевое для QA: Проверка кода 404 — это важная часть тестирования обработки ошибок и граничных случаев, которая обеспечивает стабильность и предсказуемость системы.