Service LambdaTest
wdio-lambdatest-service est un package tiers, pour plus d'informations, voir GitHub | npm
Un service WebdriverIO qui gère le tunnel et les métadonnées des tâches pour les utilisateurs de LambdaTest.
Installation
npm i wdio-lambdatest-service --save-dev
Les instructions sur l'installation de WebdriverIO
peuvent être trouvées ici.
Configuration
WebdriverIO prend en charge LambdaTest nativement. Vous devez simplement définir user
et key
dans votre fichier wdio.conf.js
. Pour activer la fonctionnalité pour l'automatisation d'applications, définissez product: 'appAutomation'
dans votre fichier wdio.conf.js
. Ce plugin de service prend en charge LambdaTest Tunnel. Définissez également tunnel: true
pour activer cette fonctionnalité.
// 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
}]
],
// ...
};
Pour obtenir des remarques sur les erreurs de test sur le tableau de bord d'automatisation
Pour obtenir des remarques sur les erreurs de test sur le tableau de bord d'automatisation, ajoutez simplement ltErrorRemark: true
dans votre wdio.conf.js
.
Pour télécharger une application depuis un emplacement local ou une URL
Téléchargez des applications android
ou ios
depuis un emplacement local ou une URL d'application hébergée en ajoutant cette configuration requise dans votre wdio.conf.js
. Pour utiliser l'application téléchargée pour les tests dans la même exécution, définissez enableCapability = true
, cela définira la valeur de l'URL de l'application dans les capacités.
// wdio.conf.js
services: [
[
"lambdatest",
{
tunnel: true,
app_upload: true,
app:{
app_name : "xyz", //provide your desired app name
app_path : "/path/to/your/app/file", //provide the local app location
// or
app_url : "https://example.test_android.apk", //provide the url where your app is horsted or stored
custom_id : "12345", //provide your desired custom id
enableCapability : true
}
}
]
]
Options
Pour s'authentifier auprès du service LambdaTest, votre configuration doit contenir une option user
et key
.
tunnel
Définissez-le sur true pour permettre aux connexions du cloud LambdaTest de passer par votre ordinateur. Vous devrez également définir tunnel
sur true dans les capacités du navigateur.
Type: Boolean
Par défaut: false
lambdatestOpts
Les options spécifiées seront transmises à LambdaTest Tunnel.
Type: Object
Par défaut: {}
Voici une liste complète de toutes les options disponibles :
tunnelName
Spécifie le nom personnalisé du tunnel LambdaTest à utiliser.
Exemple:
{"tunnelName": "my_custom_tunnel"}
port
Port pour activer LambdaTest Tunnel.
Exemple:
{"port": 33000}
user
Nom d'utilisateur LambdaTest.
Exemple:
{"user": "your_username"}
key
Clé d'accès LambdaTest.
Exemple:
{"key": "your_access_key"}
verbose
Chaque demande de proxy doit-elle être enregistrée dans stdout.
Exemple:
{"verbose": true}
logFile
Emplacement du fichier journal LambdaTest Tunnel.
Exemple:
{"logFile": "/path/to/log/file"}
config
Chemin du fichier de configuration à utiliser. Exemple:
{"config": "/path/to/config/file"}
dir
Spécifiez le répertoire local qui sera servi par un serveur de fichiers sur le port Tunnel.
Exemple:
{"dir": "/path/to/local/directory"}
proxyHost
Spécifie le nom d'hôte du port proxy Tunnel.
Exemple:
{"proxyHost": "proxy.example.com"}
proxyUser
Spécifie le nom d'utilisateur du port proxy Tunnel.
Exemple:
{"proxyUser": "your_proxy_username"}
proxyPass
Spécifie le mot de passe du port proxy Tunnel.
Exemple:
{"proxyPass": "your_proxy_password"}
proxyPort
Spécifie le numéro de port où le proxy Tunnel s'activera.
Exemple:
{"proxyPort": 8080}
egressOnly
Utilise les paramètres de proxy uniquement pour les requêtes sortantes.
Exemple:
{"egressOnly": true}
ingressOnly
Route uniquement le trafic entrant via le proxy spécifié.
Exemple:
{"ingressOnly": true}
pacfile
Pour utiliser PAC (Proxy Auto-Configuration) dans les tests locaux, fournissez le chemin d'un fichier PAC.
Exemple:
{"pacfile": "/path/to/pacfile"}
loadBalanced
Active l'équilibrage de charge pour LambdaTest Tunnel.
Exemple:
{"loadBalanced": true}
mode
Spécifie dans quel mode le tunnel doit fonctionner "ssh" ou "ws". (par défaut "ssh").
Exemple:
{"mode": "ssh"}
sshConnType
Spécifiez le type de connexion ssh (over_22, over_443, over_ws). Pour utiliser –sshConnType, spécifiez d'abord le drapeau ––mode ssh.
Exemple:
{"sshConnType": "over_22"}
maxSSHConnections
Augmente la connexion SSH du client Tunnel au serveur Tunnel. La valeur maximale autorisée est 30.
Exemple:
{"maxSSHConnections": 2}
sharedTunnel
Partage du tunnel entre les membres de l'équipe.
Exemple:
{"sharedTunnel": true}
env
L'environnement sur lequel le tunnel LambdaTest fonctionnera.
Exemple:
{"env": "production"}
infoAPIPort
Expose l'API d'informations sur le tunnel sur le port spécifié.
Exemple:
{"infoAPIPort": 8080}
callbackURL
URL de rappel pour l'état du tunnel.
Exemple:
{"callbackURL": "https://example.com/callback"}
allowHosts
Liste séparée par des virgules des hôtes à acheminer via le tunnel. Tout le reste sera acheminé via Internet.
Exemple:
{"allowHosts": "example.com,anotherexample.com"}
bypassHosts
Liste séparée par des virgules des hôtes à contourner du tunnel. Ceux-ci seront acheminés via Internet.
Exemple:
{"bypassHosts": "example.com,anotherexample.com"}
clientCert
Chemin du fichier de certificat client mTLS.
Exemple:
{"clientCert": "/path/to/client_certificate"}
clientKey
Chemin du fichier de clé client mTLS.
Exemple:
{"clientKey": "/path/to/client_key"}
mTLSHosts
Liste séparée par des virgules des hôtes mTLS.
Exemple:
{"mTLSHosts": "example.com,anotherexample.com"}
dns
Liste séparée par des virgules des serveurs DNS.
Exemple:
{"dns": "8.8.8.8,8.8.4.4"}
mitm
Activer le mode MITM (Man-in-the-middle) pour LambdaTest Tunnel.
Exemple:
{"mitm": true}
ntlm
Pour utiliser l'authentification Microsoft NTLM (Windows NT LAN Manager) à des fins de communication ou de transport.
Exemple:
{"ntlm": true}
pidfile
Chemin du fichier pid, où l'ID du processus sera écrit.
Exemple:
{"pidfile": "/path/to/pidfile"}
usePrivateIp
Définit l'adresse distante à une IP interne de la machine client.
Exemple:
{"usePrivateIp": true}
Vous pouvez en savoir plus sur ces options ici.
preferScenarioName
Cucumber uniquement. Définit le nom de la session sur le nom du scénario si un seul scénario est exécuté. Utile lors de l'exécution en parallèle avec wdio-cucumber-parallel-execution.
Type: Boolean
Par défaut: false
sessionNameFormat
Personnalisez le format du nom de la session.
Type: Function
Par défaut (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
Par défaut (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle
sessionNameOmitTestTitle
Mocha uniquement. N'ajoutez pas le titre du test au nom de la session.
Type: Boolean
Par défaut: false
sessionNamePrependTopLevelSuiteTitle
Mocha uniquement. Ajoutez le titre de la suite de niveau supérieur au nom de la session.
Type: Boolean
Par défaut: false
setSessionName
Définit automatiquement le nom de la session.
Type: Boolean
Par défaut: true
setSessionStatus
Définit automatiquement le statut de la session (réussi/échoué).
Type: Boolean
Par défaut: true
ignoreTestCountInName
Ignorer le nombre de tentatives d'un test dans le nom
Type: Boolean
Par défaut: false
useScenarioName
Pour obtenir des noms de tests en tant que noms de scénarios pour les tests spécifiques à Cucumber, ajoutez simplement useScenarioName: true
dans votre wdio.conf.js
.
Étapes pour compiler et publier
- clonez ce dépôt git.
- exécutez "npm install"
- exécutez "npm run build"
- Étapes pour publier : exécutez "npm login"
- exécutez "npm publish --access public"
Pour plus d'informations sur WebdriverIO, consultez la page d'accueil.