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

Использую 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 - #2 от пользователя Jonny - вот эту тему читал, но не понял как в чем именно проблема и как ее решили.

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

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

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

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

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

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

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

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

2 лайка
  1. Я балда, действительно был не установлен хром драйвер

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

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

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

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);

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

1 лайк