Pular para o conteúdo principal

Serviço Browserstack

Um serviço WebdriverIO que gerencia o túnel local e metadados de trabalho para usuários do BrowserStack.

Instalação

A maneira mais fácil é manter o @wdio/browserstack-service como uma devDependency no seu package.json, via:

npm install @wdio/browserstack-service --save-dev

Instruções sobre como instalar o WebdriverIO podem ser encontradas aqui.

Configuração

O WebdriverIO tem suporte ao BrowserStack integrado. Você deve definir user e key no seu arquivo wdio.conf.js. Este plugin de serviço fornece suporte para BrowserStack Tunnel. Defina também browserstackLocal: true para ativar este recurso. O relatório do status da sessão no BrowserStack respeitará a configuração strict das opções do Cucumber.

// wdio.conf.js
export const config = {
// ...
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
},
browserstackLocal: true
}]
],
// ...
};

Opções

Para autorizar no serviço BrowserStack, sua configuração precisa conter as opções user e key.

testObservability

O Test Observability é uma ferramenta avançada de relatórios de testes que fornece insights para melhorar seus testes de automação e ajuda a depurar mais rapidamente. Está habilitado por padrão definindo a flag testObservability como true para todos os usuários do browserstack-service. Você pode desativar isso definindo a flag testObservability como false.

Depois que seus testes terminarem, você pode visitar Test Observability para depurar suas builds com insights adicionais como Análise de Erros Únicos, Detecção Automática de Testes Instáveis e muito mais.

Você pode usar o Test Observability mesmo se não executar seus testes na infraestrutura do BrowserStack. Mesmo que você execute seus testes em um CI, em uma máquina local ou até mesmo em outros provedores de serviços em nuvem, o Test Observability ainda pode gerar relatórios de teste inteligentes e análises avançadas dos seus testes.

Se você quiser usar o Test Observability sem executar seus testes na infraestrutura do BrowserStack, você pode definir sua configuração da seguinte forma:

// wdio.conf.js
export const config = {
// ...
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
}
}]
],
// ...
};

Você pode explorar todos os recursos do Test Observability neste sandbox ou ler mais sobre isso aqui.

browserstackLocal

Defina como true para habilitar o roteamento de conexões da nuvem BrowserStack através do seu computador.

Tipo: Boolean
Padrão: false

forcedStop

Defina como true para matar o processo BrowserStack Local ao completar, sem esperar que o callback de parada do BrowserStack Local seja chamado. Isso é experimental e não deve ser usado por todos. Principalmente necessário como uma solução para este problema.

Tipo: Boolean
Padrão: false

app

Appium defina isso com o caminho do arquivo do aplicativo disponível localmente na sua máquina para usar o aplicativo como aplicativo em teste para sessões do Appium.

Tipo: String ou JsonObject
Padrão: undefined

Lista de valores disponíveis para app:

path

Use o caminho do arquivo do aplicativo disponível localmente como um aplicativo em teste para o Appium.

services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OU
app: {
path: '/path/to/local/app.apk'
}
}]
]

Passe custom_id durante o upload do aplicativo.

services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]

id

Use a URL do aplicativo retornada após o upload do aplicativo para o BrowserStack.

services: [
['browserstack', {
app: 'bs://<app-id>'
// OU
app: {
id: 'bs://<app-id>'
}
}]
]

custom_id

use custom_id de aplicativos já carregados

services: [
['browserstack', {
app: 'custom_id'
// OU
app: {
custom_id: 'custom_id'
}
}]
]

shareable_id

use shareable_id de aplicativos já carregados

services: [
['browserstack', {
app: 'username/custom_id'
// OU
app: {
shareable_id: 'username/custom_id'
}
}]
]

preferScenarioName

Apenas Cucumber. Define o nome da sessão do BrowserStack Automate para o nome do Cenário se apenas um único Cenário for executado. Útil ao executar em paralelo com wdio-cucumber-parallel-execution.

Tipo: Boolean
Padrão: false

sessionNameFormat

Personalize o formato do nome da sessão do BrowserStack Automate.

Tipo: Function
Padrão (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
Padrão (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle

sessionNameOmitTestTitle

Apenas Mocha. Não anexe o título do teste ao nome da sessão do BrowserStack Automate.

Tipo: Boolean
Padrão: false

sessionNamePrependTopLevelSuiteTitle

Apenas Mocha. Precede o título da suíte de nível superior ao nome da sessão do BrowserStack Automate.

Tipo: Boolean
Padrão: false

setSessionName

Define automaticamente o nome da sessão do BrowserStack Automate.

Tipo: Boolean
Padrão: true

setSessionStatus

Define automaticamente o status da sessão do BrowserStack Automate (passou/falhou).

Tipo: Boolean
Padrão: true

buildIdentifier

buildIdentifier é um id único para diferenciar cada execução que é anexado ao buildName. Escolha seu formato de buildIdentifier entre as expressões disponíveis:

  • BUILD_NUMBER: Gera um contador incremental com cada execução
  • DATE_TIME: Gera um timestamp com cada execução. Ex: 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

O Build Identifier suporta o uso de uma ou ambas as expressões junto com quaisquer outros caracteres, permitindo opções de formatação personalizadas.

opts

Opções do BrowserStack Local.

Tipo: Object
Padrão: {}

Lista de modificadores de teste local disponíveis para serem passados como opts:

Local Identifier

Se estiver fazendo várias conexões de teste local simultâneas, defina isso exclusivamente para diferentes processos -

opts = { localIdentifier: "randomstring" };

Verbose Logging

Para habilitar o registro detalhado -

opts = { verbose: "true" };

Nota - Os valores possíveis para o modificador 'verbose' são '1', '2', '3' e 'true'

Force Local

Para rotear todo o tráfego via máquina local (sua) -

opts = { forceLocal: "true" };

Folder Testing

Para testar a pasta local em vez do servidor interno, forneça o caminho para a pasta como valor desta opção -

opts = { f: "/my/awesome/folder" };

Force Start

Para matar outras instâncias do BrowserStack Local em execução -

opts = { force: "true" };

Only Automate

Para desabilitar o teste local para Live e Screenshots, e habilitar apenas o Automate -

opts = { onlyAutomate: "true" };

Proxy

Para usar um proxy para testes locais -

  • proxyHost: Hostname/IP do proxy, as opções restantes do proxy são ignoradas se esta opção estiver ausente
  • proxyPort: Porta para o proxy, o padrão é 3128 quando -proxyHost é usado
  • proxyUser: Nome de usuário para se conectar ao proxy (apenas autenticação básica)
  • proxyPass: Senha para USERNAME, será ignorada se USERNAME estiver vazio ou não especificado
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

Local Proxy

Para usar proxy local em testes locais -

  • localProxyHost: Hostname/IP do proxy, as opções restantes do proxy são ignoradas se esta opção estiver ausente
  • localProxyPort: Porta para o proxy, o padrão é 8081 quando -localProxyHost é usado
  • localProxyUser: Nome de usuário para se conectar ao proxy (apenas autenticação básica)
  • localProxyPass: Senha para USERNAME, será ignorada se USERNAME estiver vazio ou não especificado
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (Proxy Auto-Configuration)

Para usar PAC (Proxy Auto-Configuration) em testes locais -

  • pac-file: Caminho absoluto do arquivo PAC (Proxy Auto-Configuration)
opts = { "pac-file": "<pac_file_abs_path>" };

Binary Path

Por padrão, os wrappers locais do BrowserStack tentam baixar e executar a versão mais recente do binário do BrowserStack em ~/.browserstack ou no diretório de trabalho atual ou na pasta tmp por ordem. Mas você pode substituir isso passando o argumento -binarypath. Caminho para especificar o caminho binário local -

opts = { binarypath: "/path/to/binary" };

Logfile

Para salvar os logs em um arquivo ao executar com o argumento '-v', você pode especificar o caminho do arquivo. Por padrão, os logs são salvos no arquivo local.log no diretório de trabalho atual. Para especificar o caminho para o arquivo onde os logs serão salvos -

opts = { verbose: "true", logFile: "./local.log" };

Para mais informações sobre o WebdriverIO, consulte a página inicial.

Welcome! How can I help?

WebdriverIO AI Copilot