Ответ
В тестировании REST API я постоянно работаю со стандартными HTTP-методами, которые соответствуют операциям CRUD:
- GET: Запрос данных от сервера. Использую для проверки получения ресурсов (например, списка пользователей). Должен быть безопасным (не менять состояние) и идемпотентным.
- POST: Отправка данных для создания нового ресурса. Тестирую создание сущностей, валидацию входящих данных и коды ответа (201 Created).
- PUT: Полное обновление существующего ресурса. Проверяю замену всех полей объекта.
- PATCH: Частичное обновление ресурса. Тестирую сценарии, когда нужно изменить только одно-два поля.
- DELETE: Удаление ресурса. Проверяю, что ресурс действительно удаляется и возвращается корректный статус (204 No Content).
- HEAD, OPTIONS: Использую реже, в основном для проверки метаданных или CORS-заголовков.
Пример теста на Python с библиотекой requests:
import requests
# Тестирование GET-запроса
response = requests.get('https://api.example.com/v1/users/123')
assert response.status_code == 200
assert response.json()['id'] == 123
# Тестирование POST-запроса с передачей тела
new_user = {'name': 'Alice', 'email': 'alice@example.com'}
response = requests.post('https://api.example.com/v1/users', json=new_user)
assert response.status_code == 201
assert 'id' in response.json()
При тестировании важно проверять не только успешные сценарии, но и обработку ошибок (4xx, 5xx), а также соблюдение принципов идемпотентности и безопасности методов.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶