Skip to content

Repository files navigation

🚀 JSONPlaceholder API Test Automation

Python Version Tests License

Полноценный фреймворк для автоматизированного тестирования REST API сервиса JSONPlaceholder с использованием Python, pytest и Allure reporting.

📋 Содержание

✨ Возможности

  • ✅ Полное покрытие тестами 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 для локального просмотра отчетов

Шаг 1: Клонирование репозитория

git clone https://github.com/thehokim/test_task.git
cd test_task

Шаг 2: Создание виртуального окружения

Windows:

python -m venv venv
venv\Scripts\activate

Linux/Mac:

python3 -m venv venv
source venv/bin/activate

Шаг 3: Установка зависимостей

pip install -r requirements.txt

Шаг 4: (Опционально) Установка Allure CLI

Windows (через Scoop):

scoop install allure

Mac (через Homebrew):

brew install allure

Linux:

sudo apt-add-repository ppa:qameta/allure
sudo apt-get update 
sudo apt-get install allure

🧪 Запуск тестов

Базовый запуск всех тестов

pytest tests/

Запуск с подробным выводом

pytest tests/ -v

Запуск только smoke тестов

pytest tests/ -m smoke

Запуск только позитивных сценариев

pytest tests/ -m positive

Запуск конкретного файла с тестами

pytest tests/test_posts.py

Запуск конкретного теста

pytest tests/test_posts.py::TestGetPosts::test_get_all_posts

Параллельное выполнение (4 потока)

pytest tests/ -n 4

Запуск с генерацией Allure отчета

pytest tests/ --alluredir=allure-results

📊 Allure отчеты

Генерация и просмотр отчета

Шаг 1: Запустите тесты с генерацией результатов

pytest tests/ --alluredir=allure-results

Шаг 2: Сгенерируйте HTML отчет

allure generate allure-results -o allure-report --clean

Шаг 3: Откройте отчет в браузере

allure open allure-report

Что содержит Allure отчет?

  • 📈 Overview - общая статистика выполнения тестов
  • 📊 Categories - категоризация по типам ошибок
  • 🧪 Suites - группировка тестов по файлам
  • 📉 Graphs - графики и диаграммы
  • Timeline - временная шкала выполнения
  • 🔍 Behaviors - группировка по features и stories
  • 📦 Packages - структура пакетов

🔄 CI/CD Pipeline

Проект включает настроенный GitHub Actions workflow, который автоматически:

Триггеры

  • ✅ Push в ветки main, master, develop
  • ✅ Создание Pull Request
  • ✅ Ручной запуск (workflow_dispatch)

Этапы Pipeline

  1. Setup Environment

    • Установка Python (матрица: 3.9, 3.10, 3.11)
    • Кэширование pip зависимостей
    • Установка requirements
  2. Run Tests

    • Smoke тесты (быстрая проверка)
    • Полный набор тестов
    • Генерация Allure результатов
  3. Generate Reports

    • Создание Allure HTML отчета
    • Сохранение артефактов
  4. Publish

    • Публикация отчета на GitHub Pages
    • Доступ по URL: https://thehokim.github.io/test_task/
  5. Notify

    • Уведомление о результатах

Просмотр результатов CI/CD

  1. Откройте вкладку Actions в вашем GitHub репозитории
  2. Выберите нужный workflow run
  3. Скачайте артефакты или просмотрите отчет на GitHub Pages





About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages