9d0fe20f9ffd2754586c3a1f75ab615be88ad8c7
Yandex Disk REST API Automation Tests
Проект автоматизированного тестирования сервиса Яндекс Диск на базе Python, pytest и requests.
Проект разработан в соответствии с техническим заданием и проверяет работу ключевых методов REST API:
- PUT — создание ресурса (папки)
- GET — чтение метаданных ресурса
- POST — публикация ресурса (получение публичной ссылки)
- DELETE — удаление ресурса (очистка диска)
Также включены негативные сценарии (попытка создания дубликата, обращение к несуществующему ресурсу, невалидный токен).
🛠 Стек технологий
- Python 3.10+
- Pytest — тестовый фреймворк, фикстуры, параметризация
- Requests — HTTP-клиент
- Python-dotenv — управление секретами и переменными окружения
- GitHub Actions — CI/CD пайплайн для автоматического прогона тестов
📁 Структура проекта
yandex-disk-api-tests/
├── .github/
│ └── workflows/
│ └── tests.yml # CI/CD пайплайн (GitHub Actions)
├── api/
│ ├── __init__.py
│ └── disk_client.py # API-клиент (обёртка над requests с методами GET, POST, PUT, DELETE)
├── tests/
│ ├── __init__.py
│ ├── conftest.py # Сессионные фикстуры и teardown временных ресурсов
│ └── test_disk_crud.py # Позитивные и негативные тестовые сценарии
├── .env.example # Шаблон переменных окружения
├── .gitignore # Исключения для git
├── pytest.ini # Конфигурация запуска Pytest
├── requirements.txt # Список зависимостей
└── README.md # Документация проекта
🔑 Подготовка и авторизация
По условиям задания запрещено использовать личную учетную запись для получения OAuth-токена.
- Зарегистрируйте отдельный тестовый аккаунт на Яндексе или воспользуйтесь Полигоном API Яндекс Диска.
- Получите OAuth-токен с правами доступа к Яндекс Диску (
cloud_api:disk.read,cloud_api:disk.writeили полный доступ к Диску). - Скопируйте полученный токен.
🚀 Локальный запуск
1. Клонирование репозитория
git clone https://github.com/<your-username>/yandex-disk-api-tests.git
cd yandex-disk-api-tests
2. Создание и активация виртуального окружения
- Linux / macOS:
python3 -m venv .venv source .venv/bin/activate - Windows (PowerShell):
python -m venv .venv .venv\Scripts\Activate.ps1
3. Установка зависимостей
pip install --upgrade pip
pip install -r requirements.txt
4. Настройка переменных окружения
Создайте файл .env на основе примера .env.example:
cp .env.example .env
Откройте файл .env и укажите ваш токен:
YANDEX_DISK_TOKEN=ваш_oauth_токен_здесь
5. Запуск тестов
- Запуск всех тестов с подробным выводом:
pytest - Запуск только CRUD-тестов:
pytest -m crud - Запуск только негативных тестов:
pytest -m negative
⚙️ Настройка CI/CD (GitHub Actions)
В репозитории настроен автоматический запуск тестов при каждом пуше и Pull Request в ветки main / master.
Чтобы тесты выполнялись в GitHub Actions:
- Перейдите в ваш репозиторий на GitHub: Settings -> Secrets and variables -> Actions.
- Нажмите кнопку New repository secret.
- Добавьте секрет:
- Name:
YANDEX_DISK_TOKEN - Value:
<ваш_oauth_токен>
- Name:
- После сохранения секрета тесты будут автоматически запускаться во вкладке Actions.
Languages
Python
100%