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 model UI Automation definované v System.Windows.Automation oboru názvů. Nejnovější informace o model UI Automation najdete v tématu Rozhraní API služby Windows Automation: model UI Automation.
Tento přehled popisuje, jak může být Microsoft model UI Automation užitečný jako architektura pro programový přístup ve scénářích automatizovaného testování.
model UI Automation 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.
model UI Automation byl vyvinut jako následník společnosti Microsoft 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. model UI Automation kromě poskytování přesnějších řešení pro usnadnění přístupu je také speciálně 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; model UI Automation odděluje oba modely.
Poskytovatel i klient musí implementovat model UI Automation, aby byl užitečný jako automatizovaný testovací nástroj. model UI Automation poskytovatelé 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. model UI Automation klienti zahrnují automatizované testovací skripty a aplikace technologie usnadnění.
Poznámka:
Cílem tohoto přehledu je prezentovat nové a vylepšené funkce automatizovaného testování model UI Automation. 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.
model UI Automation 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ů model UI Automation (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 pole se seznamem (například dialogové okno spustit) obvykle zahrnuje rozbalení a sbalení pole se seznamem, aby se skryl nebo zobrazil seznam položek, výběr položky z tohoto seznamu nebo přidání nové hodnoty prostřednictvím vstupu 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 model UI Automation Přehled vzorů ovládacích prvků.
Implementace model UI Automation
Jak už jsme zmínili dříve, bez sjednoceného modelu poskytovaného model UI Automation jsou testovací nástroje a vývojáři potřeba znát 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, model Windows Forms a Windows Presentation Foundation (WPF), může to být náročný úkol testovat 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í model UI Automation vlastnost.
typ ovládacího prvku model UI Automation | Architektura uživatelského rozhraní | Vlastnost specifická pro architekturu | vlastnost model UI Automation |
---|---|---|---|
Tlačítko | Windows Presentation Foundation | Content | NameProperty |
Tlačítko | Win32 | Titulek | NameProperty |
Image | HTML | Alt | NameProperty |
model UI Automation poskytovatelé zodpovídají za mapování vlastností specifických pro architekturu jejich ovládacích prvků na ekvivalentní vlastnosti model UI Automation.
Informace o implementaci model UI Automation ve zprostředkovateli najdete v tématu model UI Automation Providers for Managed Code. Informace o implementaci vzorů ovládacích prvků jsou k dispozici na model UI Automation vzory ovládacích prvků a model UI Automation vzory textu.
model UI Automation 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. model UI Automation umožňuje programový přístup prostřednictvím pěti komponent:
Strom model UI Automation usnadňuje navigaci strukturou uživatelského rozhraní. Strom je postaven z kolekce hWnd's. Další informace najdete v tématu model UI Automation Strom – přehled
Prvky automatizace jsou jednotlivé komponenty v uživatelském rozhraní. Ty můžou být často podrobnější než hWnd. Další informace najdete v tématu model UI Automation přehled typů ovládacích prvků.
Vlastnosti automatizace poskytují konkrétní informace o prvech uživatelského rozhraní. Další informace najdete v tématu model UI Automation Přehled vlastností.
Vzory ovládacích prvků definují konkrétní aspekt funkčnosti ovládacího prvku; mohou se skládat z vlastností, metod, událostí a informací o struktuře. Další informace najdete v tématu model UI Automation Přehled vzorů ovládacích prvků.
Události automatizace poskytují oznámení a informace o událostech. Další informace najdete v tématu model UI Automation Přehled událostí.
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. Existuje několik vlastností microsoft model UI Automation používaných klienty a poskytovateli, kteří vám s tím pomůžou.
AutomationID
Jedinečně identifikuje prvek automatizace ze svých elementů na stejné úrovni. AutomationIdProperty není lokalizován, na rozdíl od vlastnosti, jako NameProperty je to obvykle lokalizované, pokud se produkt dodává ve více 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 ovládací prvek nabídky s více položkami nabídky nejvyšší úrovně, které mají zase více podřízených položek nabídky. 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ě.
Controltype
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ů model UI Automation.
NameProperty
Jedná se o textový řetězec, který identifikuje nebo vysvětluje ovládací prvek. NameProperty by měla být použita s opatrností, protože může být lokalizována. Viz přehled model UI Automation vlastností.
Implementace model UI Automation v testovací aplikaci
Krok | Popis |
---|---|
Přidejte odkazy model UI Automation. | V tomto seznamu jsou uvedeny model UI Automation knihovny DLL potřebné pro klienty model UI Automation. – UIAutomationClient.dll poskytuje přístup k rozhraním API na straně klienta model UI Automation. – UIAutomationClientSideProvider.dll umožňuje automatizovat ovládací prvky Win32. Viz model UI Automation Podpora standardních ovládacích prvků. – UIAutomationTypes.dll poskytuje přístup ke konkrétním typům definovaným v model UI Automation. |
System.Windows.Automation Přidejte obor názvů. | Tento obor názvů obsahuje vše, model UI Automation klienti potřebují používat možnosti model UI Automation kromě zpracování textu. |
System.Windows.Automation.Text Přidejte obor názvů. | Tento obor názvů obsahuje vše, co klienti model UI Automation potřebují používat funkce model UI Automation zpracování textu. |
Najděte ovládací prvky, které jsou zajímavé. | Automatizované testovací skripty vyhledá model UI Automation prvky, které představují ovládací prvky zájmu v rámci stromu automatizace. Existuje několik způsobů, jak pomocí kódu získat prvky model UI Automation. – Dotazování uživatelského rozhraní pomocí Condition příkazu. Obvykle se používá jazykově neutrální AutomationIdProperty . Poznámka: Lze AutomationIdProperty získat pomocí nástroje, jako je například Inspect.exe, který je schopen itemize model UI Automation vlastnosti ovládacího prvku. - Třída slouží TreeWalker k procházení celého model UI Automation stromu nebo její podmnožina. - 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í elementů model UI Automation |
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ů model UI Automation získají automatizované testovací skripty vzory kontroly, které jsou zajímavé. Například InvokePattern vzor ovládacího prvku pro typické funkce tlačítka nebo WindowPattern vzor ovládacího prvku pro funkce okna. Viz přehled vzorů ovládacích prvků model UI Automation. |
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ů model UI Automation. |
Související nástroje a technologie
Existuje řada souvisejících nástrojů a technologií, které podporují automatizované testování pomocí model UI Automation.
Inspect.exe je grafická aplikace uživatelského rozhraní (GUI), která se dá použít ke shromažďování model UI Automation informací o poskytovateli i vývoji a ladění klientů. Inspect.exe je součástí sady Windows SDK.
MSAABridge zveřejňuje model UI Automation informace klientům služby Active Accessibility. Primárním cílem přemostění model UI Automation na aktivní přístupnost je umožnit stávajícím klientům přístupnosti služby Active Accessibility interakci s libovolnou architekturou, která implementovala model UI Automation.
Zabezpečení
Informace o zabezpečení najdete v tématu model UI Automation Přehled zabezpečení.