Korzystanie z Usług Chmurowych
Korzystanie z usług na żądanie, takich jak Sauce Labs, Browserstack, TestingBot, TestMu AI (dawniej LambdaTest) lub Perfecto z WebdriverIO jest dość proste. Wszystko, co musisz zrobić, to ustawić user i key swojej usługi w opcjach.
Opcjonalnie możesz również sparametryzować swój test, ustawiając zdolności specyficzne dla chmury, takie jak build. Jeśli chcesz uruchamiać usługi chmurowe tylko w Travis, możesz użyć zmiennej środowiskowej CI do sprawdzenia, czy jesteś w Travis i odpowiednio zmodyfikować konfigurację.
// 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
Możesz skonfigurować swoje testy, aby były uruchamiane zdalnie w Sauce Labs.
Jedynym wymaganiem jest ustawienie user i key w konfiguracji (eksportowanych przez wdio.conf.js lub przekazanych do webdriverio.remote(...)) na swoją nazwę użytkownika Sauce Labs i klucz dostępu.
Możesz również przekazać dowolną opcjonalną opcję konfiguracji testu jako klucz/wartość w capabilities dla dowolnej przeglądarki.
Sauce Connect
Jeśli chcesz uruchamiać testy przeciwko serwerowi, który nie jest dostępny w Internecie (np. na localhost), musisz użyć Sauce Connect.
Wykracza to poza zakres WebdriverIO, więc będziesz musiał uruchomić go samodzielnie.
Jeśli używasz testera WDIO, pobierz i skonfiguruj @wdio/sauce-service w swoim wdio.conf.js. Pomoże to uruchomić Sauce Connect i zawiera dodatkowe funkcje, które lepiej integrują twoje testy z usługą Sauce.
Z Travis CI
Travis CI jednak obsługuje uruchamianie Sauce Connect przed każdym testem, więc śledzenie ich instrukcji jest opcją.
Jeśli to zrobisz, musisz ustawić opcję konfiguracji testu tunnel-identifier w capabilities każdej przeglądarki. Travis domyślnie ustawia to na zmienną środowiskową TRAVIS_JOB_NUMBER.
Ponadto, jeśli chcesz, aby Sauce Labs grupował twoje testy według numeru kompilacji, możesz ustawić build na TRAVIS_BUILD_NUMBER.
Na koniec, jeśli ustawisz name, zmienia to nazwę tego testu w Sauce Labs dla tej kompilacji. Jeśli używasz testera WDIO w połączeniu z @wdio/sauce-service, WebdriverIO automatycznie ustawia odpowiednią nazwę dla testu.
Przykład capabilities:
browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER
Limity czasu
Ponieważ uruchamiasz testy zdalnie, może być konieczne zwiększenie niektórych limitów czasowych.
Możesz zmienić limit czasu bezczynności przekazując idle-timeout jako opcję konfiguracji testu. Określa to, jak długo Sauce będzie czekać między poleceniami, zanim zamknie połączenie.
BrowserStack
WebdriverIO ma również wbudowaną integrację z Browserstack.
Jedynym wymaganiem jest ustawienie user i key w konfiguracji (eksportowanych przez wdio.conf.js lub przekazanych do webdriverio.remote(...)) na swoją nazwę użytkownika Browserstack automate i klucz dostępu.
Możesz również przekazać dowolne opcjonalne obsługiwane zdolności jako klucz/wartość w capabilities dla dowolnej przeglądarki. Jeśli ustawisz browserstack.debug na true, nagra screencast sesji, co może być pomocne.
Testy lokalne
Jeśli chcesz uruchamiać testy przeciwko serwerowi, który nie jest dostępny w Internecie (np. na localhost), musisz użyć Local Testing.
Wykracza to poza zakres WebdriverIO, więc musisz uruchomić go samodzielnie.
Jeśli używasz lokalnie, powinieneś ustawić browserstack.local na true w swoich capabilities.
Jeśli używasz testera WDIO, pobierz i skonfiguruj @wdio/browserstack-service w swoim wdio.conf.js. Pomoże to uruchomić BrowserStack i zawiera dodatkowe funkcje, które lepiej integrują twoje testy z usługą BrowserStack.
Z Travis CI
Jeśli chcesz dodać Local Testing w Travis, musisz uruchomić go samodzielnie.
Poniższy skrypt pobierze i uruchomi go w tle. Powinieneś uruchomić to w Travis przed rozpoczęciem testów.
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
Ponadto, możesz chcieć ustawić build na numer kompilacji Travis.
Przykład 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
Jedynym wymaganiem jest ustawienie user i key w konfiguracji (eksportowanych przez wdio.conf.js lub przekazanych do webdriverio.remote(...)) na swoją nazwę użytkownika TestingBot i tajny klucz.
Możesz również przekazać dowolne opcjonalne obsługiwane zdolności jako klucz/wartość w capabilities dla dowolnej przeglądarki.
Testy lokalne
Jeśli chcesz uruchamiać testy przeciwko serwerowi, który nie jest dostępny w Internecie (np. na localhost), musisz użyć Local Testing. TestingBot zapewnia tunel oparty na Javie, aby umożliwić testowanie stron internetowych niedostępnych z Internetu.
Ich strona wsparcia tunelu zawiera informacje niezbędne do uruchomienia tego.
Jeśli używasz testera WDIO, pobierz i skonfiguruj @wdio/testingbot-service w swoim wdio.conf.js. Pomoże to uruchomić TestingBot i zawiera dodatkowe funkcje, które lepiej integrują twoje testy z usługą TestingBot.
TestMu AI (dawniej LambdaTest)
Integracja z TestMu AI jest również wbudowana.
Jedynym wymaganiem jest ustawienie user i key w konfiguracji (eksportowanych przez wdio.conf.js lub przekazanych do webdriverio.remote(...)) na nazwę użytkownika i klucz dostępu do konta TestMu AI.
Możesz również przekazać dowolne opcjonalne obsługiwane zdolności jako klucz/wartość w capabilities dla dowolnej przeglądarki. Jeśli ustawisz visual na true, nagra screencast sesji, co może być pomocne.
Tunel do testów lokalnych
Jeśli chcesz uruchamiać testy przeciwko serwerowi, który nie jest dostępny w Internecie (np. na localhost), musisz użyć Local Testing.
Wykracza to poza zakres WebdriverIO, więc musisz uruchomić go samodzielnie.
Jeśli używasz lokalnie, powinieneś ustawić tunnel na true w swoich capabilities.
Jeśli używasz testera WDIO, pobierz i skonfiguruj wdio-lambdatest-service w swoim wdio.conf.js. Pomoże to uruchomić TestMu AI i zawiera dodatkowe funkcje, które lepiej integrują twoje testy z usługą TestMu AI.
Z Travis CI
Jeśli chcesz dodać Local Testing w Travis, musisz uruchomić go samodzielnie.
Poniższy skrypt pobierze i uruchomi go w tle. Powinieneś uruchomić to w Travis przed rozpoczęciem testów.
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
Ponadto, możesz chcieć ustawić build na numer kompilacji Travis.
Przykład 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
Podczas korzystania z wdio z Perfecto musisz utworzyć token bezpieczeństwa dla każdego użytkownika i dodać go w strukturze capabilities (oprócz innych zdolności), w następujący sposób:
export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],
Dodatkowo musisz dodać konfigurację chmury, jak poniżej:
hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",