Sdílet prostřednictvím


Použití automatizace uživatelského rozhraní pro automatizované testování

Poznámka

Tato dokumentace je určená pro vývojáře rozhraní .NET Framework, kteří chtějí používat spravované třídy automatizace uživatelského rozhraní definované v oboru názvů System.Windows.Automation. Nejnovější informace o automatizaci uživatelského rozhraní najdete v tématu rozhraní API služby Windows Automation: Automatizace uživatelského rozhraní.

Tento přehled popisuje, jak může být automatizace uživatelského rozhraní Microsoftu užitečná jako architektura pro programový přístup ve scénářích automatizovaného testování.

Automatizace uživatelského rozhraní poskytuje jednotný objektový model, který umožňuje všem architekturám uživatelského rozhraní zpřístupnit složité a bohaté funkce přístupným a snadno automatizovaným způsobem.

Automatizace uživatelského rozhraní byla vyvinuta jako následník microsoftu Active Accessibility. Aktivní přístupnost je existující architektura navržená tak, aby poskytovala řešení pro zpřístupnění ovládacích prvků a aplikací. Aktivní přístupnost nebyla navržena s ohledem na automatizaci testů, i když se tato role vyvinula kvůli velmi podobným požadavkům přístupnosti a automatizace. Automatizace uživatelského rozhraní kromě poskytování pokročilejších řešení pro usnadnění přístupu je také navržená tak, aby poskytovala robustní funkce pro automatizované testování. Aktivní přístupnost například spoléhá na jedno rozhraní, které zpřístupňuje informace o uživatelském rozhraní a shromažďuje informace potřebné produkty AT; Automatizace uživatelského rozhraní odděluje oba modely.

Poskytovatel i klient musí implementovat automatizaci uživatelského rozhraní, aby byl užitečný jako automatizovaný testovací nástroj. Poskytovatelé automatizace uživatelského rozhraní jsou aplikace, jako je Microsoft Word, Excel a další aplikace nebo ovládací prvky třetích stran založené na operačním systému Microsoft Windows. Klienti pro automatizaci uživatelského rozhraní zahrnují automatizované testovací skripty a aplikace asistenční technologie.

Poznámka

Cílem tohoto přehledu je prezentovat nové a vylepšené funkce automatizovaného testování automatizace uživatelského rozhraní. Tento přehled není určen k poskytování informací o funkcích přístupnosti a nebude řešit jiné funkce přístupnosti než v případě potřeby.

Automatizace uživatelského rozhraní ve zprostředkovateli

Aby bylo uživatelské rozhraní automatizované, musí vývojář aplikace nebo ovládacího prvku zjistit, jaké akce může koncový uživatel s objektem uživatelského rozhraní provádět pomocí standardní klávesnice a interakce myši.

Po identifikaci těchto klíčových akcí by měly být na ovládacím prvku implementovány odpovídající vzory ovládacích prvků automatizace uživatelského rozhraní (tj. vzory ovládacích prvků, které zrcadlí funkčnost a chování prvku uživatelského rozhraní). Například interakce uživatele s ovládacím prvkem rozbalovacího seznamu (například dialogové okno Spustit) obvykle zahrnuje rozbalení a sbalení seznamu za účelem skrytí nebo zobrazení položek, výběr položky z tohoto seznamu nebo přidání nové hodnoty pomocí vstupu z klávesnice.

Poznámka

V jiných modelech přístupnosti musí vývojáři shromažďovat informace přímo z jednotlivých tlačítek, nabídek nebo jiných ovládacích prvků. Každý typ ovládacího prvku má bohužel desítky menších variací. Jinými slovy, i když deset variant tlačítka může fungovat stejným způsobem a provádět stejnou funkci, musí být všechny považovány za jedinečné ovládací prvky. Neexistuje způsob, jak zjistit, že tyto ovládací prvky jsou funkčně ekvivalentní. Vzory ovládacích prvků byly vyvinuty tak, aby představovaly toto běžné chování ovládacích prvků. Další informace najdete v tématu přehled vzorů ovládacích prvků automatizace uživatelského rozhraní.

Implementace automatizace uživatelského rozhraní

Jak už bylo zmíněno dříve, bez sjednoceného modelu poskytovaného automatizací uživatelského rozhraní se vyžadují testovací nástroje a vývojáři, aby znali informace specifické pro architekturu, aby bylo možné v této rozhraní vystavit vlastnosti a chování ovládacích prvků. Vzhledem k tomu, že v operačních systémech Windows může existovat několik různých architektur uživatelského rozhraní, včetně Win32, Windows Forms a Windows Presentation Foundation (WPF), může to být náročný úkol pro testování více aplikací s ovládacími prvky, které vypadají podobně. Následující tabulka například popisuje názvy vlastností specifické pro architekturu potřebné k načtení názvu (nebo textu) přidruženého k ovládacímu prvku tlačítka a zobrazuje jednu ekvivalentní vlastnost automatizace uživatelského rozhraní.

Typ ovládacího prvku automatizace uživatelského rozhraní Architektura uživatelského rozhraní Vlastnost specifická pro rámec Vlastnost automatizace uživatelského rozhraní
Knoflík Windows Presentation Foundation Obsah NázevVlastnost
Knoflík Win32 Titulek NázevVlastnost
Obraz HTML Alt NázevVlastnost

Zprostředkovatelé automatizace uživatelského rozhraní zodpovídají za mapování vlastností specifických pro architekturu jejich ovládacích prvků na ekvivalentní vlastnosti automatizace uživatelského rozhraní.

Informace o implementaci automatizace uživatelského rozhraní u poskytovatele najdete v tématu Poskytovatelé automatizace uživatelského rozhraní pro spravovaný kód. Informace o implementaci vzorů ovládání jsou k dispozici na stránkách Automatizace uživatelského rozhraní - vzory ovládacích prvků a Automatizace uživatelského rozhraní - vzor textu.

Automatizace uživatelského rozhraní v klientovi

Cílem mnoha automatizovaných testovacích nástrojů a scénářů je konzistentní a opakovatelná manipulace s uživatelským rozhraním. To může zahrnovat testování částí konkrétních ovládacích prvků až po záznam a přehrávání testovacích skriptů, které iterují řadu obecných akcí na skupině ovládacích prvků.

Komplikace, která vzniká z automatizovaných aplikací, je obtížné synchronizovat test s dynamickým cílem. Například ovládací prvek seznamu, například ovládací prvek obsažený ve Správci úloh systému Windows, který zobrazuje seznam aktuálně spuštěných aplikací. Vzhledem k tomu, že položky v seznamu jsou dynamicky aktualizovány mimo ovládací prvek testovací aplikace, pokus opakovat výběr konkrétní položky v seznamu s jakoukoli konzistencí není možné. Podobné problémy mohou nastat také při pokusu o opakování jednoduchých změn fokusu v uživatelském rozhraní, které jsou mimo kontrolu testovací aplikace.

Programový přístup

Programový přístup poskytuje možnost napodobovat prostřednictvím kódu, jakékoli interakce a prostředí vystavené tradičními vstupy myši a klávesnice. Automatizace uživatelského rozhraní umožňuje programový přístup prostřednictvím pěti komponent:

Klíčové vlastnosti pro automatizaci testů

Schopnost jednoznačně identifikovat a následně vyhledat jakýkoli ovládací prvek v uživatelském rozhraní poskytuje základ pro automatizované testovací aplikace, které budou fungovat s tímto uživatelským rozhraním. Klienti a poskytovatelé, kteří k tomu pomáhají, používají několik vlastností automatizace uživatelského rozhraní Microsoftu.

AutomationID

Jedinečně identifikuje automatizační prvek od jeho sourozenců. AutomationIdProperty není lokalizován, na rozdíl od vlastnosti, jako je například NameProperty, která je obvykle lokalizována, pokud se produkt dodává v několika jazycích. Viz Použití vlastnosti AutomationID.

Poznámka

AutomationIdProperty nezaručuje jedinečnou identitu v celém stromu automatizace. Aplikace může například obsahovat menu s několika položkami nejvyšší úrovně, které mají dále více podřízených položek. Tyto sekundární položky nabídky mohou být identifikovány obecným schématem, jako je například Položka1, Položka 2, Položka3 atd., což umožňuje duplicitní identifikátory podřízených položek nabídky nejvyšší úrovně.

Typ ovládání

Identifikuje typ ovládacího prvku reprezentovaný prvkem automatizace. Důležité informace lze odvodit ze znalostí typu ovládacího prvku. Viz přehled typů ovládacích prvků automatizace uživatelského rozhraní .

NázevVlastnost

Jedná se o textový řetězec, který identifikuje nebo vysvětluje ovládací prvek. NameProperty je vhodné používat s opatrností, protože lze ji lokalizovat. Viz přehled vlastností automatizace uživatelského rozhraní .

Implementace automatizace uživatelského rozhraní v testovací aplikaci

Krok Popis
Přidejte odkazy na automatizaci uživatelského rozhraní. Knihovna DLL pro automatizaci uživatelského rozhraní je potřebná pro klienty automatizace uživatelského rozhraní, jsou zde uvedeny.

– UIAutomationClient.dll poskytuje přístup k rozhraním API na straně klienta automatizace uživatelského rozhraní.
– UIAutomationClientSideProvider.dll umožňuje automatizovat ovládací prvky Win32. Viz podpora automatizace uživatelského rozhraní pro standardní ovládací prvky.
– UIAutomationTypes.dll poskytuje přístup ke konkrétním typům definovaným v automatizaci uživatelského rozhraní.
Přidejte obor názvů System.Windows.Automation. Tento obor názvů obsahuje vše, co klienti automatizace uživatelského rozhraní potřebují, aby mohli využívat jeho funkce, kromě zpracování textu.
Přidejte obor názvů System.Windows.Automation.Text. Tento obor názvů obsahuje vše, co klienti využívající automatizaci uživatelského rozhraní potřebují k používání funkcí zpracování textu.
Najděte ovládací prvky, které jsou zajímavé. Automatizované testovací skripty vyhledávají prvky automatizace uživatelského rozhraní, které představují ovládací prvky, které jsou předmětem zájmu ve stromu automatizace.

Existují různé způsoby, jak získat prvky automatizace uživatelského rozhraní pomocí kódu.

– Dotazování uživatelského rozhraní pomocí příkazu Condition Obvykle se používá jazykově neutrální AutomationIdProperty. Poznámka: lze získat AutomationIdProperty pomocí nástroje, jako je Inspect.exe, který dokáže vypsat vlastnosti automatizace uživatelského rozhraní ovládacího prvku.

- Pomocí třídy TreeWalker můžete procházet celý strom automatizace uživatelského rozhraní nebo její podmnožinu.
- Sledujte fokus.
- Použijte hWnd ovládacího prvku.
- Použijte umístění obrazovky, například umístění kurzoru myši.

Viz získání prvků automatizace uživatelského rozhraní
Získejte vzory ovládacích prvků. Vzory ovládacích prvků zveřejňují běžné chování pro funkčně podobné ovládací prvky.

Po vyhledání ovládacích prvků, které vyžadují testování, z těchto prvků automatizace uživatelského rozhraní získávají automatizované testovací skripty vzory ovládacích prvků, které jsou zajímavé. Například vzor ovládacího prvku InvokePattern pro typické funkce tlačítka nebo vzor ovládacího prvku WindowPattern pro funkce okna.

Viz přehled ovládacích vzorů automatizace uživatelského rozhraní.
Automatizujte uživatelské rozhraní. Automatizované testovací skripty teď můžou řídit libovolné uživatelské rozhraní, které je zajímavé z architektury uživatelského rozhraní, pomocí informací a funkcí vystavených vzory ovládacích prvků automatizace uživatelského rozhraní.

Existuje řada souvisejících nástrojů a technologií, které podporují automatizované testování pomocí automatizace uživatelského rozhraní.

  • Inspect.exe je grafická aplikace uživatelského rozhraní (GUI), která se dá použít ke shromažďování informací o automatizaci uživatelského rozhraní pro vývoj a ladění klientů i poskytovatele. Inspect.exe je součástí sady Windows SDK.

  • MSAABridge zveřejňuje informace o automatizaci uživatelského rozhraní klientům s aktivní přístupností. Hlavním cílem přemostění automatizace uživatelského rozhraní na aktivní přístupnost je umožnit stávajícím klientům active accessibility interakci s libovolnou architekturou, která implementovala automatizaci uživatelského rozhraní.

Bezpečnost

Informace o zabezpečení najdete v tématu Přehled zabezpečení automatizace uživatelského rozhraní.

Viz také

  • základy automatizace uživatelského rozhraní