powershell uiautomation tutorial
Výukový program PowerShell UIAutomation: Automatizácia používateľského rozhrania desktopových aplikácií
UIAutomation je open source projektový doplnok PowerShell pre automatizačné testy GUI. Podporuje Win32, Windows Form, WPF atď.
V tomto tutoriáli sa zameriame na to, ako PowerShell využíva modul na implementáciu automatizácie používateľského rozhrania. Na vysvetlenie použijeme ako príklad aplikáciu Windows Form.
Čo sa dozviete:
- Začíname s Microsoft UIAutomation
- Import UIAutomation
- Automatizácia používateľského rozhrania s príkladmi
- Nájdite vzťah rodič - dieťa a vlastnosti ovládacieho prvku
- Pokročilá implementácia: zjednodušte prístup k písaniu skriptu
- Záver:
- Odporúčané čítanie
Začíname s Microsoft UIAutomation
Pretože projekt poskytuje jedinú knižnicu pre skripty PowerShell, nevyžaduje inštaláciu, stačí si modul stiahnuť a importovať do skriptu.
Prečítajte si tiež => 35+ najlepších nástrojov na testovanie grafického používateľského rozhrania s úplnými podrobnosťami
Ak chcete vedieť viac o prostredí PowerShell a pochopiť, ako s ním začať, vyskúšajte:
- Rozšírenia PowerShell automatizácie používateľského rozhrania
- Prehľad automatizácie používateľského rozhrania
- Windows PowerShell
- Skvelé veci o prostredí PowerShell 5.0 v systéme Windows 10
Import UIAutomation
1) Stiahnite a rozbaľte najnovší balík z jeho oficiálnych webových stránok: Rozšírenia PowerShell automatizácie používateľského rozhrania do miestnej cesty,napríklad, C: UIAutomatizácia
2) Importujte modul do skriptu PowerShell: ( Poznámka : Keď spustíte tento príkaz, uistite sa, že nepoužívate PowerShell ako správca)
Import-Module C:UIAutomationUIAutomation.dll
Teraz môžeme pomocou príkazov definovaných v module spustiť testovanie automatizácie používateľského rozhrania.
Automatizácia používateľského rozhrania s príkladmi
Začnime s jednoduchou aplikáciou formulára Windows, ktorá obsahuje niektoré typické ovládacie prvky, ktoré môžeme vidieť v automatizovanom testovaní grafického používateľského rozhrania.
V tomto príklade sa nám hovorí, že automatizujeme kroky na odoslanie formulára s niektorými základnými osobnými údajmi:
Krok 1) Zadajte názov „Anna Smith“
Krok 2) Vyberte pohlavie „Žena“
Krok č. 3) Vyberte „Áno“ ako odpoveď, ak ste absolvovali.
Krok č. 4) Kliknite na „Odoslať“
Skript na to je taký:
Start-Process 'Test Form' #Step1: input the name “Anna Smith” Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith' #Step2: select the gender “Female” Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAComboBox -Name 'Gender' | Invoke-UIAListItemSelectItem -ItemName 'Female' #Step3: choose “Yes” as the answer of if graduated. Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIARadioButton -AutomationId 'Graduated' -Name 'Yes'|Invoke-UIAControlClick #Step4: click “Submit” Get-UIAWindow -Name 'Test Form' | Get-UIAButton -Name 'Submit'|
Z vyššie uvedeného skriptu pravdepodobne poznáte, ako manipuluje s ovládacími prvkami v aplikácii. Poďme to pochopiť ďalej.
Urobte prvý krok ako príklad:
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith'
Tu je rozpis toho, čo sa deje v tomto riadku:
1) Skript najskôr nájde horné okno a potom nájde svoju podradenú kontrolu nad potrubím. Robí to dovtedy, kým nenájde cieľový ovládací prvok - editačné pole (alebo textové pole) s názvom „Názov“.
2) Pri nájdení ovládacieho prvku si nárokuje typ ovládacieho prvku, aby ste vedeli, aký príkaz použiť, napr. Get-UIAWindow - je okno a Get-UIAEdit - je editačné / textové pole.
3) Vyžaduje tiež jednu alebo viac vlastností ovládacieho prvku. V tomto príklade používame iba vlastnosť Name ako vlastnosť na identifikáciu ovládacieho prvku. Poznámka : AutomationId a Class sú tiež vlastnosti, ktoré sa bežne používajú pri hľadaní ovládacieho prvku.
4) Po nájdení cieľového ovládacieho prvku použijeme ďalší príkaz na vyvolanie akcie na ovládacom prvku. V tomto príklade je to Set-UIATextBoxText na nastavenie textu pre textové pole.
Toto je hlavný spôsob, ako môže UI Automation realizovať UI automatizáciu.
nezávislé nezaujaté recenzie bezplatného 64-bitového firewallu
Príkazy pre rôzne typy ovládacích prvkov a príkaz na vyvolanie akcií nájdete v dokumentoch pomocníka jeho oficiálnej stránky: Rozšírenia PowerShell automatizácie používateľského rozhrania
Ostatné kroky sú si podobné. Prejdime teda teraz k ďalším dôležitým témam.
Nájdite vzťah rodič - dieťa a vlastnosti ovládacieho prvku
Je ľahké písať takéto kanály, ale dôležitou časťou je, ako nájsť vlastnosti a podradené ovládacie prvky obsahujúce cieľový ovládací prvok. Podľa mojich skúseností sú to tieto dva, ktoré som vyskúšal:
# 1) Použite UIAutomationSpy v balíku:
V balíčku, ktorý sme si stiahli, je nástroj, ktorý dokáže zachytiť ovládacie prvky na pracovnej ploche. Keď je používateľské rozhranie pripravené na pracovnej ploche, otvorte program UIAutomat ionSpy.exe :
- Kliknutím na tlačidlo „Štart“ spustíte snímanie.
- Presuňte kurzor na ovládací prvok, ktorý chcete zachytiť.
- Keď nájdete ovládací prvok zvýraznený a skript zobrazený na rozhraní jeho okna, znamená to, že zachytenie bolo úspešné.
- Kliknutím na „Stop“ zastavíte snímanie.
- Kliknite na kartu „Hierarchia“ vľavo a uvidíte vzťah rodiča a dieťaťa kontrolórov zhora k cieľu.
- Kliknite na kartu „Skript“ vpravo, zobrazí sa celý kanál pre ovládací prvok:
Upozorňujeme, že na vyhľadanie cieľovej kontroly nemusíme zahrnúť každú kontrolu a každé vlastníctvo z kanálu. To, čo používame, je v skutočnosti celkom jednoduché (pozri príklad vyššie):
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'
Bohužiaľ neexistuje žiadna oficiálna strieborná guľka o tom, koľko kontrol by malo byť zahrnuté. Vyžaduje si to vyskúšanie a skúsenosti.
Čo nie je také skvelé na UIAutomationSpy:
- Nemá priateľské rozhranie
- Budete musieť snímať jeden ovládací prvok za druhým a získať požadované podrobnosti.
# 2) Pomocou externých nástrojov skontrolujte ovládacie prvky pre plochu systému Windows
Navrhovaným nástrojom je inspect.exe poskytovaný spoločnosťou Microsoft. Po otvorení nástroja sa v okne zobrazia všetky podrobnosti o ovládacích prvkoch:
Čo nie je také dobré na inšpect.exe
- Podrobnosti nie je možné exportovať.
- Modul automatizácie používateľského rozhrania poskytuje niektoré príkazy, napríklad Get-UIAControlChildren, aby získal všetky podradené ovládacie prvky. súbor inspect.exe môže priečiť všetky ovládacie prvky pod oknom, ale výkon sa pri zložitých oknách nehodnotí.
Pokročilá implementácia: zjednodušte prístup k písaniu skriptu
Z vyššie uvedeného úvodu môžete vidieť, že kanály sú hlavným spôsobom písania skriptu pomocou modulu, aj keď niekedy kanály nie sú také dlhé. Existuje postup, ako to zjednodušiť a uľahčiť. Hlavnou myšlienkou je extrahovať údaje ovládacích prvkov do súboru XML a podľa potreby spojiť kanály zo súboru XML.
Pokračujme vyššie uvedeným príkladom:
Najskôr vygenerujte súbor XML vrátane vlastností a vzťahu rodič - dieťa ovládacích prvkov. Pridávame uzly pre každú požadovanú kontrolu: názov uzla je jedinečný, takže môžeme ovládací prvok okamžite nájsť podľa názvu, a príkaz a jeho vlastnosti sú nastavené ako vlastnosti uzlov.
Tu je súbor XML pre testovací formulár, ktorý testujeme:
Niektoré funkcie by mali byť definované tak, aby sa pripojili k potrubiam prehľadaním xml súboru a ich vykonaním:
function getPipeline($nodeName) { $object_xml = (Invoke-WebRequest(controls.xml')) $control = $object_xml.SelectSingleNode('//$nodeName ') $pipeline = '' do { $string = '' $string = $control.method foreach($a in $control.Attributes) { if(!$a.Name.ToLower().Equals('method')) { $string = $string + ' -' + $a.Name + ' '' +$a.Value +''' } } $ pipeline = $string + ' |' +$ pipeline $control= $control.ParentNode } while (!$control.Name.Equals('#')) return $pipeline.Remove($pipeline.length-1,1) } function setText($textbox,$value) Set-UiaEditText -text $value' Invoke-Expression $iex function selectItem($combobox,$item) { #get the pipeline and invoke the expression } function toggleRadioButton($radioButton) { #get the pipeline and invoke the expression } function click($control) { #get the pipeline and invoke the expression }
Zatiaľ sú to takmer jednorazové úlohy, pokiaľ sa nezmenia samotné ovládacie prvky.
Teraz môžeme kroky v nasledujúcich skriptoch automatizovať:
#import the functions defined previously . MyLibrary.ps1 setText 'Name' 'Anna Smith' selectItem 'Gender' 'Female' toggleRadioButton 'Graduated' click 'Submit'
Týmto spôsobom sa môžeme zbaviť zväzkov potrubí v skriptoch a znalosť sa výrazne zvýši.
Odporúčané čítanie => Úvod do automatizačného nástroja Sikuli GUI
čo je súbor swf, ako ho otvoriť
Záver:
Microsoft UIAutomation je skvelá knižnica pre tých, ktorí chcú mať testy automatizácie používateľského rozhrania na pracovnej ploche Windows s PowerShell.
Vyššie uvedený úvod je iba segmentom nástroja. Jeho zjednodušený prístup je inšpirovaný myšlienkou extrahovania údajov z testovacích skriptov, čo je dobrý spôsob, ako zlepšiť našu odbornosť v písaní automatizačných testov. Preskúmajte o tom viac tu .
Zdieľajte svoje komentáre nižšie a radi by sme si vypočuli skúsenosti používateľov UIAutomation.
Odporúčané čítanie
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Výukový program pre automatizáciu SeeTest: Sprievodca nástrojom na automatizáciu mobilných testov
- DevOps Automation: Ako sa automatizácia uplatňuje v praxi DevOps
- Výukový program Geb - Testovanie automatizácie prehľadávača pomocou nástroja Geb
- Čo je to Automation Testing (Ultimate Guide to Start Test Automation)
- Výukový program Selendroid: Rámec automatizácie mobilných testov pre Android (1. časť)
- Výukový program Katalon Studio: Nástroj na automatizáciu bezplatných testov, na ktorý ste čakali
- Appium Studio pre Eclipse: Kompletná automatizácia Appium / Selenium od spoločnosti Eclipse