Знаешь ли Python

«Знаешь ли Python» — вопрос из категории Python, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я активно использую Python для автоматизации тестирования. Это мой основной инструмент для написания скриптов, API- и UI-тестов. Мой стек и опыт включают:

  • Фреймворки для тестирования: pytest (основной выбор за фикстуры, параметризацию и плагины), unittest.
  • API-тестирование: Работа с библиотеками requests, httpx. Пишу тесты для REST и GraphQL API, проверяю статус-коды, схемы ответов (использую jsonschema) и бизнес-логику.
  • UI-автоматизация: Опыт с Selenium WebDriver и Playwright для сквозного (E2E) тестирования веб-приложений. Использую Page Object Model для поддержки кода.
  • Работа с данными: Использую pandas для анализа логов или тестовых данных, SQLAlchemy для прямых проверок в БД в интеграционных тестах.
  • Дополнительные инструменты: Allure или pytest-html для отчетов, Faker для генерации тестовых данных, venv/poetry для управления зависимостями.

Пример API-теста с использованием pytest и проверкой схемы:

import pytest
import requests
from jsonschema import validate

schema = {
    "type": "object",
    "properties": {
        "id": {"type": "integer"},
        "title": {"type": "string"},
    },
    "required": ["id", "title"]
}

@pytest.mark.api
def test_get_product_schema():
    response = requests.get("https://api.example.com/products/1")
    assert response.status_code == 200
    product_data = response.json()
    validate(instance=product_data, schema=schema)  # Валидация структуры ответа
    assert product_data["id"] == 1