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

Школа тест-менеджеров v. 2.0
онлайн, начало 26 сентября
Программирование на C# для тестировщиков
онлайн, начало 28 сентября
Тестирование производительности (JMeter)
онлайн, начало 28 сентября
SQL для тестировщиков
онлайн, начало 1 октября
Фотография

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

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 164 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


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

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

 

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

 

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


  • 0

#3 BadMF

BadMF

    Специалист

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

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

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

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


  • 0

#4 Vasiliy

Vasiliy

    Гуру

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

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

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


Selenium 2.0: стартовый уровень
онлайн, начало 9 ноября
Программирование на Java для тестировщиков
онлайн, начало 12 октября
Автоматизация функционального тестирования
онлайн, начало 5 октября
Selenium WebDriver: полное руководство
онлайн, начало 19 октября




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

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

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

Яндекс.Метрика
Реклама на портале