Saltar al contenido principal

Uso de Servicios en la Nube

El uso de servicios bajo demanda como Sauce Labs, Browserstack, TestingBot, LambdaTest o Perfecto con WebdriverIO es bastante simple. Todo lo que necesitas hacer es configurar el user y key de tu servicio en tus opciones.

Opcionalmente, también puedes parametrizar tu prueba configurando capacidades específicas de la nube como build. Si solo quieres ejecutar servicios en la nube en Travis, puedes usar la variable de entorno CI para verificar si estás en Travis y modificar la configuración en consecuencia.

// wdio.conf.js
export let config = {...}
if (process.env.CI) {
config.user = process.env.SAUCE_USERNAME
config.key = process.env.SAUCE_ACCESS_KEY
}

Sauce Labs

Puedes configurar tus pruebas para que se ejecuten de forma remota en Sauce Labs.

El único requisito es establecer el user y key en tu configuración (ya sea exportado por wdio.conf.js o pasado a webdriverio.remote(...)) con tu nombre de usuario y clave de acceso de Sauce Labs.

También puedes pasar cualquier opción de configuración de prueba opcional como clave/valor en las capacidades para cualquier navegador.

Sauce Connect

Si deseas ejecutar pruebas contra un servidor que no es accesible desde Internet (como en localhost), entonces necesitas usar Sauce Connect.

Está fuera del alcance de WebdriverIO soportar esto, por lo que tendrás que iniciarlo por tu cuenta.

Si estás utilizando el testrunner de WDIO, descarga y configura el @wdio/sauce-service en tu wdio.conf.js. Ayuda a ejecutar Sauce Connect y viene con características adicionales que integran mejor tus pruebas en el servicio de Sauce.

Con Travis CI

Sin embargo, Travis CI tiene soporte para iniciar Sauce Connect antes de cada prueba, por lo que seguir sus instrucciones para eso es una opción.

Si lo haces, debes establecer la opción de configuración de prueba tunnel-identifier en las capabilities de cada navegador. Travis establece esto en la variable de entorno TRAVIS_JOB_NUMBER por defecto.

Además, si deseas que Sauce Labs agrupe tus pruebas por número de compilación, puedes establecer el build en TRAVIS_BUILD_NUMBER.

Por último, si estableces name, esto cambia el nombre de esta prueba en Sauce Labs para esta compilación. Si estás utilizando el testrunner de WDIO combinado con el @wdio/sauce-service, WebdriverIO establece automáticamente un nombre adecuado para la prueba.

Ejemplo de capabilities:

browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER

Tiempos de espera

Dado que estás ejecutando tus pruebas de forma remota, puede ser necesario aumentar algunos tiempos de espera.

Puedes cambiar el tiempo de espera de inactividad pasando idle-timeout como una opción de configuración de prueba. Esto controla cuánto tiempo esperará Sauce entre comandos antes de cerrar la conexión.

BrowserStack

WebdriverIO también tiene una integración con Browserstack incorporada.

El único requisito es establecer el user y key en tu configuración (ya sea exportado por wdio.conf.js o pasado a webdriverio.remote(...)) con tu nombre de usuario y clave de acceso de automatización de Browserstack.

También puedes pasar cualquier capacidad soportada opcional como clave/valor en las capacidades para cualquier navegador. Si estableces browserstack.debug en true, grabará una captura de pantalla de la sesión, lo que podría ser útil.

Pruebas locales

Si deseas ejecutar pruebas contra un servidor que no es accesible desde Internet (como en localhost), entonces necesitas usar Pruebas locales.

Está fuera del alcance de WebdriverIO soportar esto, por lo que debes iniciarlo por tu cuenta.

Si usas local, debes establecer browserstack.local en true en tus capacidades.

Si estás utilizando el testrunner de WDIO, descarga y configura el @wdio/browserstack-service en tu wdio.conf.js. Ayuda a ejecutar BrowserStack y viene con características adicionales que integran mejor tus pruebas en el servicio de BrowserStack.

Con Travis CI

Si deseas agregar Pruebas locales en Travis, debes iniciarlo por tu cuenta.

El siguiente script descargará e iniciará en segundo plano. Deberías ejecutar esto en Travis antes de iniciar las pruebas.

wget https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip
unzip BrowserStackLocal-linux-x64.zip
./BrowserStackLocal -v -onlyAutomate -forcelocal $BROWSERSTACK_ACCESS_KEY &
sleep 3

Además, es posible que desees establecer el build en el número de compilación de Travis.

Ejemplo de capabilities:

browserName: 'chrome',
project: 'myApp',
version: '44.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'browserstack.local': 'true',
'browserstack.debug': 'true'

TestingBot

El único requisito es establecer el user y key en tu configuración (ya sea exportado por wdio.conf.js o pasado a webdriverio.remote(...)) con tu nombre de usuario y clave secreta de TestingBot.

También puedes pasar cualquier capacidad soportada opcional como clave/valor en las capacidades para cualquier navegador.

Pruebas locales

Si deseas ejecutar pruebas contra un servidor que no es accesible desde Internet (como en localhost), entonces necesitas usar Pruebas locales. TestingBot proporciona un túnel basado en Java para permitirte probar sitios web no accesibles desde Internet.

Su página de soporte de túnel contiene la información necesaria para ponerlo en marcha.

Si estás utilizando el testrunner de WDIO, descarga y configura el @wdio/testingbot-service en tu wdio.conf.js. Ayuda a ejecutar TestingBot y viene con características adicionales que integran mejor tus pruebas en el servicio de TestingBot.

LambdaTest

La integración con LambdaTest también está incorporada.

El único requisito es establecer el user y key en tu configuración (ya sea exportado por wdio.conf.js o pasado a webdriverio.remote(...)) con tu nombre de usuario y clave de acceso de la cuenta de LambdaTest.

También puedes pasar cualquier capacidad soportada opcional como clave/valor en las capacidades para cualquier navegador. Si estableces visual en true, grabará una captura de pantalla de la sesión, lo que podría ser útil.

Túnel para pruebas locales

Si deseas ejecutar pruebas contra un servidor que no es accesible desde Internet (como en localhost), entonces necesitas usar Pruebas locales.

Está fuera del alcance de WebdriverIO soportar esto, por lo que debes iniciarlo por tu cuenta.

Si usas local, debes establecer tunnel en true en tus capacidades.

Si estás utilizando el testrunner de WDIO, descarga y configura el wdio-lambdatest-service en tu wdio.conf.js. Ayuda a ejecutar LambdaTest y viene con características adicionales que integran mejor tus pruebas en el servicio de LambdaTest.

Con Travis CI

Si deseas agregar Pruebas locales en Travis, debes iniciarlo por tu cuenta.

El siguiente script descargará e iniciará en segundo plano. Deberías ejecutar esto en Travis antes de iniciar las pruebas.

wget http://downloads.lambdatest.com/tunnel/linux/64bit/LT_Linux.zip
unzip LT_Linux.zip
./LT -user $LT_USERNAME -key $LT_ACCESS_KEY -cui &
sleep 3

Además, es posible que desees establecer el build en el número de compilación de Travis.

Ejemplo de capabilities:

platform: 'Windows 10',
browserName: 'chrome',
version: '79.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'tunnel': 'true',
'visual': 'true'

Perfecto

Cuando usas wdio con Perfecto, necesitas crear un token de seguridad para cada usuario y agregarlo en la estructura de capacidades (además de otras capacidades), de la siguiente manera:

export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],

Además, necesitas agregar la configuración de la nube, de la siguiente manera:

  hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",

Welcome! How can I help?

WebdriverIO AI Copilot