На что вы обращаете внимание при тестировании URL в веб-приложениях и API?

«На что вы обращаете внимание при тестировании URL в веб-приложениях и API?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При тестировании 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}`;
  • Чувствительность к регистру: Проверка, является ли путь (/Users vs /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 для быстрых проверок.