Introdução
Browserstack é uma plataforma online que permite executar testes cross-browser em paralelo e em escala. Nesta seção, veremos como ela se integra com o Serenity.
Adicionando o plugin Browserstack ao seu projeto
O Serenity vem com um plugin dedicado para BrowserStack que facilita muito a execução dos seus testes nesta plataforma. Para usá-lo, primeiro adicione a dependência serenity-browserstack ao seu projeto. No Maven, ficaria assim:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-browserstack</artifactId>
<version>${serenity.version}</version>
</dependency>
Ou no Gradle:
testImplementation "net.serenity-bdd:serenity-browserstack:${serenityVersion}"
Especificando suas credenciais e URL do grid BrowserStack
Em seguida, você precisará de uma conta BrowserStack.
Você pode adicionar suas credenciais BrowserStack de duas maneiras. A mais simples é definir as seguintes propriedades de sistema:
BROWSERSTACK_USER- Nome de usuário do BrowserStackBROWSERSTACK_KEY- Chave de acesso do BrowserStack
Alternativamente, você pode definir seu nome de usuário e chave de acesso usando as propriedades browserstack.user e browserstack.key respectivamente no seu arquivo serenity.conf:
browserstack.user=myuser
browserstack.key=XXXXXXXX
Configurando o driver BrowserStack
O Serenity interage com o BrowserStack através do driver RemoteDriver. Você pode especificar a URL remota explicitamente, ou deixar a biblioteca serenity-browserstack fazer isso por você. Por exemplo, para configurar a URL explicitamente você poderia usar uma configuração serenity.conf assim:
webdriver {
driver = remote
remote.url =
"https://"${BROWSERSTACK_USER}":"${BROWSERSTACK_KEY}"@hub.browserstack.com/wd/hub"
}
Se a propriedade webdriver.remote.url não estiver definida, o Serenity usará esses valores para construir uma para você se o plugin BrowserStack estiver ativo (veja abaixo).
Definindo Capabilities do BrowserStack
Você pode especificar o sistema operacional e o navegador nos quais deseja executar seus testes personalizando as Selenium Capabilities no seu arquivo serenity.conf. Faça isso na seção "bstack:options" do arquivo serenity.conf, por exemplo:
webdriver {
driver = "remote"
capabilities {
browserName = "Chrome"
#
# Quaisquer opções específicas do BrowserStack vão na seção 'bstack:options'
#
"bstack:options" {
os = "Windows"
osVersion = "11"
browserVersion = "latest"
local = false
resolution = "1920x1200"
seleniumVersion = "4.6.0"
video = true
idleTimeout = 300 // Certifique-se de definir um valor alto se estiver executando testes em paralelo
}
}
}
Se você estiver executando os testes em paralelo, certifique-se de definir o valor de idleTimeout para um número alto (maior que a duração total dos seus testes). Isso evitará que a conexão com o BrowserStack expire antes de ser atualizada com os resultados dos testes.