Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
HTTP-методы, которыми я пользовался
В своей практике QA инженера активно использовал все основные HTTP-методы для тестирования API. Расскажу подробно о каждом.
GET
Определение: Получение данных с сервера без изменения состояния.
Использование в тестировании:
- Получение информации о пользователе: GET /api/v1/users/{id}
- Список товаров: GET /api/v1/products?page=1&limit=10
- Проверка статуса сервера: GET /api/v1/health
- Получение конфигурации: GET /api/v1/config
Практический пример:
GET /api/v1/users/123
Ответ:
{
"id": 123,
"name": "John Doe",
"email": "john@example.com"
}
POST
Определение: Создание нового ресурса на сервере.
Использование в тестировании:
- Создание нового пользователя: POST /api/v1/users
- Авторизация: POST /api/v1/auth/login
- Добавление товара в корзину: POST /api/v1/cart/items
- Создание заказа: POST /api/v1/orders
Практический пример:
POST /api/v1/users
Content-Type: application/json
{
"name": "Jane Doe",
"email": "jane@example.com",
"password": "securePass123"
}
Ответ (201 Created):
{
"id": 456,
"name": "Jane Doe",
"email": "jane@example.com"
}
PUT
Определение: Полная замена существующего ресурса.
Использование в тестировании:
- Обновление профиля: PUT /api/v1/users/123
- Изменение всех данных товара: PUT /api/v1/products/456
- Обновление статуса заказа: PUT /api/v1/orders/789
Практический пример:
PUT /api/v1/users/123
Content-Type: application/json
{
"name": "John Updated",
"email": "john.new@example.com",
"phone": "+1234567890"
}
Ответ (200 OK):
{
"id": 123,
"name": "John Updated",
"email": "john.new@example.com",
"phone": "+1234567890"
}
PATCH
Определение: Частичное обновление ресурса (только изменяемые поля).
Использование в тестировании:
- Изменение только имени: PATCH /api/v1/users/123
- Обновление цены товара: PATCH /api/v1/products/456
- Изменение одного поля заказа: PATCH /api/v1/orders/789
Практический пример:
PATCH /api/v1/users/123
Content-Type: application/json
{
"name": "John Another Update"
}
Ответ (200 OK):
{
"id": 123,
"name": "John Another Update",
"email": "john.new@example.com",
"phone": "+1234567890"
}
DELETE
Определение: Удаление ресурса со сервера.
Использование в тестировании:
- Удаление пользователя: DELETE /api/v1/users/123
- Удаление товара: DELETE /api/v1/products/456
- Очистка корзины: DELETE /api/v1/cart
- Отмена заказа: DELETE /api/v1/orders/789
Практический пример:
DELETE /api/v1/users/123
Ответ (204 No Content) или (200 OK):
{
"message": "User deleted successfully"
}
HEAD
Определение: Как GET, но без тела ответа. Только заголовки.
Использование в тестировании:
- Проверка наличия ресурса: HEAD /api/v1/users/123
- Проверка доступности эндпоинта: HEAD /api/v1/health
- Получение информации без скачивания тела
OPTIONS
Определение: Получение информации о допустимых методах для ресурса.
Использование в тестировании:
- Проверка CORS: OPTIONS /api/v1/users
- Получение информации о поддерживаемых методах
Практический пример:
OPTIONS /api/v1/users
Ответ (200 OK):
Allow: GET, POST, OPTIONS
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Практический опыт использования
Инструменты
Postman:
- Основной инструмент для ручного тестирования HTTP методов
- Создание и организация коллекций запросов
- Pre-request scripts и tests
- Экспорт в код (curl, Python, JavaScript)
curl:
- Командная строка для быстрого тестирования
- Автоматизация в скриптах
- Интеграция в CI/CD
Python requests:
import requests
# GET
response = requests.get('https://api.example.com/users/123')
# POST
data = {"name": "John", "email": "john@example.com"}
response = requests.post('https://api.example.com/users', json=data)
# PUT
response = requests.put('https://api.example.com/users/123', json=data)
# PATCH
response = requests.patch('https://api.example.com/users/123', json={"name": "Updated"})
# DELETE
response = requests.delete('https://api.example.com/users/123')
REST Assured (Java):
- Given-When-Then синтаксис
- Валидация ответов
- Интеграция с тестовыми фреймворками
Сложные сценарии
Последовательные запросы:
- POST для создания, затем GET для проверки, потом DELETE для очистки
Авторизация:
- POST /login для получения токена
- Использование токена в Authorization header для остальных запросов
Обработка ошибок:
- Проверка 400 (Bad Request) для неправильных данных
- Проверка 401 (Unauthorized) для отсутствия авторизации
- Проверка 404 (Not Found) для удалённого ресурса
- Проверка 500 (Internal Server Error) для ошибок сервера
Вывод
Освоение HTTP методов — ключевой навык для QA инженера. Это основа API тестирования и даёт понимание того, как приложение взаимодействует с сервером.