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

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

selenide
Теги: #<Tag:0x00007f7b63117110>

(Sergey) #1

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

На данный момент придумал лишь перед тестом дописать @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


(Vasiliy Rakshin) #2

http://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html#browser


(Sergey) #3

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

public static java.lang.String browser

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


(Vasiliy Rakshin) #4

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


(Sergey) #5

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


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

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


(Sergey) #7

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

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

Configuration.browser = FIREFOX;
@Test
1
2
3


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

  2. Опять же можно программно запускать тесты - http://testng.org/doc/documentation-main.html#running-testng-programmatically
    Установили конфигурацию на нужный браузер - запустили тест. И так в цикле для каждого значения браузера.

  3. Можно указать параметры в самом xml - http://testng.org/doc/documentation-main.html#parameters-testng-xml и передавать их в @BeforeMethod