Какие фреймворки и библиотеки Python вы использовали для тестирования API?

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

Ответ

Для тестирования API на Python чаще всего используются:

  • pytest — основной фреймворк для организации тестов. Ценится за простоту, фикстуры и мощную параметризацию.
  • requests — стандартная библиотека для отправки HTTP-запросов. Позволяет легко формировать запросы и проверять ответы.
  • pytest-html / pytest-allure — для генерации наглядных отчетов.

Пример теста API с использованием pytest и requests:

import pytest
import requests

# Использование фикстуры pytest для базового URL
@pytest.fixture
def base_url():
    return "https://api.example.com"

# Параметризованный тест для проверки разных пользователей
def test_get_user_by_id(base_url):
    user_id = 1
    response = requests.get(f"{base_url}/users/{user_id}")

    assert response.status_code == 200, f"Ожидался код 200, получен {response.status_code}"

    user_data = response.json()
    assert user_data["id"] == user_id
    assert "email" in user_data  # Проверка наличия обязательного поля

Для контрактного тестирования и работы со спецификациями может применяться OpenAPI (Swagger) и библиотеки для его валидации.