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

Приведи пример тестирования DELETE

1️⃣ Как кратко ответить

Тестирование DELETE-запроса включает проверку успешного удаления ресурса, валидацию корректного HTTP-статуса (обычно 200 OK или 204 No Content), проверку отсутствия ресурса после удаления и тестирование граничных случаев, таких как попытка удаления несуществующего ресурса.

2️⃣ Подробное объяснение темы

DELETE-запросы используются в API для удаления ресурсов. Тестирование DELETE-запросов важно для обеспечения корректного поведения системы при удалении данных. Рассмотрим, как это делается на примере RESTful API.

Зачем нужно тестировать DELETE-запросы

  1. Проверка корректности удаления: Убедиться, что ресурс действительно удален из системы.
  2. Проверка статуса ответа: Убедиться, что сервер возвращает правильный HTTP-статус.
  3. Проверка безопасности: Убедиться, что удаление возможно только для авторизованных пользователей.
  4. Проверка граничных случаев: Убедиться, что система корректно обрабатывает попытки удаления несуществующих ресурсов.

Пример тестирования DELETE-запроса

Предположим, у нас есть API для управления списком задач. Мы хотим протестировать DELETE-запрос для удаления задачи.

Шаги тестирования

  1. Создание тестовой задачи: Сначала создаем задачу, чтобы было что удалять.
  2. Удаление задачи: Отправляем DELETE-запрос для удаления созданной задачи.
  3. Проверка статуса ответа: Убедимся, что сервер возвращает статус 200 OK или 204 No Content.
  4. Проверка отсутствия задачи: Попробуем получить задачу и убедимся, что она больше не существует.
  5. Тестирование граничных случаев: Попробуем удалить несуществующую задачу и проверим, что сервер возвращает корректный статус ошибки, например, 404 Not Found.

Пример кода на Python с использованием библиотеки requests

import requests
​
# URL API
base_url = "http://example.com/api/tasks"
​
# 1. Создание тестовой задачи
create_response = requests.post(base_url, json={"title": "Test Task"})
task_id = create_response.json().get("id")
​
# 2. Удаление задачи
delete_response = requests.delete(f"{base_url}/{task_id}")
​
# 3. Проверка статуса ответа
assert delete_response.status_code in [200, 204], "Удаление задачи не удалось"
​
# 4. Проверка отсутствия задачи
get_response = requests.get(f"{base_url}/{task_id}")
assert get_response.status_code == 404, "Задача все еще существует после удаления"
​
# 5. Тестирование граничных случаев
non_existent_delete_response = requests.delete(f"{base_url}/non-existent-id")
assert non_existent_delete_response.status_code == 404, "Удаление несуществующей задачи не вернуло 404"
  • Импорт библиотеки requests: Используется для отправки HTTP-запросов.
  • Определение базового URL: Указывает на API, с которым будем работать.
  • Создание задачи: Отправляем POST-запрос для создания новой задачи и получаем её id.
  • Удаление задачи: Отправляем DELETE-запрос по URL задачи.
  • Проверка статуса ответа: Убеждаемся, что статус ответа 200 или 204, что указывает на успешное удаление.
  • Проверка отсутствия задачи: Отправляем GET-запрос для проверки, что задача больше не существует.
  • Тестирование граничных случаев: Пытаемся удалить несуществующую задачу и проверяем, что возвращается статус 404.

Тестирование DELETE-запросов помогает убедиться, что система корректно обрабатывает операции удаления, что важно для поддержания целостности данных и безопасности приложения.

Тема: HTTP, REST, SOAP, WebSocket и API
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки