-
Notifications
You must be signed in to change notification settings - Fork 72
Структура проекта Python
Данная структура проекта предназначена для автоматизации тестирования веб-приложений, мобильных приложений и API.
Ссылки на дипломные проекты с правильной структурой проекта:
https://github.com/Wildips/demoqa_diplome
https://github.com/Wildips/wiki_mobile_project
https://github.com/Wildips/qa_g-rest-api
https://github.com/div50015/diploma-project
https://github.com/o1ra/intertop/tree/main
https://github.com/o1ra/krisha
Ниже представлен пример структуры проекта, название папок и файлов могут отличаться в зависимости от проекта.
my-project-tests/ # корневой каталог проекта(название проекта)(пример litress-project-tests)
│
├── my_project_tests/ # основной каталог модулей(корневой пакет(название должно совпадать с названием проекта, только через подчеркивание))
│ ├── __init__.py # инициализация пакета
│ ├── utils/ # каталог для хелперов(утилит(для построения путей, аттачей и т.д.))
│ │ ├── __init__.py # инициализация пакета
│ │ ├── attach.py # файл с элементами attach(видео, скриншоты и т.д.)
│ │ ├── command.py # файл с командами для запуска тестов( к примеру мобильных(swipe, tap и т.д.))
│ │ └── paths.py # файл для путей к файлам
│ │
│ ├── test_data/ # каталог для тестовых данных
│ │ ├── __init__.py # инициализация пакета
│ │ └── data.py/ # файл с тестовыми данными для тестов
│ │
│ └── models/ # каталог для моделей
│ ├── __init__.py # инициализация пакета
│ ├── app.py # файл для реализации типа шаблона Application Manager для пейдж обжектов
│ └──pages/ # каталог для страниц
│ ├── __init__.py # инициализация пакета
│ ├── registration_page.py # код страницы 1
│ └── authorization_page.py # код страницы 2
или
│ ├── pages/ # каталог для страниц
│ │ ├── __init__.py # инициализация пакета
│ │ ├── ui/ # каталог для UI страниц
│ │ │ ├── __init__.py # инициализация пакета
│ │ │ ├── registration_page.py # код страницы 1
│ │ │ └── authorization_page.py # код страницы 2
│ │ │
│ │ └── mobile/ # каталог для мобильных страниц
│ │ ├── __init__.py # инициализация пакета
│ │ ├── registration_page.py # код страницы 1
│ │ └── authorization_page.py # код страницы 2
│ │
│ └──utils/ # каталог для утилит
│ ├── __init__.py # инициализация пакета
│ ├── requests_helper.py # файл с утилитами для запросов
│ └── sessions.py # файл с утилитами для сессий(BaseSession)
│
├── tests/ # каталог с тестами
│ ├── __init__.py # инициализация пакета
│ ├── api/ # тесты API
│ │ ├── __init__.py # инициализация пакета
│ │ ├── test.py # тесты на api
│ │ └── conftest.py # файл conftest для API тестов
│ │
│ ├── ui/ # тесты UI
│ │ ├── __init__.py # инициализация пакета
│ │ ├── test.py # тесты на UI
│ │ └── conftest.py # файл conftest для UI тестов
│ │
│ └── mobile/ # тести для мобилок
│ ├── __init__.py # инициализация пакета
│ ├── test.py # тесты на мобилки
│ └── conftest.py # файл conftest для мобилок
или
├── tests/ # каталог с тестами
│ ├── __init__.py # инициализация пакета
│ ├──conftest.py # файл conftest для всех тестов
│ ├── api/ # тести API
│ │ ├── __init__.py # инициализация пакета
│ │ └── test.py # тесты на api
│ │
│ ├── ui/ # тесты UI
│ │ ├── __init__.py # инициализация пакета
│ │ └── test.py # тесты на UI
│ │
│ └── mobile/ # тести для мобилок
│ ├── __init__.py # инициализация пакета
│ └── test.py # тесты на мобилки
│
├── config.py # файл с конфигурацией проекта(конфигурации в зависимости от окружения(env-прод, dev и т.д.))
│
├── resources/ # каталог для ресурсов
│ ├── images/ # каталог для изображений
│ │ └── foto.png
│ │
│ ├── videos/ # каталог для видео
│ │ └── video.mp4
│ │
│ └── files/ # каталог для файлов
│ └── file.txt
│
├── schemas/ # каталог для схем API
│ ├── schema1.json # схема API 1 (название должно отображать название схемы)
│ └── schema2.json # схема API 2 (название должно отображать название схемы)
или
├── schemas/ # каталог для схем API
│ ├── __init__.py # инициализация пакета
│ └── project.py # схемы voluptuous api для всего проекта api
│
│
├── docs/ # документация проекта
│
├── .gitignore # файл для игнорирования файлов/директорий в git
├── README.md # описание проекта
├──.env_prod # файл с переменными окружения для продакшн
├──.env_dev # файл с переменными окружения для дев
├── pytest.ini # файлик конфигурации pytest
├── requirements.txt # зависимости проекта
или
├── pyproject.toml/ # файл для управления зависимостями проекта
└── poetry.lock/ # файл для управления зависимостями проекта
✔️ Сайт
✔️ Чат в Telegram
✔️ Канал в Telegarm
Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python
Структура проекта
Github README.md
Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java
Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python