Service Docker
wdio-docker-service est un package tiers, pour plus d'informations, veuillez consulter GitHub | npm
Ce service est destiné à être utilisé avec WebdriverIO et aide à exécuter des tests fonctionnels/d'intégration contre/en utilisant des applications conteneurisées. Il utilise le populaire service Docker (installé séparément) pour exécuter des conteneurs.
Pourquoi l'utiliser ?
Idéalement, vos tests s'exécuteraient dans une variété de pipeline CI/CD où souvent il n'y a pas de "vrais" navigateurs et autres ressources dont dépend votre application. Avec l'avènement de Docker, pratiquement toutes les dépendances d'application nécessaires peuvent être conteneurisées. Avec ce service, vous pouvez exécuter votre conteneur d'application ou un docker-selenium dans votre CI et en isolation complète (en supposant que CI puisse avoir Docker installé comme dépendance). La même chose peut s'appliquer au développement local si votre application a besoin d'avoir un niveau d'isolation par rapport à votre système d'exploitation principal.
Comment ça fonctionne
Le service exécutera une image docker existante et une fois qu'elle est prête, lancera les tests WebdriverIO qui doivent s'exécuter contre votre application conteneurisée.
Installation
Exécutez :
npm install wdio-docker-service --save-dev
Les instructions sur l'installation de WebdriverIO peuvent être trouvées ici.
Configuration
Par défaut, Google Chrome, Firefox et PhantomJS sont disponibles lorsqu'ils sont installés sur le système hôte.
Pour utiliser le service, vous devez ajouter docker
à votre tableau de services :
// wdio.conf.js
exports.config = {
// ...
services: ['docker'],
// ...
};
Options
dockerOptions
Diverses options requises pour exécuter le conteneur docker
Type : Object
Par défaut : { options: { rm: true } }
Exemple :
dockerOptions: {
image: 'selenium/standalone-chrome',
healthCheck: 'http://localhost:4444',
options: {
p: ['4444:4444'],
shmSize: '2g'
}
}
dockerOptions.image
Tag de nom de conteneur Docker. Peut être local ou provenir de Docker HUB.
Type : String
Obligatoire : true
dockerOptions.healthCheck
Configuration qui vérifie l'état de vos conteneurs avant de lancer les tests. Normalement, ce serait une URL localhost. Si healthCheck n'est pas configuré, Webdriver commencera à exécuter les tests immédiatement après le démarrage du conteneur Docker, ce qui peut être trop tôt étant donné qu'il faut du temps pour que le service web démarre à l'intérieur d'un conteneur Docker.
Type : String|Object
Options pour l'utilisation d'Object :
- url - url vers une application s'exécutant dans votre conteneur
- maxRetries - nombre de tentatives jusqu'à l'échec de la vérification de santé. Par défaut : 10
- inspectInterval - intervalle entre chaque tentative en ms. Par défaut : 500
- startDelay - délai initial pour commencer la vérification de santé en ms. Par défaut : 0
Exemple 1 (String) : healthCheck: 'http://localhost:4444'
Exemple 2 (Object) :
healthCheck: {
url: 'http://localhost:4444',
maxRetries: 3,
inspectInterval: 1000,
startDelay: 2000
}
dockerOptions.options
Carte des options utilisées par la commande docker run
. Pour plus de détails sur la commande run
, cliquez ici.
Toute option à lettre unique sera convertie en -[option]
(c'est-à-dire d: true
-> -d
).
Toute option de deux caractères ou plus sera
convertie en --[option]
(c'est-à-dire rm: true
-> --rm
).
Pour les options qui peuvent être utilisées plus d'une fois
(par exemple -e
,-add-host
, --expose
, etc.), veuillez utiliser la notation de tableau (par exemple e: ["NODE_ENV=development", "FOO=bar"]
).
Type : Object
Exemple :
options: {
e: ['NODE_ENV=development', 'PROXY=http://myproxy:80']
p: ['4444:4444', '5900:5900'],
shmSize: '2g'
}
dockerOptions.args
Tous les arguments que vous souhaitez passer dans le conteneur. Correspond à [ARG...]
dans Docker run CLI.
Type : String