Селеновая сетка.Параллельное выполнение в различных браузерах - PullRequest
0 голосов
/ 23 апреля 2019

Теперь я использую это для запуска тестов. Я передаю в командной строке имя браузера и количество потоков помощи. pytest-xdist

def __init__(self, browser):
    desired_capabilites = None
    comand_executor = "http://localhost:4444/wd/hub"

    if browser == "chrome":
        desired_capabilites =  {
                "browserName": "chrome",
                "maxInstances": 5
            }
    elif browser == "firefox":
        desired_capabilites = {
            "browserName": "firefox",
            "maxInstances": 5
        }

    self.driver = webdriver.Remote(
        command_executor=comand_executor,
        desired_capabilities=desired_capabilites)

Но у этого метода, как мне кажется, есть несколько недостатков:

  • Перед запуском всегда запускайте * selenium-server * (java -jar selenium-standalone-server.jar) - чтобы протестировать все в разных браузерах
  • Я должен выполнить тесты дважды (один для chrome, второй для ff)

Можно ли как-нибудь автоматизировать запуск сервера?

А как параллельно запускать тесты в разных браузерах?

Отличным вариантом будет создание двух узлов и одновременное выполнение тестов на обоих. Или создайте несколько разных браузеров в одном узле и уже запускайте их. Но я не знаю как. Заранее благодарим за помощь

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете справиться с этим двумя способами.

  1. Получить облачный экземпляр или сервер, на котором вы можете загрузить сетку селена, и использовать URL-адрес сервера для доступа к нему.Так что вам не нужно сокращать сервер после завершения тестирования.

  2. Если вы хотите автоматизировать весь процесс установки и сокращения, вы можете использовать Jenkins и настроить Jenkins таким образомспособ, которым вы можете настроить всю сетку перед запуском тестов и уменьшить ее после того, как с ней покончено.

Если вы используете огурец, вы можете пометить тестовые случаи как @Chromeи @FF, и когда вы выполняете удаленный браузер, используйте, если script.tagName.equals (Chrome) запускается на узле или запускает удаленный драйвер с возможностями Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...