Hoppa till huvudinnehåll

Docker Tjänst

wdio-docker-service är ett tredjepartspaket, för mer information se GitHub | npm

Denna tjänst är avsedd att användas med WebdriverIO och hjälper till att köra funktionella/integrationstester mot/med containeriserade applikationer. Den använder den populära Docker tjänsten (installeras separat) för att köra containrar.

Varför använda den?

Idealt skulle dina tester köras i någon form av CI/CD-pipeline där det ofta inte finns några "riktiga" webbläsare och andra resurser som din applikation är beroende av. Med Docker kan praktiskt taget alla nödvändiga applikationsberoenden containeriseras. Med denna tjänst kan du köra din applikationscontainer eller en docker-selenium i din CI och i fullständig isolering (förutsatt att CI kan ha Docker installerat som ett beroende). Samma kan gälla för lokal utveckling om din applikation behöver ha en nivå av isolering från ditt huvudsakliga operativsystem.

Hur det fungerar

Tjänsten kommer att köra en befintlig docker-image och när den är redo, kommer den att initiera WebdriverIO-tester som ska köras mot din containeriserade applikation.

Installation

Kör:

npm install wdio-docker-service --save-dev

Instruktioner om hur man installerar WebdriverIO finns här.

Konfiguration

Som standard är Google Chrome, Firefox och PhantomJS tillgängliga när de är installerade på värdsystemet. För att använda tjänsten behöver du lägga till docker i din service-array:

// wdio.conf.js
exports.config = {
// ...
services: ['docker'],
// ...
};

Alternativ

dockerOptions

Olika alternativ som krävs för att köra docker-container

Typ: Object

Standard: { options: { rm: true } }

Exempel:

dockerOptions: {
image: 'selenium/standalone-chrome',
healthCheck: 'http://localhost:4444',
options: {
p: ['4444:4444'],
shmSize: '2g'
}
}

dockerOptions.image

Docker-containerns namntagg. Kan vara lokal eller från Docker HUB.

Typ: String

Krävs: true

dockerOptions.healthCheck

Konfiguration som kontrollerar dina containrars beredskap innan tester initieras. Normalt skulle detta vara en localhost-url. Om healthCheck inte är konfigurerad, kommer Webdriver att börja köra tester omedelbart efter att Docker-containern startar, vilket kan vara för tidigt med tanke på att det tar tid för en webbtjänst att starta inne i en Docker-container.

Typ: String|Object

Alternativ för objektanvändning:

  • url - url till en app som körs inuti din container
  • maxRetries - antal försök tills hälsokontrollen misslyckas. Standard: 10
  • inspectInterval - intervall mellan varje försök i ms. Standard: 500
  • startDelay - initial fördröjning för att påbörja hälsokontrollen i ms. Standard: 0

Exempel 1 (Sträng): healthCheck: 'http://localhost:4444'

Exempel 2 (Objekt):

healthCheck: {
url: 'http://localhost:4444',
maxRetries: 3,
inspectInterval: 1000,
startDelay: 2000
}

dockerOptions.options

Karta över alternativ som används av kommandot docker run. För mer information om kommandot run, klicka här.

Alla alternativ med en bokstav kommer att konverteras till -[alternativ] (d.v.s. d: true -> -d).

Alla alternativ med två tecken eller fler kommer att konverteras till --[alternativ] (d.v.s. rm: true -> --rm).

För alternativ som kan användas mer än en gång (d.v.s. -e,-add-host, --expose, etc.), använd array-notation (d.v.s. e: ["NODE_ENV=development", "FOO=bar"]).

Typ: Object

Exempel:

options: {
e: ['NODE_ENV=development', 'PROXY=http://myproxy:80']
p: ['4444:4444', '5900:5900'],
shmSize: '2g'
}

dockerOptions.args

Alla argument du vill skicka in i containern. Motsvarar [ARG...] i Docker run CLI.

Typ: String

dockerOptions.command

Alla kommandon du vill skicka in i containern. Motsvarar [COMMAND] i Docker run CLI.

Typ: String

onDockerReady

En callback-metod som anropas när Docker-applikationen är redo. Beredskap bestäms av möjligheten att pinga healthCheck-url.

Typ: Function

dockerLogs

Sökväg till var loggar från docker-containern ska lagras

Typ: String

Testningsfall / Recept

Besök vår Wiki för mer information.

Welcome! How can I help?

WebdriverIO AI Copilot