Jak testovat Electron aplikaci, nejen její webové rozhraní
Electron aplikace používá webové technologie, ale uživatel ji spouští jako desktopový program. Běžný test stránky proto může ověřit formulář nebo navigaci, nemusí však pokrýt spuštění aplikace, více oken, lokální soubory ani aktualizaci. Spolehlivé řešení propojuje kontroly webové a desktopové vrstvy.
V čem je problém: samotný test v prohlížeči nestačí
Electron má vykreslovací proces pro uživatelské rozhraní a hlavní proces, který řídí okna a desktopové funkce. Pokud test otevře pouze webovou adresu, obejde část kódu, kterou zákazník používá v nainstalované aplikaci.
Běžné problémy se objevují v těchto oblastech:
- aplikace se po instalaci nespustí nebo načte nesprávnou konfiguraci;
- hlavní a vedlejší okna si nepředají stav;
- otevření souboru, export nebo vlastní URL protokol funguje pouze v některém prostředí;
- aplikace se po aktualizaci nespustí s původními daty;
- offline stav nebo výpadek služby ponechá rozhraní bez srozumitelné reakce;
- systémový dialog, nabídka nebo ikona v oznamovací oblasti se chovají jinak než HTML část.
Ne každá Electron aplikace používá všechny tyto funkce. Rozsah testů má vycházet z toho, co váš produkt skutečně dělá.
Jak testování rozdělit do vrstev
Webové komponenty a obchodní logiku ověřujeme rychlejšími testy bez spuštění celé aplikace. Menší počet end-to-end scénářů potom spouští zabalenou Electron aplikaci a kontroluje cestu uživatele od startu až po výsledek.
Playwright poskytuje rozhraní pro spuštění Electron aplikace a práci s jejími okny i kódem v hlavním procesu. Tato podpora je v oficiální dokumentaci stále označena jako experimentální, proto před širší implementací ověříme kompatibilitu s konkrétní verzí Electronu a způsobem sestavení aplikace.
U systémových dialogů volíme jednu ze dvou cest:
- pro test logiky dialog řízeně nahradíme a vrátíme známou cestu k souboru;
- pro skutečný end-to-end scénář doplníme nástroj pro ovládání nativního rozhraní Windows.
Playwright totiž nezachytává volání nativních dialogů Electronu, protože je hlavní proces odesílá přímo operačnímu systému. Instalátor, aktualizaci a migraci dat proto řešíme jako samostatnou vrstvu; podrobnější postup popisuje testování instalace a aktualizace.
Video, snímky, logy a trace záznamy ukládáme podle potřeby v konfiguraci testů. Nejsou automatickým výstupem každého běhu a u citlivých údajů je třeba určit, co se smí ukládat.
Na co si dát pozor
Test aktualizace potřebuje kontrolovaný zdroj balíčku, jasně určenou původní a cílovou verzi a bezpečná testovací data. U testů souborového systému je třeba izolovat pracovní složku, aby jeden běh neovlivnil další. CI runner zároveň musí umět spustit grafickou aplikaci v podporovaném prostředí.
Co tím získáte
Tým ověří aplikaci v podobě, kterou dostává zákazník, nejen její webové komponenty. Takové pokrytí může odhalit chyby při startu, práci s okny a lokálními soubory ještě před releasem, zatímco rychlejší webové testy nadále poskytují včasnou zpětnou vazbu.
Výsledky z jednotlivých vrstev pomáhají zúžit, zda pravděpodobná příčina spočívá v obchodní logice, vykreslovací vrstvě nebo desktopové integraci.
Další krok
Sepište tři funkce, které odlišují vaši Electron aplikaci od webové verze — například práci se soubory, více oken a aktualizaci. Jednu z nich ověřte v pilotu na skutečném sestavení aplikace. Pokud produkt obsahuje také samostatný web, porovnejte možnosti s automatizací webových aplikací.