У меня есть стека браузеров, работающего с фреймворком автоматизации, который я не настроил, в то время как мои локальные тесты (веб-сайт, который я тестирую, все еще находится в разработке и, следовательно, не на DNS), работают на стеках браузеров в среде / конфигурации, используемойстек браузеров постоянно меняется.
Он всегда запускает версию Chrome, иногда 72, иногда 49, 69 и т. д., то же самое с ОС, иногда Windows 10, 7, 8, xp, а иногда и случайная версияOSX тоже!
Я устал смотреть на страницу браузерного стека о спокойствии, используя и модифицируя примеры оттуда, а также примеры git hub в моем serenity.properties/BrowserStackSerenityTest.java и класс im, запускающий тест из, нобез удачиЯ несколько часов сейчас настраивал и изменял эти три файла, чтобы получить некоторое постоянство, и не знаю, что еще делать
Я все еще довольно неопытен в Java и автоматизации и хотел бы перейти к исправлениюи хороший стек тестов, прежде чем пытаться настроить запущенные тесты и параллель в браузере:
My serenity.properties
webdriver.driver = provided
webdriver.provided.type = mydriver
webdriver.provided.mydriver = com.browserstack.BrowserStackSerenityDriver
serenity.driver.capabilities = mydriver
browserstack.user=MyUserName
browserstack.key=MyKey
browserstack.server=hub-cloud.browserstack.com
browserstack.local=true
browserstack.build=serenity-browserstack
browserstack.project=MyProjectname
browserstack.debug=true
environment.local.name=TestRunner
environment.local.browser=chrome
environment.local.browser_version=72
environment.local.browserstack.local=true
browserstack.os = Windows
browserstack.os_version = 10
serenity.issue.tracker.url =
serenity.project.name = Common UI testing using Serenity and Cucumber
serenity.restart.browser.for.each = never
serenity.browser.maximized = true
serenity.dry.run=false
serenity.test.root=net.thucydides.showcase.cucumber.junit
serenity.outputDirectory = target/site/reports
webdriver.timeouts.implicitlywait = 1
webdriver.wait.for.timeout = 0
serenity.take.screenshots=BEFORE_AND_AFTER_EACH_STEP
Мой TestRunner.java, на котором я запускаю тесты из
import com.browserstack.BrowserStackSerenityTest;
import cucumber.api.CucumberOptions;
import net.serenitybdd.cucumber.CucumberWithSerenity;
import org.junit.runner.RunWith;
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(features = "src/test/resources/features", tags = "@fixing")
public class TestRunner extends BrowserStackSerenityTest {
// @Managed(driver = "Chrome", uniqueSession = true)
// WebDriver driver;
Мой BrowserStackSerenityTest.java
package com.browserstack;
import com.browserstack.local.*;
import net.thucydides.core.util.EnvironmentVariables;
import net.thucydides.core.util.SystemEnvironmentVariables;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import java.util.HashMap;
import java.util.Map;
public class BrowserStackSerenityTest {
static Local bsLocal;
@BeforeClass
public static void setUp() throws Exception {
EnvironmentVariables environmentVariables = SystemEnvironmentVariables.createEnvironmentVariables();
String accessKey = System.getenv("BROWSERSTACK_ACCESS_KEY");
if(accessKey == null) {
accessKey = (String) environmentVariables.getProperty("browserstack.key");
}
String environment = System.getProperty("environment");
String key = "browserstack.local";
boolean is_local = environmentVariables.getProperty(key) != null && environmentVariables.getProperty(key).equals("true");
if(environment != null && !is_local){
key = "environment."+environment+".browserstack.local";
is_local = environmentVariables.getProperty(key) != null && environmentVariables.getProperty(key).equals("true");
}
if(is_local){
bsLocal = new Local();
Map<String, String> bsLocalArgs = new HashMap<String, String>();
bsLocalArgs.put("key", accessKey);
bsLocal.start(bsLocalArgs);
}
}
@AfterClass
public static void tearDown() throws Exception {
if(bsLocal != null) {
bsLocal.stop();
}
}
}