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