Группа тестов в разных браузерах, Selenide

День добрый.
Можете помочь советом? Пытаюсь написать группу тестов, которые автоматически будут проверятся в разных браузерах (например: Хром, Фаерфокс, Опера, Сафари).

На данный момент придумал лишь перед тестом дописать @RepeatedTest, а в импортируемом файле написал следующую конфигурацию:
@BeforeAll
public static void start(){
Configuration.browser = CHROME;
}

@AfterEach
public void closeWebDriver(){
WebDriverRunner.closeWebDriver();
repeat_firefox();
}

public void repeat_firefox(){
Configuration.browser = FIREFOX;
Configuration.headless = true;
Configuration.timeout = 10000;
}

Но так я могу проверить лишь в Хроме и Фаерфоксе. Как сделать правильно? Перезапускать группу тестов в разных браузерах? В требуемом количестве браузеров, в требуемой последовательности? Чтобы вся группа целиком в одном браузере, потом в другом, или один тест во всех браузерах, затем следующий тест?

MacOS Х, IDEA, Maven, Selenide

Спасибо.
А что мне это дает? Как это применить? Как из строчки

public static java.lang.String browser

сделать метод на выполнение тестов разными браузерами?

При запуске тестов указывать в командной строке какой браузер использовать. Как - я вам дал ссылку.
Запустить несколько раз для разных браузеров. Т.е. в коде вам не надо указывать что-либо связанное с браузером какой запускать.

1 лайк

Спасибо, хорошо.
А есть ли вариант написать какой-то метод, где вместо браузера будет какая-то переменная, у которой будут подставляться значения: хром, опера, и т д.?

        Configuration.browser = System.getProperty("selenide.browser", "chrome");
        // "chrome", "firefox", "legacy_firefox", "ie", "htmlunit", "opera", "safari", "edge"

И при запуске тестов указываете нужный браузер в -Dselenide.browser=firefox

1 лайк

Спасибо, но все же я пытаюсь автоматизировать процесс полностью.
Перефразирую вопрос: надо один раз написать тело теста, но выполнять с условиями:
пройти тест браузер хром;
пройти тест браузер фаерфокс;
пройти тест браузер опера;

Один раз нажимаю кнопку запуска и компутер все делает сам.
Есть вариант просто продублировать группы тестов и перед каждой копией прописывать свои условия:
Configuration.browser = CHROME;
@Test
1
2
3

Configuration.browser = FIREFOX;
@Test
1
2
3

  1. Так создайте батник, в котором вы запускаете
    тесты в хроме
    тесты в фф
    тесты в лалалал
    и у вас всё запустится в один клик.

  2. Опять же можно программно запускать тесты - TestNG
    Установили конфигурацию на нужный браузер - запустили тест. И так в цикле для каждого значения браузера.

  3. Можно указать параметры в самом xml - TestNG и передавать их в @BeforeMethod

2 лайка