An example of a framework based on Selenium and pytest. Suitable for functional testing of web applications through UI and API. В фреймворке:
- реализован page object pattern как BasePage класс фреймворка от которого наследуются классы страниц тестируемого сервиса
- web-driver вынесен в отдельный класс и реализован как синглтон с использованием метакласса
- в conftest.py есть пример создания и применения фикстур с разным скоупом
- в фреймворке запросы к API вынесены в отдельный менеджер и отделены от частной реализации API тестируемого сервиса
- управление стандартными элементами UI вынесено в отдельные классы фреймворка. Классы инкапсулируют всю логику поведения элемента
Для установки:
- Скачать репозиторий
- Создать виртуальное окружение python3, файл requirements.txt в корневой директории
- python -m venv venv
- venv/Scripts/activate
- pip install -r requirements.txt
Файлы веб драйвера находятся в папке drivers. В зависимости от установленной версии бразера и операционной системы, может потребоваться скачать другую версию веб драйверов.
Выбор браузера для запуска тестов, base_url тестируемого сервиса и переменные путей задаются в config.py