Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Ошибка при паралельном тестровании на сервере.

remote
pytest
xvfb
python
selenium
Теги: #<Tag:0x00007f7b620ebbb0> #<Tag:0x00007f7b620eba48> #<Tag:0x00007f7b620eb868> #<Tag:0x00007f7b620eb6d8> #<Tag:0x00007f7b620eb598>

(Philipp Lebedev) #1

Настраиваю рабочую среду на сервере Ubuntu для удаленного тестированя при помощи Python 3.6 (pytest) и Selenium webdriver.

При выпленения тестов “один за другим” проблем не возникает. Запкскаю при помощи утилиты xvfb и pyVirtualDisplay:

py.test Cclinic/TrackerDashboard/regression/tests/test_LoginPage.py --alluredir Output/Cclinic/Allure/Data

Запуск дисплея включаю в настройки “setUp”, пример кода:

from selenium import webdriver
from pyvirtualdisplay import Display


class EnviromentSetup(unittest.TestCase):
   
    def setUp(self):
        self.display = Display(visible=0, size=(1680, 1050))
        self.display.start()
        self.driver = webdriver.Chrome()
        
    def tearDown(self):
        if self.driver != None:
            self.driver.close()
            self.driver.quit()
        if self.display != None:
            self.display.stop()

Но когда запускаю паралельное тестироване:

py.test Cclinic/TrackerDashboard/regression/tests/test_LoginPage.py -n 3 --alluredir Output/Cclinic/Allure/Data

Получаю ошибку:
Allure report:

no such session
(Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-112-generic x86_64)

Терминал:

E selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
E from tab crashed
E (Session info: chrome=64.0.3282.167)
E (Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-112-generic x86_64) │

/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException

Версии ОС и софта следующие:

  • Ubuntu server
  • Python 3.6
  • Selenium webdriver
  • Pytest-xdist
  • xvfb
  • pyVirtualDisplay

Подскадите как исправить ситуацию? Как запускать паралельное тестирование в этом случае?

Что-то мне подсказывается что я не правильно pyVirtualDisplay использую, потому что когда я запускаю 3 теста сразу, то один обрабатывается, а остальные все падают с выше указанной ошибкой.

Подскажите в чем моя ошибка.


(Fuji F) #2

Как вариант эти дисплеи стартуют на одном порту может?


(Philipp Lebedev) #3

А не подскажешь как их на разные порты определить?