← Назад к вопросам

Приведи пример query параметра

1.0 Junior🔥 181 комментариев
#Тестирование API

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Пример Query параметра

В контексте веб-разработки и тестирования, query параметры (или параметры запроса) — это часть URL, которая передает дополнительные данные к серверу для обработки запроса. Они находятся после символа ? в URL и обычно имеют структуру ключ=значение. Если несколько параметров передаются, они разделяются символом &.

Практический пример

Рассмотрим URL поиска товаров в интернет-магазине:

https://example-shop.com/products?category=electronics&sort=price_asc&page=2

В этом URL есть три query параметра:

  • category=electronics — указывает категорию товаров.
  • sort=price_asc — задает порядок сортировки (по возрастанию цены).
  • page=2 — определяет номер страницы для пагинации.

Значение для тестирования (QA)

Для QA Engineer понимание и работа с query параметрами критически важны, потому что они:

  1. Определяют состояние системы: Параметры могут изменять поведение API или веб-страницы (фильтрация, сортировка, пагинация).
  2. Являются точкой входа для тестов: Мы тестируем, как система обрабатывает разные, особенно крайние, значения параметров.
  3. Позволяют воспроизводить сценарии: С помощью URL с параметрами можно точно воспроизвести определенное состояние интерфейса.

Примеры тестовых случаев, связанных с query параметрами

  • Позитивное тестирование:
    *   Проверка, что при `?page=1` возвращаются первые 10 товаров.
    *   Проверка, что при `?sort=price_desc` товары действительно сортируются по убыванию цены.

  • Негативное тестирование и проверка обработки ошибок:
    *   Передача несуществующего значения: `?category=invalid_category` — должен возвращаться код ошибки (например, 400) или пустой список.
    *   Передача некорректного типа данных: `?page=abc` — система должна либо игнорировать параметр, либо возвращать ошибку, но не "падать".
    *   Передача пустого или отсутствующего значения: `?sort=` или просто `?sort`.

  • Тестирование безопасности:
    *   Попытка **SQL-инъекции** через параметр: `?category=electronics' OR '1'='1`.
    *   Попытка передачи слишком длинного значения для **переполнения буфера**.

Пример кода для проверки параметра в автотесте (Python)

import requests

# Базовый URL API
base_url = "https://api.example-shop.com/products"

def test_query_param_page():
    """Тест проверяет корректную работу параметра 'page'."""
    
    # Позитивный тест: валидное значение
    params_valid = {"page": 2}
    response_valid = requests.get(base_url, params=params_valid)
    assert response_valid.status_code == 200
    # Проверяем, что данные на второй странице отличаются от первой
    params_page1 = {"page": 1}
    response_page1 = requests.get(base_url, params=params_page1)
    assert response_valid.json() != response_page1.json()

    # Негативный тест: невалидное значение (строка)
    params_invalid = {"page": "invalid_string"}
    response_invalid = requests.get(base_url, params=params_invalid)
    # Ожидаемое поведение: либо ошибка 400, либо игнорирование параметра (возврат первой страницы)
    if response_invalid.status_code == 400:
        print("Система корректно отбработала невалидный параметр с ошибкой.")
    else:
        assert response_invalid.json() == response_page1.json()
        print("Система игнорировала невалидный параметр.")

# Вызов теста
test_query_param_page()

Ключевые аспекты для тестирования

  • Валидация: Система должна проверять тип, диапазон и наличие обязательных параметров.
  • Стандартизация: Параметры page, limit, sort часто используются в REST API — важно проверять их согласованное поведение.
  • Кодирование: Параметры с пробелами или специальными символами (например, ?query=тест%20цена) должны корректно кодироваться и декодироваться.

Таким образом, query параметр — это не просто часть URL, а важный инструмент управления запросом и объект тестирования, проверка которого включает позитивные и негативные сценарии, безопасность и соответствие спецификации.

Приведи пример query параметра | PrepBro