Приходилось ли тестировать REST API, отправляя HTTP-запросы?

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

Ответ

Да, тестирование REST API — стандартная часть моей работы. Для этого использовал как инструменты вроде Postman, так и отправку запросов непосредственно из кода.

Пример тестирования API на Python с библиотекой requests:

import requests

# 1. Отправка GET-запроса и проверка статуса
response = requests.get('https://api.example.com/users/1')
assert response.status_code == 200, f'Expected 200, got {response.status_code}'

# 2. Проверка структуры и данных JSON-ответа
data = response.json()
assert 'id' in data
assert data['name'] == 'John Doe'

# 3. Отправка POST-запроса с телом
new_user = {'name': 'Alice', 'email': 'alice@example.com'}
post_response = requests.post('https://api.example.com/users', json=new_user)
assert post_response.status_code == 201

Что проверял при тестировании API:

  • Коды ответов HTTP: Корректность возвращаемых статусов (200, 201, 400, 404, 500).
  • Структура данных: Соответствие ответа ожидаемой JSON-схеме.
  • Валидация данных: Корректность значений в ответе (типы данных, граничные значения).
  • Обработка ошибок: Информативность сообщений об ошибках при невалидных запросах.
  • Заголовки (headers): Наличие и корректность важных заголовков (Content-Type, Cache-Control).
  • Цепочки запросов: Сценарии, где выходные данные одного запроса (например, id созданного объекта) используются в следующем.