Automationsprotokoll
Med WebdriverIO kan du välja mellan flera automationsteknologier när du kör dina E2E-tester lokalt eller i molnet. Som standard försöker WebdriverIO starta en lokal automationssession med WebDriver Bidi protokollet.
WebDriver Bidi Protocol
WebDriver Bidi är ett automationsprotokoll för att automatisera webbläsare med hjälp av dubbelriktad kommunikation. Det är efterföljaren till WebDriver protokollet och möjliggör mycket fler introspektion-möjligheter för olika testfall.
Detta protokoll är för närvarande under utveckling och nya primitiver kan komma att läggas till i framtiden. Alla webbläsarleverantörer har åtagit sig att implementera denna webbstandard och många primitiver har redan implementerats i webbläsare.
WebDriver Protocol
WebDriver är ett fjärrkontrollsgränssnitt som möjliggör inspektion och kontroll av användarprogram. Det tillhandahåller ett plattforms- och språkneutralt protokoll som ett sätt för externa program att fjärrstyra webbläsares beteende.
WebDriver-protokollet är utformat för att automatisera en webbläsare från användarens perspektiv, vilket innebär att allt en användare kan göra, kan du göra med webbläsaren. Det tillhandahåller en uppsättning kommandon som abstraherar vanliga interaktioner med en applikation (t.ex. navigering, klickning eller läsning av ett elements tillstånd). Eftersom det är en webbstandard är den väl supporterad av alla stora webbläsarleverantörer och används också som underliggande protokoll för mobilautomation med Appium.
För att använda detta automationsprotokoll behöver du en proxyserver som översätter alla kommandon och utför dem i målmiljön (dvs. webbläsaren eller mobilappen).
För webbläsarautomation är proxyservern vanligtvis webbläsardrivrutinen. Det finns drivrutiner tillgängliga för alla webbläsare:
- Chrome – ChromeDriver
- Firefox – Geckodriver
- Microsoft Edge – Edge Driver
- Internet Explorer – InternetExplorerDriver
- Safari – SafariDriver
För alla typer av mobilautomatisering behöver du installera och konfigurera Appium. Det låter dig automatisera mobila (iOS/Android) eller till och med stationära (macOS/Windows) applikationer med samma WebdriverIO-konfiguration.
Det finns också gott om tjänster som låter dig köra dina automationstester i molnet i stor skala. Istället för att behöva konfigurera alla dessa drivrutiner lokalt kan du bara kommunicera med dessa tjänster (t.ex. Sauce Labs) i molnet och inspektera resultaten på deras plattform. Kommunikationen mellan testskript och automationsmiljö kommer att se ut så här: