Användning av molntjänster
Att använda tjänster på begäran som Sauce Labs, Browserstack, TestingBot, LambdaTest eller Perfecto med WebdriverIO är ganska enkelt. Allt du behöver göra är att ange din tjänsts user
och key
i dina alternativ.
Alternativt kan du också parametrisera ditt test genom att ange molnspecifika funktioner som build
. Om du bara vill köra molntjänster i Travis kan du använda miljövariabeln CI
för att kontrollera om du är i Travis och ändra konfigurationen därefter.
// 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
Du kan ställa in dina tester att köras på distans i Sauce Labs.
Det enda kravet är att ange user
och key
i din konfiguration (antingen exporterad av wdio.conf.js
eller skickad till webdriverio.remote(...)
) till ditt Sauce Labs användarnamn och åtkomstnyckel.
Du kan också skicka in valfritt testkonfigurationsalternativ som nyckel/värde i egenskaperna för vilken webbläsare som helst.
Sauce Connect
Om du vill köra tester mot en server som inte är tillgänglig för internet (som på localhost
), måste du använda Sauce Connect.
Det ligger utanför WebdriverIOs omfång att stödja detta, så du måste starta det själv.
Om du använder WDIO testrunner, ladda ner och konfigurera @wdio/sauce-service
i din wdio.conf.js
. Det hjälper till att få Sauce Connect att köra och kommer med ytterligare funktioner som bättre integrerar dina tester i Sauce-tjänsten.
Med Travis CI
Travis CI har dock stöd för att starta Sauce Connect före varje test, så att följa deras anvisningar för det är ett alternativ.
Om du gör det måste du ställa in testkonfigurationsalternativet tunnel-identifier
i varje webbläsares capabilities
. Travis sätter detta till miljövariabeln TRAVIS_JOB_NUMBER
som standard.
Om du vill att Sauce Labs ska gruppera dina tester efter byggningsnummer kan du ställa in build
till TRAVIS_BUILD_NUMBER
.
Om du ställer in name
ändrar detta testets namn i Sauce Labs för denna byggning. Om du använder WDIO testrunner i kombination med @wdio/sauce-service
, ställer WebdriverIO automatiskt in ett lämpligt namn för testet.
Exempel på capabilities
:
browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER
Tidsgränser
Eftersom du kör dina tester på distans kan det vara nödvändigt att öka vissa tidsgränser.
Du kan ändra inaktivitetstidsgränsen genom att skicka idle-timeout
som ett testkonfigurationsalternativ. Detta kontrollerar hur länge Sauce kommer att vänta mellan kommandon innan anslutningen stängs.
BrowserStack
WebdriverIO har också en inbyggd Browserstack-integration.
Det enda kravet är att ställa in user
och key
i din konfiguration (antingen exporterad av wdio.conf.js
eller skickad till webdriverio.remote(...)
) till ditt Browserstack-automatiseringens användarnamn och åtkomstnyckel.
Du kan också skicka in valfria stödda funktioner som nyckel/värde i egenskaperna för vilken webbläsare som helst. Om du ställer in browserstack.debug
till true
kommer den att spela in en skärminspelning av sessionen, vilket kan vara till hjälp.
Lokal testning
Om du vill köra tester mot en server som inte är tillgänglig för internet (som på localhost
), måste du använda Local Testing.
Det ligger utanför WebdriverIOs omfång att stödja detta, så du måste starta det själv.
Om du använder local, bör du ställa in browserstack.local
till true
i dina egenskaper.
Om du använder WDIO testrunner, ladda ner och konfigurera @wdio/browserstack-service
i din wdio.conf.js
. Det hjälper till att få BrowserStack att köra och kommer med ytterligare funktioner som bättre integrerar dina tester i BrowserStack-tjänsten.
Med Travis CI
Om du vill lägga till Local Testing i Travis måste du starta det själv.
Följande skript laddar ner och startar det i bakgrunden. Du bör köra detta i Travis innan du startar testerna.
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
Du kanske också vill ställa in build
till Travis-byggningsnummer.
Exempel på 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
Det enda kravet är att ställa in user
och key
i din konfiguration (antingen exporterad av wdio.conf.js
eller skickad till webdriverio.remote(...)
) till ditt TestingBot användarnamn och hemliga nyckel.
Du kan också skicka in valfria stödda egenskaper som nyckel/värde i egenskaperna för vilken webbläsare som helst.
Lokal testning
Om du vill köra tester mot en server som inte är tillgänglig för internet (som på localhost
), måste du använda Local Testing. TestingBot tillhandahåller en Javabaserad tunnel för att låta dig testa webbplatser som inte är tillgängliga från internet.
Deras tunnelstödsida innehåller den information som behövs för att få detta att fungera.
Om du använder WDIO testrunner, ladda ner och konfigurera @wdio/testingbot-service
i din wdio.conf.js
. Det hjälper till att få TestingBot att köra och kommer med ytterligare funktioner som bättre integrerar dina tester i TestingBot-tjänsten.
LambdaTest
LambdaTest-integration är också inbyggd.
Det enda kravet är att ställa in user
och key
i din konfiguration (antingen exporterad av wdio.conf.js
eller skickad till webdriverio.remote(...)
) till ditt LambdaTest-kontos användarnamn och åtkomstnyckel.
Du kan också skicka in valfria stödda egenskaper som nyckel/värde i egenskaperna för vilken webbläsare som helst. Om du ställer in visual
till true
kommer den att spela in en skärminspelning av sessionen, vilket kan vara till hjälp.
Tunnel för lokal testning
Om du vill köra tester mot en server som inte är tillgänglig för internet (som på localhost
), måste du använda Local Testing.
Det ligger utanför WebdriverIOs omfång att stödja detta, så du måste starta det själv.
Om du använder local, bör du ställa in tunnel
till true
i dina egenskaper.
Om du använder WDIO testrunner, ladda ner och konfigurera wdio-lambdatest-service
i din wdio.conf.js
. Det hjälper till att få LambdaTest att köra och kommer med ytterligare funktioner som bättre integrerar dina tester i LambdaTest-tjänsten.
Med Travis CI
Om du vill lägga till Local Testing i Travis måste du starta det själv.
Följande skript laddar ner och startar det i bakgrunden. Du bör köra detta i Travis innan du startar testerna.
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
Du kanske också vill ställa in build
till Travis-byggningsnummer.
Exempel på 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
När du använder wdio med Perfecto
behöver du skapa en säkerhetstoken för varje användare och lägga till den i capabilities-strukturen (utöver andra egenskaper), enligt följande:
export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],
Dessutom behöver du lägga till molnkonfiguration enligt följande:
hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",