Перейти к содержимому

Фотография

Прогон тестовых наборов под разными ролевыми моделями пользователей

selenium webdriver pytest python

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 vitaly_rev

vitaly_rev

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Виталий


Отправлено 04 мая 2018 - 14:45

Здравствуйте, коллеги!

 

Пытаюсь автоматизировать веб-приложение с помощью Selenium WebDriver + Pytest.

 

Проблема такая: в проекте имеется несколько различных ролевых моделей пользователей (например, админ, модератор, пользователь и тд), которым, соответственно, доступен различный функционал. Авторизация выполняется при инициализации браузера. Однако такая архитектура предполагает прогон теста только под одной ролевой моделью (например, админом), для прогона под другой ролевой моделью (например, модератором) нужно вручную менять данные для авторизации, что в условиях запуска и прогона тестов на CI становится невозможным.

 

С другой стороны, можно было бы выполнять авторизацию (или проверку на то, что авторизован нужный пользователь) в каждом тестовом наборе, но копипастить код также выглядит не очень изящным решением, так как разные фичи бывают доступны разным ролевым моделям (например, и админ, и модератор могут создавать обычного пользователя). Соответственно, какие то тесты должны прогоняться для каких-то отдельных ролей, а какие-то для нескольких ролей сразу.

 

Вот, собственно, и вопрос, подскажите, как можно более толково разграничить прогоны тестов под разными ролями? Выполнять их последовательно или параллельно в разных окнах - особого значения не имеет.

 

Вот реализация авторизации (данные для авторизации берутся из файла):


fixture = None

@pytest.fixture
def driver(request, data_login):
    global fixture
    # проверка браузера и инициализация
    if fixture is None:
        fixture = Application()
    else:
        if not fixture.is_valid():
            fixture = Application()
    # проверка авторизации пользователя и авторизация 
    fixture.session.open_page()
    fixture.session.ensure_login(data_login)
    return fixture 

  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 04 мая 2018 - 20:01

никогда не пользовался, но свято верю, что теги в пайтесте есть.
https://docs.pytest....le/markers.html

 

На каком-то it-subbotnik в СПб была история, как такие тесты делали ЕМНИП на фитнесе.

 

вроде оно https://youtu.be/WYghoE9T4AI


  • 0

#3 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 05 мая 2018 - 08:39

по моему глубокому убеждению, не стоит прогонять все права для каждого типа пользователя которому они доступны (если мы не говорим о системах от которых зависит жизнь).

проверьте все функции под админом, а по остальным ролям проверьте наличие данных функций. Считаю этого достаточным. 


  • 0

#4 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 05 мая 2018 - 14:23

Ну под другими ролями стоит проверять, что они недоступны)
  • 1



Темы с аналогичным тегами selenium, webdriver, pytest, python

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных