Привет.Подскажите пожалуйста, а как запускать тесты в разных браузерах, если у вас JUnit 5?
В TestNg все просто, в suite указать параметр
<parameter name="browser" value="Chrome"></parameter>
и все готово, а толковой инфы по JUnit, не могу найти(
Привет.Подскажите пожалуйста, а как запускать тесты в разных браузерах, если у вас JUnit 5?
В TestNg все просто, в suite указать параметр
<parameter name="browser" value="Chrome"></parameter>
и все готово, а толковой инфы по JUnit, не могу найти(
Раз используете Селенид - то используйте настройку browser
не понимаю, как мне это поможет?Я хочу сначала прогнать тесты в одном браузере, а затем в другом.
Использовать системную переменную, например -Dselenide.browser=chrome
я понимаю, ну я же не могу туда вбить 2 браузера? Тоесть, мне надо сначало запустить тесты в хроме, а потом изменить команду и запустить в фаерфоксе. А как сделать автоматически?После тестов в хроме, запускался фарерфокс?
А где и как вы запускаете тесты? В принципе да - прогоняются тесты с одной настройкой, потом с другой.
ну вот, а testng в suite можна задать
<parameter name="browser" value="Chrome"></parameter>
Ну например, если мне нужно запускать тесты в jenkins.Мне менять команду постоянно?
Если вы передаёте параметр в xml для тестов, то вы как-то эти параметры обрабатываете, замените то место на просмотр системного параметра (JUnit 5 User Guide). В Дженкинсе если запускаете, там в задаче можно сделать выбор параметра из нескольких вариантов браузера.
Приветствую! Являюсь начинающим тестировщиком, пытался найти решение этого вопроса и получилось осуществить параллельный запуск тестов на разных браузерах. Опишу подробно)
Тесты выполняются в контейнере с помощью Selenoid.
Все тесты делаются параметризированными.
Пример теста:
@ParameterizedTest
@MethodSource("browserArguments")
public void isWomenCategorySubmenuDisplayedTest(String browser, String version) {
setCapabilitiesByArguments(browser, version);
assertTrue(topMenuBar.isWomenCategorySubmenuDisplayed());
В классе фикстуре создаем метод, который будет хранить и передавать необходимые данные в тестовый метод (в нашем случае название браузера и его версия):
static Stream<Arguments> browserArguments() {
return Stream.of(
arguments("chrome", "91.0"),
arguments("firefox", "90.0")
);
}
Как вы видите, в тесте вызывается метод setCapabilitiesByArguments(browser, version), в который передаются аргументы, вот тело этого метода:
public void setCapabilitiesByArguments(String browserName, String browserVersion) {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("browserName", browserName);
capabilities.setCapability("browserVersion", browserVersion);
capabilities.setCapability("enableVNC", true);
Configuration.browser = browserName;
Configuration.browserCapabilities = capabilities;
open(baseUrl);
while(!title().equals("My Store")) {
refresh();
}
}
Его задача проста, перед каждым запуском браузера менять его конфигурацию.
Следовательно, сначала запустится тест на хроме, а затем произойдет запуск на фоксе и так для каждого теста).
Если нужно подгружать данные о браузерах из property файла, то метод browserArguments() будет выглядеть так:
static Stream<Arguments> browserArguments() throws IOException {
Properties properties = new Properties();
properties.load(new FileInputStream(propertyFileDirectory+"browsers.properties"));
return properties.entrySet().stream().map((entry -> arguments(entry.getKey(), entry.getValue())));
}
Вариант, возможно, неаккуратный, но вполне рабочий.
Весь код у меня на гите: