Pular para o conteúdo principal

Serviço Sauce

Serviço WebdriverIO que fornece uma melhor integração com o Sauce Labs. Este serviço pode ser usado para:

  • a Nuvem de Máquinas Virtuais do Sauce Labs (Desktop Web/Emulador/Simulador)
  • a Nuvem de Dispositivos Reais do Sauce Labs (iOS e Android)

Ele pode atualizar os metadados do job ('name'*, 'passed', 'tags', 'public', 'build', 'custom-data') e executa o Sauce Connect se desejado.

O que mais este serviço fará por você:

  • Por padrão, o Sauce Service atualizará o 'name' do job quando o job iniciar. Isso lhe dará a opção de atualizar o nome a qualquer momento.
  • Você pode definir um parâmetro setJobName e personalizar o nome do job de acordo com suas capabilities, opções e título da suite
  • O Sauce Service também enviará a pilha de erros de um teste falho para a aba de comandos do Sauce Labs
  • Ele permitirá que você configure e inicie automaticamente o Sauce Connect
  • E ele definirá pontos de contexto na sua lista de comandos para identificar quais comandos foram executados em qual teste

Instalação

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

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

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

Configuração

Para usar o serviço para Máquina Virtual Desktop/Emulador/Simulador e nuvem de Dispositivos Reais, você precisa definir user e key no seu arquivo wdio.conf.js. Ele usará automaticamente o Sauce Labs para executar seus testes de integração. Se você executar seus testes no Sauce Labs, poderá especificar a região onde deseja executar seus testes através da propriedade region. Os códigos curtos disponíveis para regiões são us (padrão) e eu. Essas regiões são usadas para a nuvem VM do Sauce Labs e a Nuvem de Dispositivos Reais do Sauce Labs. Se você não fornecer a região, o padrão será us.

Se você quiser que o WebdriverIO inicie automaticamente um túnel Sauce Connect, você precisa definir sauceConnect: true. Se você quiser mudar o centro de dados para UE, adicione region:'eu', pois o centro de dados dos EUA é definido como padrão.

// wdio.conf.js
export const config = {
// ...
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
region: 'us', // ou 'eu'
services: [
['sauce', {
sauceConnect: true,
sauceConnectOpts: {
// ...
}
}]
],
// ...
};

Se você quiser usar um túnel Sauce Connect existente, só precisa fornecer um tunnelName. Se você estiver usando um túnel compartilhado e não for o usuário que criou o túnel, deve identificar o usuário do Sauce Labs que criou o túnel para poder usá-lo em seu teste. Inclua o tunnelOwner nas capabilities assim:

export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'YourTunnelName',

// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};

Opções do Sauce Service

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

maxErrorStackLength

Este serviço enviará automaticamente a pilha de erros para o Sauce Labs quando um teste falhar. Por padrão, ele enviará apenas as primeiras 5 linhas, mas se necessário, isso pode ser alterado. Esteja ciente de que mais linhas resultarão em mais chamadas WebDriver, o que pode retardar a execução.

Tipo: number
Padrão: 5

sauceConnect

Se true, executa o Sauce Connect e abre uma conexão segura entre uma máquina virtual do Sauce Labs executando seus testes de navegador.

Tipo: Boolean
Padrão: false

sauceConnectOpts

Aplique opções do Sauce Connect (por exemplo, para alterar as configurações de número de porta ou arquivo de log). Veja esta lista para mais informações.

NOTA: Ao especificar as opções, o -- deve ser omitido. Também pode ser transformado em camelCase (por exemplo, shared-tunnel ou sharedTunnel).

Tipo: Object
Padrão: { }

uploadLogs

Se true, esta opção carrega todos os arquivos de log do WebdriverIO para a plataforma Sauce Labs para inspeção adicional. Certifique-se de ter outputDir definido em sua configuração wdio para gravar logs em arquivos, caso contrário, os dados serão transmitidos para stdout e não poderão ser carregados.

Tipo: Boolean
Padrão: true

setJobName

Permite aos usuários definir dinamicamente o nome do job com base em parâmetros do worker, como configuração do WebdriverIO, capabilities usadas e o título original da suite.

Tipo: Function
Padrão: (config, capabilities, suiteTitle) => suiteTitle


Substituindo metadados de nome gerados

O serviço gera automaticamente um nome para cada teste a partir do nome da suite, nome do navegador e outras informações.

Você pode substituir isso fornecendo um valor para a capability name desejada, mas isso terá o efeito colateral de dar a todos os testes o mesmo nome.


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

Welcome! How can I help?

WebdriverIO AI Copilot