Este é uma projeto de exemplo que visa fazer a integração de upload do app e execução de testes automáticos no BrowserStack que é uma plataforma de emulação de devices
Atenção: Essa integração se refere a upload de apps e execução de testes através da plataforma BrowserStack utilizando o Gradle como forma automatizada do processo.
Após fazer login no BrowserStack, acesse a documentação de integração com o Gradle para obter as chaves de acesso. Documentação Neste link só iremos precisar mesmo das chaves de acesso que estão localizadas na categoria “Setting up“
Tendo acesso à essas informações, seguimos para documentação real de integração que pode ser acessada pelo GitHub neste projeto browserstack/browserstack-gradle-plugin.
Esta documentação descreve bem o processo de configuração, então é só seguir os passos, porém estarei colocando aqui também para ficar registrado.
- Abra seu projeto e acesse o build.gradle do projeto.
- Dentro dele temos que implementar os seguintes códigos.
O “maven”, e a dependência do BrowserStack.
Este exemplo abaixo é somente a parte para a integração com o BrowserStack, você provavelmente irá ter mais código dentro do seu arquivo, então é necessário que você analise e mescle essas informações.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.browserstack.gradle:browserstack-gradle-plugin:3.0.3"
}
}
Neste momento iremos criar um arquivo de configuração, em caso de execução de testes ele será responsável pela criação do emulador que irá rodar os testes do seu app.
- Entre no modo de exibição de arquivos do projeto.
- Na raiz do seu projeto crie um arquivo “json“ para configuração, pode ser qualquer nome, mas estarei usando como referência o seguinte nome “browserstack.config.json“
Esse arquivo deve conter os dados abaixo, porém você pode ajusta-lo conforme sua necessidade.
Caso necessário, ao lado segue a lista de devices aceitos. Lista de devices
{
"devices": [
"Google Pixel 2"
],
"deviceLogs": true,
"networkLogs": true,
"project": "Teste BrowserStack",
"shards": {
"numberOfShards": 3
}
}
- Abra o build.gradle do app.
Neste arquivo temos que adicionar a referência para o plugin e implementar a configuração para a integração. - No início do arquivo adicione a referência do plugin, que pode ter várias formas dependendo da versão da sua aplicação, as mais comuns são:
plugins {
id 'com.browserstack.gradle'
}
Ou
apply plugin: "com.browserstack.gradle"
Então verifique como está no seu arquivo e adicione.
- Em seguida, podemos adicionar em qualquer local do arquivo, desde que esteja fora de qualquer objeto do gradle. Adicione o seguinte objeto de configuração.
browserStackConfig {
username = "<seu_user_name>"
accessKey = "<sua_access_key>"
configFilePath = '<local_arquivo_json_de_configuracao>'
//Exemplo: Se você colocou o arquivo na raiz do projeto como comentado anteriormente,
//e utilizou o mesmo nome de arquivo, a propriedade "configFilePath" pode ser dessa forma.
//configFilePath = 'browserstack.config.json'
}
- Primeiramente, selecione a “build variant” que você quer utilizar.
- Na sequência expanda o menu do gradle e clique em executar tarefa do gradle.
- Na janela que abriu iremos rodar o seguinte comando, onde trocaremos o “${BuildVariantName}“ pelo nome de sua build variant.
gradle clean upload${BuildVariantName}ToBrowserstackAppLive
Para o caso de exemplo estou substituindo pela variante “debug“, então meu comando ficaria dessa forma.
gradle clean uploaddebugToBrowserstackAppLive
- Feito isso é só dar um “Enter“ e o projeto irá executar a build e em seguida o upload automático para o BrowserStack - App Live.
Após a primeira execução, essa configuração irá aparecer na caixa de seleção de execução de configuração do grade.
Lembre-se que se for executar o app localmente, essa configuração deve ser trocada para “App“
Após o processo de build e upload, o app pode ser encontrado dentro da aba “App Live“ do BrowserStack, dentro do menu “Uploaded Apps“
- Segue o mesmo formato do upload do app, porém ao invés do comando de “upload”, vamos utilizar o comando de “execute”
gradle clean execute${BuildVariantName}TestsOnBrowserstack
Novamente temos que substituir o “${BuildVariantName}“ pelo nome da nossa variante de build.
Dessa forma o BrowserStack irá rodar os testes criados no seu app e irá colocar o resultado de seus testes dentro da aba “App Automate“ lá no BrowserStack