Ik probeer vaak het uiterste te halen uit de tools, die ik gebruik. Ik accepteer niet snel "Nee" van een tool. En ik vind ketentesten erg belangrijk, omdat dat de enige manier is, om zeker te weten dat twee of meer losse componenten/apps/enz. goed op elkaar aansluiten. Dus, deze twee gecombineerd, wilde ik ketentesten met Appium. In mijn geval een combinatie van een mobiele browser en een app.
Appium heeft als belangrijkste doelgroep om 1 mobiele app te testen. Je bent niet helemaal beperkt tot 1, je kan elke app, die je maar wil, opstarten. Maar bij het starten van de testsessie in Appium wordt 1, laten we het noemen, hoofdapp gevraagd. Wat wel van belang is om te weten: voor het uitvoeren van een actie (vinden of gebruiken van een element), gaat Appium niet automatisch naar de hoofdapp. De actie wordt uitgevoerd op de op dat moment actieve app op de mobiel.
Start app:
Activate App - Appium
Daarnaast kan je gebruik maken van de functionaliteit, die eigenlijk bedoeld is om hybride apps te testen. Bij deze moet je soms wisselen tussen HTML (webview) en niet-HTML (native). Deze functionaliteit kan je ook gebruiken om te wisselen tussen een browser en een app (mits je met activate ervoor zorgt, dat je de juiste app ziet). Al heb ik gemerkt, dat dit vaak niet nodig is. Met de zogenaamde 'native' optie kan je op Android met Chrome en op iOS met Safari al heel veel elementen in een website vinden en bedienen.
Wisselen tussen webview en native
Set Context - Appium
Maar wat werkt er niet? Om Appium te starten moet je een sessie starten. En deze sessie kan slechts gekoppeld zijn aan 1 app. En met de gekoppelde app kan je net iets meer. Voor mij is het belangrijkste: een goede herstart. De eerste genoemde 'activate' start een app alleen op. Als je bijvoorbeeld ingelogd was, blijf je ingelogd. En meestal wil je je test niet ingelogd starten. Tenzij je allerlei code gaat schrijven om na te gaan of uitloggen nodig is, is dit een probleem. Maar de app van de sessie start automatisch 'vers' op, wat inhoudt, dat je meestal niet ingelogd bent. Dit geeft vooral problemen als je meerdere testen achter elkaar draait. Je kan heel netjes aangeven dat een test eerst inlogt en dan uitlogt. Maar als de test faalt..... ben je nog steeds ingelogd. Wat een probleem kan zijn voor de volgende test.
Appium kan het beste met 1 sessie tegelijkertijd draaien, anders kan je performance of stabiliteitsproblemen krijgen. Daarom heb ik nu code geschreven, die zorgt voor de 'verse' start, die alleen even de sessie opstart, met de gewenste app, en daarna weer sluit. Vervolgens start ik met de test.
In het algemeen kan je dus zeggen, dat ketentesten in Appium kan. Om dit voor elkaar te krijgen, maak je gebruik van functionaliteit, die hier waarschijnlijk niet voor bedoeld is. Maar wel geschikt. Appium kan al heel veel, waarschijnlijk altijd bedoeld met een bepaald doel voor ogen. Kijk daarom niet naar het doel, maar naar wat er werkelijk gebeurd. En ontdek hoe je Appium in jouw bedrijf het beste toe kan passen.