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

Где прописываются query-параметры?

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

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

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

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

Местонахождение и способы передачи Query-параметров

Query-параметры (параметры запроса, query string) — это часть URL (Uniform Resource Locator), следующая за символом вопросительного знака ? и предназначенная для передачи дополнительных данных на сервер в рамках HTTP-запроса, чаще всего GET-метода. Они представляют собой пары "ключ=значение", разделенные амперсандом &.

Основные места, где прописываются query-параметры:

  1. Непосредственно в URL (адресной строке браузера, ссылке)
    Это самый наглядный способ. Параметры добавляются в конец адреса ресурса.
```
https://example.com/search?q=automation&sort=price&page=2
```
    Здесь:
    *   `q` — ключ параметра со значением `automation`.
    *   `sort` — ключ со значением `price`.
    *   `page` — ключ со значением `2`.

  1. В коде приложения (на стороне клиента)
    При формировании запроса из JavaScript, Python, Java и других языков параметры добавляются программно.
    *   **JavaScript (fetch API)**:
    ```javascript
    const params = new URLSearchParams({ category: 'books', limit: 20 });
    fetch(`https://api.example.com/items?${params}`)
      .then(response => response.json());
    ```
    *   **Python (библиотека requests)**:
    ```python
    import requests
    params = {'user_id': 12345, 'action': 'view'}
    response = requests.get('https://api.example.com/profile', params=params)
    ```
    *   **Java (библиотека HttpClient)**:
    ```java
    URI uri = new URIBuilder("https://api.example.com/data")
        .addParameter("from_date", "2024-01-01")
        .addParameter("format", "json")
        .build();
    HttpRequest request = HttpRequest.newBuilder().uri(uri).GET().build();
    ```

3. В инструментах для тестирования API (Postman, Insomnia, Swagger)

    В интерфейсе этих инструментов есть специальные разделы (вкладки) для удобного ввода query-параметров.
    *   В **Postman**: вкладка "Params" под адресной строкой. Ключи и значения вводятся в таблицу, и URL автоматически формируется с ними.
    *   В **Swagger UI**: рядом с описанием эндпоинта обычно есть поля для ввода параметров, помеченных как `query`.

  1. В HTML-формах с методом GET
    Когда форма (`<form>`) в HTML отправляется с атрибутом `method="GET"`, данные из ее полей (input, select) автоматически преобразуются в query-параметры и добавляются к URL указанному в атрибуте `action`.
```html
<form action="/search" method="GET">
    <input type="text" name="query" value="test">
    <select name="language">
        <option value="ru">Russian</option>
    </select>
    <button type="submit">Искать</button>
</form>
```
    При отправке этой формы браузер выполнит запрос на URL: `/search?query=test&language=ru`.

Важные технические аспекты для QA-инженера:

  • Кодирование (URL Encoding): Специальные символы (пробелы, кириллица, символы &, = и др.) должны быть закодированы. Пробел становится %20 или +, кириллица — последовательностью %D0%9F. Современные библиотеки и браузеры делают это автоматически.
  • Ограничения длины: Теоретического предела в спецификации нет, но практическое ограничение накладывается браузерами (несколько тысяч символов) и серверными конфигурациями. Для передачи больших объемов данных используйте тело запроса (request body), например, в POST или PUT запросах.
  • Видимость и кеширование: Поскольку параметры являются частью URL, они сохраняются в истории браузера, логах сервера и могут кешироваться. Это не подходит для передачи конфиденциальных данных (паролей, токенов).
  • Типы данных: Все значения параметров — это строки. Преобразование в числа, булевы значения и другие типы — задача серверной логики.
  • Валидация: Одни из ключевых объектов тестирования. Необходимо проверять:
    *   Поведение при обязательных и опциональных параметрах.
    *   Обработку некорректных значений (спецсимволы, SQL-инъекции, XSS-векторы).
    *   Поведение при дублировании ключей (часто сервер берет первое или последнее значение).
    *   Чувствительность к регистру в именах ключей.

Понимание того, где и как прописываются query-параметры, критически важно для QA-инженера при тестировании веб-приложений и API, составлении тест-кейсов, воспроизведении багов и работе с сетевыми запросами в DevTools или снифферах.

Где прописываются query-параметры? | PrepBro