Ответ
Query-параметры (параметры строки запроса) — это пары «ключ=значение», добавляемые в URL после знака ? для передачи данных серверу в HTTP-запросе. Несколько параметров разделяются символом &. Они используются для фильтрации, сортировки, пагинации и других операций без изменения пути ресурса.
Пример URL с query-параметрами:
https://api.example.com/users?name=John&age=30&sort=name_asc
Здесь:
name=John— фильтрация по имени.age=30— фильтрация по возрасту.sort=name_asc— сортировка по имени по возрастанию.
Особенности с точки зрения тестирования:
- Видимость: Параметры видны в адресной строке и логах, поэтому нельзя использовать для передачи чувствительных данных (паролей, токенов).
- Ограничения: Существуют ограничения по длине URL (зависит от браузера и сервера).
- Кодирование: Специальные символы (пробел, кириллица) должны быть закодированы (например, пробел →
%20).
Пример тестирования в автотестах (Python + requests):
import requests
# Тест на корректную фильтрацию
params = {"role": "admin", "active": "true"}
response = requests.get("https://api.example.com/users", params=params)
assert response.status_code == 200
data = response.json()
# Проверяем, что все возвращенные пользователи имеют роль 'admin' и статус 'active'
for user in data['users']:
assert user['role'] == 'admin'
assert user['is_active'] is True
# Тест на обработку некорректных параметров
response = requests.get("https://api.example.com/users", params={"size": "invalid_string"})
# Ожидаем 400 Bad Request или корректную обработку ошибки по спецификации API
assert response.status_code == 400
При тестировании API важно проверять:
- Валидацию параметров (типы данных, обязательные/опциональные).
- Поведение при отсутствии параметров.
- Сочетание нескольких параметров.
- Кодирование и экранирование специальных символов.