Полноценный фреймворк для автоматизированного тестирования REST API сервиса JSONPlaceholder с использованием Python, pytest и Allure reporting.
- Возможности
- Структура проекта
- Технологический стек
- Установка
- Запуск тестов
- Allure отчеты
- CI/CD Pipeline
- Примеры
- ✅ Полное покрытие тестами API эндпоинтов (Posts, Users, Comments)
- ✅ Валидация JSON схем через Pydantic
- ✅ Позитивные и негативные сценарии тестирования
- ✅ Параметризованные тесты
- ✅ Подробное логирование
- ✅ Allure отчеты с историей выполнения
- ✅ CI/CD интеграция (GitHub Actions)
- ✅ Поддержка параллельного выполнения тестов
- ✅ Retry механизм для нестабильных запросов
- ✅ Гибкая конфигурация через environment variables
project/
├── api_client/ # API клиент
│ ├── __init__.py
│ └── client.py # Базовый класс и JSONPlaceholder клиент
│
├── models/ # Pydantic модели
│ ├── __init__.py
│ └── schemas.py # Схемы для валидации
│
├── config/ # Конфигурация
│ ├── __init__.py
│ └── config.py # Настройки API и тестов
│
├── tests/ # Тесты
│ ├── __init__.py
│ ├── conftest.py # Pytest fixtures
│ ├── test_posts.py # Тесты для Posts API
│ ├── test_users.py # Тесты для Users API
│ └── test_comments.py # Тесты для Comments API
│
├── .github/
│ └── workflows/
│ └── tests.yml # CI/CD pipeline
│
├── logs/ # Логи тестов (создается автоматически)
├── allure-results/ # Результаты Allure (создается автоматически)
├── allure-report/ # HTML отчет Allure (создается автоматически)
│
├── pytest.ini # Конфигурация pytest
├── requirements.txt # Python зависимости
└── README.md # Документация
| Технология | Версия | Назначение |
|---|---|---|
| Python | 3.9+ | Язык программирования |
| pytest | 7.4.3 | Фреймворк для тестирования |
| requests | 2.31.0 | HTTP клиент |
| pydantic | 2.5.2 | Валидация данных |
| allure-pytest | 2.13.2 | Генерация отчетов |
| pytest-xdist | 3.5.0 | Параллельное выполнение |
- Python 3.9 или выше
- pip (обычно идет вместе с Python)
- Git
- (Опционально) Allure CLI для локального просмотра отчетов
git clone https://github.com/thehokim/test_task.git
cd test_taskWindows:
python -m venv venv
venv\Scripts\activateLinux/Mac:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtWindows (через Scoop):
scoop install allureMac (через Homebrew):
brew install allureLinux:
sudo apt-add-repository ppa:qameta/allure
sudo apt-get update
sudo apt-get install allurepytest tests/pytest tests/ -vpytest tests/ -m smokepytest tests/ -m positivepytest tests/test_posts.pypytest tests/test_posts.py::TestGetPosts::test_get_all_postspytest tests/ -n 4pytest tests/ --alluredir=allure-resultsШаг 1: Запустите тесты с генерацией результатов
pytest tests/ --alluredir=allure-resultsШаг 2: Сгенерируйте HTML отчет
allure generate allure-results -o allure-report --cleanШаг 3: Откройте отчет в браузере
allure open allure-report- 📈 Overview - общая статистика выполнения тестов
- 📊 Categories - категоризация по типам ошибок
- 🧪 Suites - группировка тестов по файлам
- 📉 Graphs - графики и диаграммы
- ⏱ Timeline - временная шкала выполнения
- 🔍 Behaviors - группировка по features и stories
- 📦 Packages - структура пакетов
Проект включает настроенный GitHub Actions workflow, который автоматически:
- ✅ Push в ветки
main,master,develop - ✅ Создание Pull Request
- ✅ Ручной запуск (workflow_dispatch)
-
Setup Environment
- Установка Python (матрица: 3.9, 3.10, 3.11)
- Кэширование pip зависимостей
- Установка requirements
-
Run Tests
- Smoke тесты (быстрая проверка)
- Полный набор тестов
- Генерация Allure результатов
-
Generate Reports
- Создание Allure HTML отчета
- Сохранение артефактов
-
Publish
- Публикация отчета на GitHub Pages
- Доступ по URL:
https://thehokim.github.io/test_task/
-
Notify
- Уведомление о результатах
- Откройте вкладку Actions в вашем GitHub репозитории
- Выберите нужный workflow run
- Скачайте артефакты или просмотрите отчет на GitHub Pages