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

Thucydides - запуск тестов в различных браузерах


(heartwilltell) #1

Использую Thucydides, уже написано определенное количество тестов. До этого мне хватало запусках этих тестов в Firefox. Теперь есть требования запускать тесты в различных браузерах.

У меня возникает ряд вопросов:

  1. Как настроить запуск тестов для выполнения в различных браузерах, желательно что бы оно выполнялось параллельно

Я делал mvn integration-test thucydides:aggregate -Dwebdriver.driver=chrome и у меня происходит ошибка:

Failed tests: testSomeTest(BasicTest.BuySomeProductTest): net.thucydides.core.webdriver.UnsupportedDriverException: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver

Дописывал @Managed(uniqueSession = true, driver="chrome") - те же ошибки

При этом если выполняю просто mvn integration-test thucydides:aggregate - все тесты прекрасно запускаются и проходят в firefox.
Я так понимаю что он не может стартовать драйвер хрома

Невозможность запуска тестов под разными браузерами с помощью Thucydides - вот эту тему читал, но не понял как в чем именно проблема и как ее решили.

Отсюда рождается второй вопрос:

  1. Как решить эту проблему и запускать все тесты в другом браузере чере maven и через IDE

  2. Есть ряд специфических тестов которые должны выполнятся только в хроме, при этом использовать его экстеншены. Для того что бы запустить хром с эктеншенами нужно создавать профиль с этими экстеншенами?

  3. Как отлаживать одиночные тесты запуская их в разных браузерах? Использовать анотацию @WithDriver("firefox") ?


(Aleksey) #2
  1. делаете правильно, у вас скорее всего не установлен хромдрайвер - как установить гугл вам подскажет :smile:

  2. установить и настроить хромдрайвер, запускать так как вы и делаете - с использованием ключа “webdriver.driver”

  3. не уверен, что получится - для указания профайла для файрфокса Thucydides предоставляет возможность (webdriver.firefox.profile), а вот для хрома - нет. Как вариант, создавайте самостоятельно интанс вебдрайвера и подсовывайте его в Thucydides, но это несколько сложнее.

  4. да, как вариант


(heartwilltell) #3
  1. Я балда, действительно был не установлен хром драйвер

Как запустить тест 1 раз что бы один и тот же тест выполнился паралельно во всех браузерах?


(Aleksey) #4

Одновременно? Не думаю, что это возможно средствами Thucydides.
Но конечно ничего вам не мешает запустить просто три отдельных теста параллельно (например стартонуть три разных мейвен-билда, указав разные браузера), но не совсем понимаю смысл такой затеи :smile:


(heartwilltell) #5

Нашел немного информации о старте хрома с экстеншенами:


http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/chrome/ChromeOptions.html

Не совсем понимаю куда в структуре фукудида подключать это
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);


(Антон) #6

Можно использовать grid, хотя если используется Jenkins то лучше grid plugin в нем и использовать мультиджобы.