Skip to content

Example of completing a test task using Python+pytest+selenium+allure

Notifications You must be signed in to change notification settings

WhyFaust/demo-tests

Repository files navigation

Demo-Tests: Pytest + Selenium + Allure

Автоматизированные тесты для демо-приложения на Python с использованием Selenium, Pytest и Allure.


📦 Установка окружения

  1. Клонируем репозиторий:
git clone <URL вашего репозитория>
cd demo-tests
  1. Создаем виртуальное окружение и активируем его:
python -m venv venv
.\venv\Scripts\Activate.ps1   # PowerShell
# .\venv\Scripts\activate.bat # CMD
  1. Устанавливаем зависимости:
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-отчет

  1. Устанавливаем Allure CLI:
    https://docs.qameta.io/allure/#_get_started

  2. Генерируем и открываем отчет:

allure serve allure-results
  1. Скриншоты при падении теста автоматически сохраняются через фикстуру 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 автоматически управляет запуском и закрытием драйвера.


🖼️ Скриншот

Скриншот тестов

About

Example of completing a test task using Python+pytest+selenium+allure

Resources

Stars

Watchers

Forks

Languages