Краткий обзор используемых библиотек (просто, чтобы ознакомиться)
Погружение в проект
Установка и настройка среды
Python и PyCharm мы уже устанавливали в 01.03 - Подготовка окружения — здесь дособираем окружение под автотесты.
1. Установка менеджера пакетов pip
Что такое pip?
Note
pip — это менеджер пакетов для Python. Он позволяет устанавливать и управлять библиотеками и зависимостями из репозитория PyPI.
Проверьте установку Python и pip:
Откройте терминал или командную строку и введите:
python --versionpip --version
Ожидаемый результат:
Python 3.x.xpip x.x.x from ...
2. Создание виртуального окружения (Оно уже у вас должно быть создано)
Что такое виртуальное окружение?
Note
Виртуальное окружение в Python позволяет изолировать зависимости проекта. Это полезно, чтобы разные проекты не мешали друг другу, если они используют разные версии библиотек.
Шаги создания виртуального окружения:
Note
1️⃣
Создание виртуального окружения:
В терминале или командной строке перейдите в папку вашего проекта и выполните:
python -m venv venv
venv — название виртуального окружения. Его можно изменить на любое.
Note
2️⃣
Активация виртуального окружения:
Windows:
venv\Scripts\activate
Linux/Mac:
source venv/bin/activate
Note
3️⃣
Проверка активации:
Активированное окружение отображается в скобках перед путём:
(venv) C:\project_folder>
Note
4️⃣
Деактивация виртуального окружения:
deactivate
3. Установка библиотек
Что такое библиотеки и зачем они нужны?
Note
Библиотеки Python — это готовый код, который можно использовать в своём проекте. Например:
requests — библиотека для отправки HTTP-запросов.
pytest-html — генерирует отчёты в формате HTML.
pytest-xdist — позволяет выполнять тесты параллельно для ускорения.
python-dotenv — позволяет работать с переменными окружения.
pytest — библиотека для написания и запуска тестов.
Шаги по установке:
Активируйте виртуальное окружение:
Убедитесь, что ваше окружение активировано.
Если всё работает правильно, вы увидите зелёный статус успешного выполнения теста.
Итоги:
Note
На этом этапе:
Python и pip установлены.
Создано и активировано виртуальное окружение.
Установлены библиотеки: pytest, requests, pytest-html, pytest-xdist, python-dotenv.
Библиотеки сохранены в requirements.txt.
Выполнен первый простой тест для проверки окружения.
Теперь вы готовы к следующему шагу — написанию автотестов! 🚀
Настройка структуры проекта
Настройка структуры проекта для автотестов на Pytest
Note
Организованная структура проекта позволяет писать тесты чисто, понятно и легко поддерживать. Давайте разберём основные шаги и элементы настройки:
1. Создание структуры папок
Структура автотестов обычно включает несколько основных папок:
project/│├── tests/ # Папка для тестов│ ├── test_api/ # Подпапка для API-тестов│ ├── test_ui/ # Подпапка для UI-тестов│ └── conftest.py # Файл с общими фикстурами│├── utils/ # Вспомогательные функции и модули│ └── helpers.py # Утилиты для обработки данных, запросов и пр.│├── data/ # Тестовые данные│ ├── test_data.json # JSON-файлы с тестовыми данными│ └── config.env # Переменные окружения│├── pytest.ini # Конфигурационный файл Pytest├── requirements.txt # Список зависимостей└── README.md # Описание проекта
Примерно так:
Назначение папок:
tests: Здесь хранятся все тесты. Тесты можно группировать по типам (например, API, UI, интеграционные).
utils: Содержит вспомогательные функции (например, общие функции для отправки запросов или обработки ответов).
data: Хранит тестовые данные в разных форматах (JSON, CSV) и конфигурации (например, файлы .env с переменными окружения).
conftest.py: Файл для общих фикстур и настроек, которые будут использоваться в тестах.
pytest.ini: Основной файл конфигурации для Pytest, где можно настроить поведение запуска тестов.
2. Создание pytest.ini
Note
Файл pytest.ini используется для настройки параметров тестов и их запуска.
Основные параметры pytest.ini:
;[pytest];addopts = -v -s --html=report.html --tb=short # Дополнительные опции запуска;python_files = test_*.py # Шаблон файлов с тестами;python_classes = Test* # Шаблон классов с тестами;python_functions = test_* # Шаблон функций с тестами;markers =; smoke: быстрые проверки; regression: регрессионные тесты; api: API-тесты; ui: UI-тесты
Warning
НО, ВНИМАНИЕ оставьте его пока пустым или закомментите (в будущем разберемся)
3. Запуск тестов
Note
Вы так же можете это делать через графический интерфейс
Запуск всех тестов:
pytest
Генерация HTML-отчета:
pytest --html=report.html
Краткий обзор используемых библиотек (просто, чтобы ознакомиться)
Для успешной работы с автотестами на Python для бекенда, мы будем использовать несколько ключевых библиотек. Каждая из них имеет своё назначение и помогает сделать код тестов чистым, читаемым и поддерживаемым.
1. requests — работа с HTTP-запросами
Назначение:
Note
Библиотека requests — это популярная и удобная библиотека для отправки HTTP-запросов и обработки ответов от серверов.
Основные возможности:
Отправка GET, POST, PUT, DELETE и других HTTP-запросов.
Обработка ответов сервера.
Работа с параметрами URL, заголовками и телом запроса.
Поддержка авторизации и сессий.
Пример использования:
import requests# Отправляем GET-запросresponse = requests.get("https://jsonplaceholder.typicode.com/posts/1")# Проверяем статус ответаprint("Статус-код:", response.status_code)# Выводим тело ответаprint("Ответ:", response.json())
2. pytest — написание и запуск тестов
Назначение:
Note
pytest — это популярный фреймворк для тестирования на Python. Он позволяет писать простые и мощные тесты с минимальным количеством кода.
Основные возможности:
Автоматический поиск тестов по имени и папкам.
Поддержка фикстур для инициализации данных перед тестами.
Маркеры для группировки тестов (smoke, regression и др.).
Генерация подробных отчётов.
Простая интеграция с другими библиотеками и CI/CD.
Библиотека dotenv позволяет загружать переменные окружения из файла .env. Это полезно для хранения конфиденциальных данных, таких как API-ключи, пароли и настройки окружения.
Основные возможности:
Загрузка переменных окружения из файла .env.
Упрощение работы с конфигурацией для разных окружений (dev, test, prod).