Ответ
При тестировании URL проверяю следующие аспекты:
1. Корректность формирования и кодирования:
- Кодирование спецсимволов и Unicode: Пробелы, кириллица, символы
&,?,#должны быть корректно закодированы (percent-encoding).// Пример: Кодирование запроса с кириллицей const searchTerm = "тест"; const encodedTerm = encodeURIComponent(searchTerm); // "%D1%82%D0%B5%D1%81%D1%82" const fullUrl = `https://api.example.com/search?q=${encodedTerm}`; - Чувствительность к регистру: Проверка, является ли путь (
/Usersvs/users) или параметры регистрозависимыми.
2. Структура и параметры:
- Path parameters: Корректная подстановка значений в шаблон URL (например,
/users/{id}). - Query parameters: Проверка влияния параметров на ответ (фильтрация, сортировка, пагинация). Тестирование граничных значений и невалидных данных.
- Длина URL: Учет ограничений браузеров (~2000 символов) и серверов.
3. Обработка сервером:
- Редиректы: Корректность кодов ответа (301, 302, 307) и конечного URL.
- Обработка несуществующих путей: Должен возвращаться соответствующий код ошибки (404).
- Безопасность: Попытки path traversal (например,
/api/../secret).
Инструменты: Postman/Newman для автоматизации, Charles Proxy или DevTools Network tab для анализа raw-запросов, curl для быстрых проверок.