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

Организация автоматизированного тестирования
онлайн, начало 14 декабря
Комплексная система подготовки тестировщиков по программе ISTQB FL
онлайн, начало 12 декабря
Школа тест-менеджеров v. 2.0
онлайн, начало 12 декабря
Тестирование веб-приложений 2.0
онлайн, начало 14 декабря
Фотография

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

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


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

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

 

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

 

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


  • 0

#3 BadMF

BadMF

    Специалист

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

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

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

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


  • 0

#4 Vasiliy

Vasiliy

    Гуру

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

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

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


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




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

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

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

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