Appium umí testovat jak nativní, tak hybridní mobilní aplikace, takže jeden testovací stack pokrývá celý produkt. Je zavedený standard a testy lze spouštět lokálně (fyzická zařízení, emulátory nebo simulátory) i na externích testovacích farmách, včetně pronájmu zařízení (např. Sauce Labs, Kobiton). V kombinaci s AI poskytují automatické testy deterministickou zpětnou vazbu, kterou lze využít pro AI-driven vývoj a regrese. Náklady na psaní a údržbu testů jsou dnes natolik nízké, že absence automatizace již není obhajitelná.
Klasické unit testy dávají smysl jen výjimečně, například pro izolované algoritmy; většina funkcí v aplikacích je integrační povahy, proto je vhodné stavět na end-to-end (e2e) testech a případně použít mock backendu tam, kde to dává smysl. Při testování backendu se používá reálná, typicky lokální databáze — komponenty, v nichž může dojít k chybě (síť, databáze, autentizace), by neměly být mockovány, aby nedošlo ke skrytí defektů. Přihlašování a uložení tokenu (session) řeší jeden dedikovaný skript nebo modul; ostatní testy z něj čerpají a neimplementují přihlašování znovu, což zjednodušuje údržbu a zrychluje běh. Testy se provádějí na Androidu i iOS, protože chování se mezi platformami může lišit. Kde je to možné, používají se fyzická zařízení místo emulátorů: počáteční nastavení je náročnější, ale výsledky lépe odpovídají produkčnímu prostředí.
package.json
{
"name": "appka-appium-e2e",
"version": "1.0.0",
"description": "Appium E2E tests for Appka",
"scripts": {
"test": "wdio run wdio.conf.ts",
"test:debug": "wdio run wdio.conf.ts --debug"
},
"devDependencies": {
"@types/mocha": "^10.0.0",
"@types/node": "^20.0.0",
"@wdio/appium-service": "^8.32.0",
"@wdio/cli": "^8.32.0",
"@wdio/local-runner": "^8.32.0",
"@wdio/mocha-framework": "^8.32.0",
"@wdio/spec-reporter": "^8.32.0",
"appium": "^2.2.1",
"appium-uiautomator2-driver": "^2.7.0",
"appium-xcuitest-driver": "^9.10.5",
"ts-node": "^10.9.2",
"typescript": "^5.2.2"
},
"dependencies": {
"appium-chromedriver": "^8.2.0",
"electron": "^39.2.4",
"jws": "^4.0.0"
}
}
Instalace chromedriveru:
CHROMEDRIVER_VERSION=107.0.5304.62 npm install appium-chromedriver
ANDROID_HOME - C:\<installation location>\android-sdk-windows PATH - %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
Příklad ke stažení:
Jak spustit příklad:
Video, jak to vypadá funkční: https://youtu.be/sAyNaXYPJLo