Testování desktop aplikací

pywinauto vs. FlaUI pro automatizaci Windows UI

pywinauto i FlaUI jsou open-source nástroje pro ovládání uživatelského rozhraní ve Windows. Nevybírají se však pouze podle seznamu podporovaných technologií. Důležité je, co nástroj vidí v konkrétní aplikaci, jaký jazyk používá tým a jak bude testovací sada nasazena a udržována.

Proč samotný název technologie nestačí

Dvě aplikace vytvořené ve WPF mohou být z hlediska automatizace zcela odlišné. Jedna používá standardní ovládací prvky se stabilními identifikátory, druhá vlastní tabulky a grafické komponenty, které ve stromu Windows UI Automation neposkytují potřebné informace.

Pokud tým vybere nástroj bez krátkého technického ověření, problémy se obvykle projeví až u náročnějších scénářů. Test nedokáže jednoznačně najít prvek, pracuje s pořadím řádků nebo se musí opírat o obrázky a souřadnice. Výsledkem je nákladná údržba bez ohledu na zvolený framework.

Kdy dává smysl pywinauto

pywinauto se používá z Pythonu a nabízí dva hlavní způsoby přístupu k aplikaci: klasické rozhraní Win32 a Microsoft UI Automation. To je praktické u starších programů Win32, jednodušších aplikací WinForms i u moderního rozhraní, které zpřístupňuje prvky přes UI Automation.

Je vhodnou volbou zejména tehdy, když:

Projekt pywinauto je dostupný pod licencí BSD 3-Clause.

Kdy dává smysl FlaUI

FlaUI je knihovna pro .NET, která zpřístupňuje obě varianty Microsoft UI Automation pomocí API přirozeného pro C#. Hodí se týmům, které vyvíjejí v .NET, chtějí využívat jeho typový systém a potřebují podrobněji pracovat s vlastnostmi prvků Windows aplikace.

Je vhodnou volbou zejména tehdy, když:

FlaUI je dostupná pod licencí MIT. U žádného z těchto nástrojů však neplatí, že bude automaticky stabilnější pro každou aplikaci.

Jak se rozhodnout bez zbytečného rizika

Nejprve pomocí inspekčního nástroje zkontrolujeme strom prvků, názvy, typy a identifikátory na jedné klíčové obrazovce. Potom v obou relevantních kandidátech ověříme krátký scénář: spuštění aplikace, vyplnění formuláře, uložení a kontrolu výsledku. Pilot musí zahrnovat také jeden složitější prvek, například tabulku nebo vlastní dialog.

Porovnáváme čas implementace, čitelnost testu, možnosti diagnostiky a chování při opakovaném běhu. U aplikace postavené na Electronu zvážíme místo obou nástrojů Playwright; jeho podpora Electronu je však experimentální a vyžaduje samostatný pilot. Více vysvětlujeme v článku Jak testovat Electron aplikaci.

Co tím získáte

Nástroj bude odpovídat aplikaci i lidem, kteří ho mají udržovat. Stabilní identifikátory a společné komponenty omezí počet míst, která je třeba opravit po změně rozhraní. Open-source základ navíc ponechá testovací kód pod kontrolou vašeho týmu a bez závislosti na jediném dodavateli.

Další krok

Vyberte jeden kritický scénář a zkontrolujte, zda jsou jeho prvky viditelné ve Windows UI Automation. Teprve výsledek tohoto pilotu by měl rozhodnout mezi pywinauto, FlaUI nebo kombinovaným přístupem. U WPF a WinForms pomůže také přehled možností a omezení jejich automatizace.

Související témata

Mohlo by vás také zajímat

Desktop nemusí znamenat ruční testování

Automatizované testování desktop aplikací pro Windows i Electron – stabilně a opakovatelně.