Какой у вас опыт работы с Python в контексте тестирования?

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

Ответ

Использую Python как основной язык для автоматизации тестирования. Опыт включает:

  • Написание автотестов: Использование фреймворков pytest и unittest.
  • Веб-автоматизация: Работа с Selenium WebDriver через webdriver-manager и selenium.
  • API-тестирование: Создание скриптов с библиотекой requests, валидация ответов с помощью JSON Schema и pydantic.
  • Работа с данными: Использование pandas для анализа логов и результатов тестирования.
  • Интеграция в CI/CD: Настройка запуска тестов в Jenkins/GitLab CI, генерация отчётов в Allure.

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

import pytest
import requests
from pydantic import BaseModel, ValidationError

# Модель для валидации ответа
class User(BaseModel):
    id: int
    name: str
    email: str

def test_get_user_by_id():
    url = "https://api.example.com/users/1"
    response = requests.get(url)

    # Проверка HTTP-статуса
    assert response.status_code == 200

    # Валидация структуры и типов данных ответа через Pydantic
    try:
        user = User(**response.json())
        assert user.id == 1
        assert "@" in user.email
    except ValidationError as e:
        pytest.fail(f"Ответ API не соответствует ожидаемой схеме: {e}")