Servicio LambdaTest
wdio-lambdatest-service es un paquete de terceros, para más información consulte GitHub | npm
Un servicio de WebdriverIO que gestiona el túnel y los metadatos de trabajos para usuarios de LambdaTest.
Instalación
npm i wdio-lambdatest-service --save-dev
Las instrucciones sobre cómo instalar WebdriverIO
se pueden encontrar aquí.
Configuración
WebdriverIO tiene soporte para LambdaTest incorporado. Simplemente debes establecer user
y key
en tu archivo wdio.conf.js
. Para habilitar la función para automatización de aplicaciones, establece product: 'appAutomation'
en tu archivo wdio.conf.js
. Este plugin de servicio proporciona soporte para LambdaTest Tunnel. Establece también tunnel: true
para activar esta característica.
// wdio.conf.js
exports.config = {
// ...
user: process.env.LT_USERNAME,
key: process.env.LT_ACCESS_KEY,
logFile : './logDir/api.log',
product : 'appAutomation',
services: [
['lambdatest', {
tunnel: true
}]
],
// ...
};
Para obtener observaciones de errores de prueba en el panel de automatización
Para obtener observaciones de errores de prueba en el panel de automatización, simplemente añade ltErrorRemark: true
en tu wdio.conf.js
.
Para cargar aplicaciones desde local o URL
Sube aplicaciones android
o ios
desde local o desde URL de aplicación alojada agregando esta configuración requerida en tu wdio.conf.js
. Para usar la aplicación cargada para pruebas en la misma ejecución, establece enableCapability = true
, esto establecerá el valor de la URL de la aplicación en las capacidades.
// wdio.conf.js
services: [
[
"lambdatest",
{
tunnel: true,
app_upload: true,
app:{
app_name : "xyz", //proporciona el nombre deseado para tu aplicación
app_path : "/path/to/your/app/file", //proporciona la ubicación local de la aplicación
// o
app_url : "https://example.test_android.apk", //proporciona la URL donde está alojada o almacenada tu aplicación
custom_id : "12345", //proporciona tu ID personalizado deseado
enableCapability : true
}
}
]
]
Opciones
Para autorizarse en el servicio LambdaTest, tu configuración debe contener las opciones user
y key
.
tunnel
Establece esto como true para habilitar el enrutamiento de conexiones desde la nube de LambdaTest a través de tu computadora. También necesitarás establecer tunnel
como true en las capacidades del navegador.
Tipo: Boolean
Predeterminado: false
lambdatestOpts
Las opciones específicas especificadas se transmitirán a LambdaTest Tunnel.
Tipo: Object
Predeterminado: {}
A continuación se muestra una lista completa de todas las opciones disponibles:
tunnelName
Especifica el nombre personalizado del túnel LambdaTest que se utilizará.
Ejemplo:
{"tunnelName": "my_custom_tunnel"}
port
Puerto para activar LambdaTest Tunnel.
Ejemplo:
{"port": 33000}
user
Nombre de usuario de LambdaTest.
Ejemplo:
{"user": "your_username"}
key
Clave de acceso de LambdaTest.
Ejemplo:
{"key": "your_access_key"}
verbose
¿Debe registrarse cada solicitud de proxy en stdout?
Ejemplo:
{"verbose": true}
logFile
Ubicación del archivo de registro de LambdaTest Tunnel.
Ejemplo:
{"logFile": "/path/to/log/file"}
config
Ruta del archivo de configuración a utilizar. Ejemplo:
{"config": "/path/to/config/file"}
dir
Especifica el directorio local que será servido por un servidor de archivos en el puerto del túnel.
Ejemplo:
{"dir": "/path/to/local/directory"}
proxyHost
Especifica el nombre de host del puerto proxy del túnel.
Ejemplo:
{"proxyHost": "proxy.example.com"}
proxyUser
Especifica el nombre de usuario del puerto proxy del túnel.
Ejemplo:
{"proxyUser": "your_proxy_username"}
proxyPass
Especifica la contraseña del puerto proxy del túnel.
Ejemplo:
{"proxyPass": "your_proxy_password"}
proxyPort
Especifica el número de puerto donde se activará el proxy del túnel.
Ejemplo:
{"proxyPort": 8080}
egressOnly
Usa la configuración de proxy solo para solicitudes salientes.
Ejemplo:
{"egressOnly": true}
ingressOnly
Enruta solo el tráfico entrante a través del proxy especificado.
Ejemplo:
{"ingressOnly": true}
pacfile
Para usar PAC (Proxy Auto-Configuration) en pruebas locales, proporciona la ruta de un archivo PAC.
Ejemplo:
{"pacfile": "/path/to/pacfile"}
loadBalanced
Activa el Balanceo de Carga para LambdaTest Tunnel.
Ejemplo:
{"loadBalanced": true}
mode
Especifica en qué modo debe ejecutarse el túnel "ssh" o "ws". (predeterminado "ssh").
Ejemplo:
{"mode": "ssh"}
sshConnType
Especifica el tipo de conexión ssh (over_22, over_443, over_ws). Para usar –sshConnType, especifica primero la bandera ––mode ssh.
Ejemplo:
{"sshConnType": "over_22"}
maxSSHConnections
Aumenta la conexión SSH desde el Cliente del Túnel al Servidor del Túnel. El valor máximo permitido es 30.
Ejemplo:
{"maxSSHConnections": 2}
sharedTunnel
Compartir túnel entre miembros del equipo.
Ejemplo:
{"sharedTunnel": true}
env
El entorno en el que se ejecutará LambdaTest Tunnel.
Ejemplo:
{"env": "production"}
infoAPIPort
Expone Tunnel Info API en el puerto especificado.
Ejemplo:
{"infoAPIPort": 8080}
callbackURL
URL de devolución de llamada para el estado del túnel.
Ejemplo:
{"callbackURL": "https://example.com/callback"}
allowHosts
Lista separada por comas de hosts para enrutar a través del túnel. Todo lo demás se enrutará a través de Internet.
Ejemplo:
{"allowHosts": "example.com,anotherexample.com"}
bypassHosts
Lista separada por comas de hosts para omitir del túnel. Estos se enrutarán a través de Internet.
Ejemplo:
{"bypassHosts": "example.com,anotherexample.com"}
clientCert
Ruta del archivo del Certificado de Cliente mTLS.
Ejemplo:
{"clientCert": "/path/to/client_certificate"}
clientKey
Ruta del archivo de la Clave de Cliente mTLS.
Ejemplo:
{"clientKey": "/path/to/client_key"}
mTLSHosts
Lista separada por comas de hosts mTLS.
Ejemplo:
{"mTLSHosts": "example.com,anotherexample.com"}
dns
Lista separada por comas de Servidores DNS.
Ejemplo:
{"dns": "8.8.8.8,8.8.4.4"}
mitm
Habilitar el modo MITM (Man-in-the-middle) para LambdaTest Tunnel.
Ejemplo:
{"mitm": true}
ntlm
Para utilizar la autenticación Microsoft NTLM (Windows NT LAN Manager) para fines de comunicación o transporte.
Ejemplo:
{"ntlm": true}
pidfile
Ruta del archivo pid, donde se escribirá el ID del proceso.
Ejemplo:
{"pidfile": "/path/to/pidfile"}
usePrivateIp
Establece la dirección remota a una IP interna de la máquina cliente.
Ejemplo:
{"usePrivateIp": true}
Puedes encontrar más información sobre estas opciones aquí.
preferScenarioName
Solo para Cucumber. Establece el nombre de la sesión al 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.
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.
Tipo: Boolean
Predeterminado: false
sessionNamePrependTopLevelSuiteTitle
Solo para Mocha. Antepone el título del suite de nivel superior al nombre de la sesión.
Tipo: Boolean
Predeterminado: false
setSessionName
Establece automáticamente el nombre de la sesión.
Tipo: Boolean
Predeterminado: true
setSessionStatus
Establece automáticamente el estado de la sesión (aprobado/fallido).
Tipo: Boolean
Predeterminado: true
ignoreTestCountInName
Ignora el recuento de reintentos de una prueba en el nombre
Tipo: Boolean
Predeterminado: false
useScenarioName
Para obtener nombres de pruebas como nombres de escenarios para pruebas específicas de cucumber, simplemente añade useScenarioName: true
en tu wdio.conf.js
.
Pasos para compilar y publicar
- git clone este repositorio.
- ejecuta "npm install"
- ejecuta "npm run build"
- Pasos para publicar: ejecuta "npm login"
- ejecuta "npm publish --access public"
Para más información sobre WebdriverIO, consulta la página principal.