Saltar al contenido principal

Servicio de Browserstack

Un servicio de WebdriverIO que gestiona el túnel local y los metadatos de trabajos para usuarios de BrowserStack.

Instalación

La forma más sencilla es mantener @wdio/browserstack-service como una devDependency en tu package.json, vía:

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

Las instrucciones sobre cómo instalar WebdriverIO se pueden encontrar aquí.

Configuración

WebdriverIO tiene soporte para BrowserStack integrado. Debes configurar user y key en tu archivo wdio.conf.js. Este plugin de servicio proporciona soporte para BrowserStack Tunnel. Establece browserstackLocal: true también para activar esta característica. El reporte del estado de la sesión en BrowserStack respetará la configuración strict de las opciones de 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
}]
],
// ...
};

Opciones

Para autorizar el servicio de BrowserStack, tu configuración necesita contener las opciones user y key.

testObservability

Test Observability es una herramienta avanzada de informes de pruebas que proporciona información para mejorar tus pruebas de automatización y te ayuda a depurar más rápido. Está habilitada por defecto estableciendo la bandera testObservability​ como true para todos los usuarios del servicio de browserstack. Puedes deshabilitarla configurando la bandera testObservability​ a false.

Una vez que tus pruebas terminen de ejecutarse, puedes visitar Test Observability para depurar tus compilaciones con información adicional como Análisis de Errores Únicos, Detección Automática de Pruebas Inestables y más.

Puedes usar Test Observability incluso si no ejecutas tus pruebas en la infraestructura de BrowserStack. Incluso si ejecutas tus pruebas en un CI, una máquina local o incluso en otros proveedores de servicios en la nube, Test Observability aún puede generar informes de pruebas inteligentes y análisis avanzados de tus pruebas.

Si quieres usar Test Observability sin ejecutar tus pruebas en la infraestructura de BrowserStack, puedes configurar tu configuración de la siguiente manera:

// 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"
}
}]
],
// ...
};

Puedes explorar todas las características de Test Observability en este sandbox o leer más sobre ello aquí.

browserstackLocal

Configúralo como true para habilitar el enrutamiento de conexiones desde la nube de BrowserStack a través de tu computadora.

Tipo: Boolean
Predeterminado: false

forcedStop

Configúralo como true para matar el proceso BrowserStack Local al completarse, sin esperar a que se llame al callback de detención de BrowserStack Local. Esto es experimental y no debe ser utilizado por todos. Principalmente necesario como una solución para este problema.

Tipo: Boolean
Predeterminado: false

app

Appium configura esto con la ruta del archivo de la aplicación disponible localmente en tu máquina para usar la aplicación como aplicación bajo prueba para sesiones de Appium.

Tipo: String o JsonObject
Predeterminado: undefined

Lista de valores disponibles para app:

path

Utiliza la ruta del archivo de la aplicación disponible localmente como aplicación bajo prueba para Appium.

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

Pasa custom_id durante la carga de la aplicación.

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

id

Utiliza la URL de la aplicación devuelta después de cargar la aplicación a BrowserStack.

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

custom_id

usa custom_id de aplicaciones ya cargadas

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

shareable_id

usa shareable_id de aplicaciones ya cargadas

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

preferScenarioName

Solo para Cucumber. Establece el nombre de la sesión de BrowserStack Automate como el nombre del Escenario si solo se ejecutó un único Escenario. Útil cuando se ejecuta en paralelo con wdio-cucumber-parallel-execution.

Tipo: Boolean
Predeterminado: false

sessionNameFormat

Personaliza el formato del nombre de la sesión de BrowserStack Automate.

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

sessionNameOmitTestTitle

Solo para Mocha. No añade el título de la prueba al nombre de la sesión de BrowserStack Automate.

Tipo: Boolean
Predeterminado: false

sessionNamePrependTopLevelSuiteTitle

Solo para Mocha. Antepone el título de la suite de nivel superior al nombre de la sesión de BrowserStack Automate.

Tipo: Boolean
Predeterminado: false

setSessionName

Establece automáticamente el nombre de la sesión de BrowserStack Automate.

Tipo: Boolean
Predeterminado: true

setSessionStatus

Establece automáticamente el estado de la sesión de BrowserStack Automate (aprobado/fallido).

Tipo: Boolean
Predeterminado: true

buildIdentifier

buildIdentifier es un identificador único para diferenciar cada ejecución que se adjunta a buildName. Elige tu formato de buildIdentifier entre las expresiones disponibles:

  • BUILD_NUMBER: Genera un contador incremental con cada ejecución
  • DATE_TIME: Genera una marca de tiempo con cada ejecución. Ej. 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

El identificador de compilación admite el uso de una o ambas expresiones junto con cualquier otro carácter, lo que permite opciones de formato personalizadas.

opts

Opciones de BrowserStack Local.

Tipo: Object
Predeterminado: {}

Lista de modificadores de pruebas locales disponibles para pasar como opts:

Identificador Local

Si realizas múltiples conexiones de pruebas locales simultáneas, configúralo de forma única para diferentes procesos -

opts = { localIdentifier: "randomstring" };

Registro Detallado

Para habilitar el registro detallado -

opts = { verbose: "true" };

Nota - Los valores posibles para el modificador 'verbose' son '1', '2', '3' y 'true'

Forzar Local

Para enrutar todo el tráfico a través de la máquina local (tu máquina) -

opts = { forceLocal: "true" };

Prueba de Carpetas

Para probar carpetas locales en lugar del servidor interno, proporciona la ruta a la carpeta como valor de esta opción -

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

Inicio Forzado

Para matar otras instancias de BrowserStack Local en ejecución -

opts = { force: "true" };

Solo Automate

Para desactivar las pruebas locales para Live y Screenshots, y habilitar solo Automate -

opts = { onlyAutomate: "true" };

Proxy

Para usar un proxy para pruebas locales -

  • proxyHost: Hostname/IP del proxy, el resto de opciones de proxy se ignoran si esta opción está ausente
  • proxyPort: Puerto para el proxy, por defecto es 3128 cuando se usa -proxyHost
  • proxyUser: Nombre de usuario para conectarse al proxy (solo autenticación básica)
  • proxyPass: Contraseña para USERNAME, se ignorará si USERNAME está vacío o no especificado
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

Proxy Local

Para usar proxy local en pruebas locales -

  • localProxyHost: Hostname/IP del proxy, el resto de opciones de proxy se ignoran si esta opción está ausente
  • localProxyPort: Puerto para el proxy, por defecto es 8081 cuando se usa -localProxyHost
  • localProxyUser: Nombre de usuario para conectarse al proxy (solo autenticación básica)
  • localProxyPass: Contraseña para USERNAME, se ignorará si USERNAME está vacío o no especificado
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (Configuración Automática de Proxy)

Para usar PAC (Configuración Automática de Proxy) en pruebas locales -

  • pac-file: Ruta absoluta del archivo PAC (Configuración Automática de Proxy)
opts = { "pac-file": "<pac_file_abs_path>" };

Ruta del Binario

Por defecto, los wrappers locales de BrowserStack intentan descargar y ejecutar la última versión del binario de BrowserStack en ~/.browserstack o el directorio de trabajo actual o la carpeta tmp por orden. Pero puedes anular esto pasando el argumento -binarypath. Ruta para especificar la ruta del binario local -

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

Archivo de Registro

Para guardar los registros en el archivo mientras se ejecuta con el argumento '-v', puedes especificar la ruta del archivo. Por defecto, los registros se guardan en el archivo local.log en el directorio de trabajo actual. Para especificar la ruta al archivo donde se guardarán los registros -

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

Para más información sobre WebdriverIO, visita la página principal.

Welcome! How can I help?

WebdriverIO AI Copilot