Автоматизированные тесты для демо-приложения на Python с использованием Selenium, Pytest и Allure.
- Клонируем репозиторий:
git clone <URL вашего репозитория>
cd demo-tests- Создаем виртуальное окружение и активируем его:
python -m venv venv
.\venv\Scripts\Activate.ps1 # PowerShell
# .\venv\Scripts\activate.bat # CMD- Устанавливаем зависимости:
pip install -r requirements.txtЕсли requirements.txt нет, вручную:
pip install pytest selenium allure-pytest
pip install mypy ruff types-requests types-selenium- Запуск всех тестов:
pytest --browser=chrome- Запуск с указанием версии браузера и генерацией Allure-отчета:
pytest --browser=chrome --browser-version=121.0 --alluredir=allure-resultsПараметры
--browserи--browser-versionнастроены вconftest.py.
-
Устанавливаем Allure CLI:
https://docs.qameta.io/allure/#_get_started -
Генерируем и открываем отчет:
allure serve allure-results- Скриншоты при падении теста автоматически сохраняются через фикстуру
pytest_runtest_makereport.
В conftest.py:
if browser_name == "chrome":
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)
elif browser_name == "firefox":
options = webdriver.FirefoxOptions()
driver = webdriver.Firefox(options=options)Можно добавлять опции браузера:
options.add_argument("--headless") # Запуск без GUI
options.add_argument("--window-size=1920,1080")- Mypy — проверка типов:
mypy .- Ruff — проверка стиля и линтинг:
ruff check .
ruff check . --fix # автоисправлениеdef test_login(browser: WebDriver):
browser.get("https://www.saucedemo.com")
login_page = LoginPage(browser)
login_page.login("standard_user", "secret_sauce")
assert browser.current_url.endswith("/inventory.html")Фикстура browser автоматически управляет запуском и закрытием драйвера.
