Какие инструменты и методы используются для отправки HTTP-запросов?

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

Ответ

Отправка HTTP-запросов — базовая операция в тестировании API, веб-разработке и автоматизации. Инструменты выбираются в зависимости от задачи.

Категория Инструмент/Метод Пример использования
Ручное тестирование Postman, Insomnia Быстрая проверка эндпоинтов, создание коллекций.
Командная строка cURL Автоматизация в скриптах, CI/CD пайплайны.
Программирование Библиотеки (Python requests, JS axios/fetch) Автоматизация тестов, интеграция с кодом.
Браузер DevTools (Network tab) Анализ запросов фронтенд-приложения.
Автотесты Фреймворки (RestAssured, Karate) Создание поддерживаемых API-тестов.

Примеры кода:

# cURL: GET-запрос с заголовками
curl -X GET 'https://api.example.com/v1/users' 
     -H 'Authorization: Bearer token123'
# Python requests: POST-запрос с JSON телом
import requests

response = requests.post(
    'https://api.example.com/v1/login',
    json={'username': 'test', 'password': 'secret'},
    headers={'Content-Type': 'application/json'}
)
print(response.status_code)
print(response.json())
// JavaScript fetch: асинхронный GET-запрос
fetch('https://api.example.com/v1/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));