powershell uiautomation tutorial
Vadnica PowerShell UIAutomation: Avtomatizacija uporabniškega vmesnika namiznih aplikacij
UIAutomation je odprtokodni projekt PowerShell razširitev za teste avtomatizacije GUI. Podpira Win32, Windows Form, WPF itd.
V tej vadnici se bomo osredotočili na to, kako PowerShell uporablja modul za izvajanje avtomatizacije uporabniškega vmesnika. Za razlago bomo za primer uporabili aplikacijo Windows Form.
Kaj se boste naučili:
- Uvod v Microsoft UIAutomation
- Uvoz UIAutomation
- UI Automation s primeri
- Poiščite razmerje med staršem in otrokom in lastnosti kontrolnika
- Napredna izvedba: poenostavite pristop k pisanju scenarija
- Zaključek:
- Priporočeno branje
Uvod v Microsoft UIAutomation
Ker projekt ponuja edino knjižnico za skripte PowerShell, ne zahteva namestitve, modul lahko preprosto prenesemo in uvozimo v skript.
Preberite tudi => 35+ najboljših orodij za testiranje GUI s popolnimi podrobnostmi
Če želite izvedeti več o PowerShell in razumeti, kako začeti z njo, si oglejte:
- Razširitve PowerShell za avtomatizacijo uporabniškega vmesnika
- Pregled avtomatizacije uporabniškega vmesnika
- Windows PowerShell
- Cool Stuff o PowerShell 5.0 v sistemu Windows 10
Uvoz UIAutomation
1) Prenesite in razpakirajte najnovejši paket z njegove uradne spletne strani: Razširitve PowerShell za avtomatizacijo uporabniškega vmesnika do očesne poti,na primer, C: UIAutomation
2) Modul uvozite v skript PowerShell: ( Opomba : Ko zaženete ta ukaz, se prepričajte, da PowerShell ne uporabljate kot skrbnik)
Import-Module C:UIAutomationUIAutomation.dll
Zdaj lahko z ukazi, definiranimi v modulu, začnemo s testiranjem avtomatizacije uporabniškega vmesnika.
UI Automation s primeri
Začnimo s preprosto aplikacijo obrazca Windows, ki zajema nekaj tipičnih kontrol, ki jih lahko vidimo pri testiranju avtomatizacije GUI.
V tem primeru smo pozvani, naj avtomatiziramo korake za oddajo obrazca z nekaj osnovnimi osebnimi podatki:
Korak 1) Vnesite ime »Anna Smith«
2. korak) Izberite spol »Ženska«
3. korak) Za odgovor, če ste diplomirali, izberite 'Da'.
4. korak) Kliknite »Pošlji«
Skript za 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'|
Iz zgornjega skripta verjetno lahko ugotovite, kako manipulira s kontrolniki v aplikaciji. Razumejmo naprej.
Za primer vzemimo prvi korak:
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith'
Tu je razčlenitev dogajanja v tej vrstici:
1) Skript najprej najde zgornje okno in nato po cevovodu najde svoj podrejeni nadzor. To počne, dokler ne najde ciljne kontrole - polja za urejanje (ali polja z besedilom) z imenom »Ime«.
2) Ob iskanju kontrolnika zahteva vrsto kontrolnika, tako da veste, kateri ukaz uporabiti, npr. Get-UIAWindow - je okno in Get-UIAEdit - polje za urejanje / besedilo.
3) Zahteva tudi eno ali več lastnosti kontrolnika. V tem primeru kot lastnost za identifikacijo kontrolnika uporabljamo samo Name. Opomba : AutomationId in Class sta tudi lastnosti, ki se pogosto uporabljata pri iskanju kontrolnika.
4) Ko je ciljni nadzor najden, z drugim ukazom prikličemo dejanje na kontrolniku. V tem primeru je Set-UIATextBoxText nastavitev besedila za besedilno polje.
To je glavni način za avtomatizacijo UI avtomatizacije.
najboljši brezplačni python ide za Windows
Ukaze za različne vrste kontrol in ukaz za priklic dejanj najdete v dokumentih za pomoč na uradni strani: Razširitve PowerShell za avtomatizacijo uporabniškega vmesnika
Preostali koraki so podobni. Pojdimo zdaj k drugim pomembnim temam.
Poiščite razmerje med staršem in otrokom in lastnosti kontrolnika
Takšne cevovode je enostavno napisati, pomemben del pa je, kako najti lastnosti in podrejene kontrolnike, ki vsebujejo ciljni kontrolnik. Po mojih izkušnjah sem poskusil to:
kaj storiti z datotekami .torrent
# 1) V paketu uporabite UIAutomationSpy:
V paketu, ki smo ga prenesli, je orodje, ki lahko zajame kontrole na namizju. Ko je uporabniški vmesnik pripravljen na namizju, odprite UIAutomat ionSpy.exe :
- Kliknite »Start«, da začnete zajemanje.
- Premaknite kazalec na nadzor, ki ga želite zajeti.
- Ko najdete označen nadzor in na okenskem vmesniku prikazan skript, to pomeni, da je zajem uspešen.
- Kliknite »Stop«, da zaustavite zajemanje.
- Kliknite zavihek »Hierarhija« na levi in videli boste razmerje med starši in otroki krmilnikov od zgoraj do cilja
- Kliknite zavihek “Script” na desni strani, videli boste celoten cevovod za kontrolnik:
Upoštevajte, da nam za iskanje ciljnega nadzora ni treba vključiti vseh kontrolnikov in vseh lastnosti iz cevovoda. Pravzaprav je tisto, kar uporabljamo, zelo preprosto (glej zgornji primer):
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'
Na žalost ne obstaja uradna srebrna krogla o tem, koliko kontrol naj bo vključenih. Zahteva poskus in izkušnje.
Kaj ni tako dobro pri UIAutomationSpy:
- Nima prijaznega vmesnika
- Ujeti boste morali en kontrolnik za drugim in dobiti želene podrobnosti.
# 2) Z zunanjimi orodji preglejte kontrolnike za namizje Windows
Predlagano orodje je inspect.exe, ki ga ponuja Microsoft. Ko odprete orodje, boste na oknu dobili vse podrobnosti kontrolnikov:
Kaj ni tako super pri inspect.exe
- Podrobnosti ni mogoče izvoziti.
- Modul UI Automation ponuja nekatere ukaze, kot je Get-UIAControlChildren, da dobite vse podrejene kontrole. inspect.exe lahko prečno prekriva vse kontrolnike pod oknom, vendar zmogljivost za kompleksna okna ni ocenjena.
Napredna izvedba: poenostavite pristop k pisanju scenarija
Iz zgornjega uvoda lahko vidite, da so cevovodi glavni način za pisanje skripta z uporabo modula, čeprav včasih trakovi niso tako dolgi. Obstaja pristop, ki ga poenostavi in poenostavi, glavna ideja pa je izvleči podatke kontrolnikov v datoteko XML in po potrebi iz datoteke XML združiti cevovode.
Nadaljujmo z zgornjim primerom:
Najprej ustvarite datoteko XML, ki vključuje lastnosti in razmerje med starši in otroki kontrolnikov. Vozlišča dodamo za vsak potreben nadzor: ime vozlišča je edinstveno, tako da lahko nadzor takoj najdemo po imenu, ukaz in njegove lastnosti pa so nastavljene kot lastnosti vozlišč.
Tu je datoteka XML za testni obrazec, ki ga preizkušamo:
Nekatere funkcije je treba definirati tako, da se pridružijo cevovodom z iskanjem datoteke xml in jih izvedejo:
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 }
Zaenkrat gre za skoraj enkratna opravila, razen če se sami kontrolniki spremenijo.
Zdaj lahko avtomatiziramo korake v naslednjih skriptih:
#import the functions defined previously . MyLibrary.ps1 setText 'Name' 'Anna Smith' selectItem 'Gender' 'Female' toggleRadioButton 'Graduated' click 'Submit'
Na ta način se lahko znebimo kopic cevovodov v skriptih, znanje pa se bo močno izboljšalo.
Priporočeno branje => Uvod v Sikuli GUI Automation Tool
Zaključek:
Microsoft UIAutomation je odlična knjižnica za tiste, ki želijo preizkusi avtomatizacije uporabniškega vmesnika na namizju Windows z PowerShell.
Zgornji uvod je le del orodja. Njegov poenostavljeni pristop je navdihnjen z idejo, kako izvleči podatke iz testnih skriptov, kar je dober način za izboljšanje našega znanja pri pisanju testov za avtomatizacijo. Raziščite več o tem tukaj .
Prosimo, delite svoje komentarje spodaj in radi bi slišali izkušnje uporabnikov UIAutomation.
Priporočeno branje
- Vadnice za globinsko zasenčenje za začetnike
- SeeTest Vadnica za avtomatizacijo: Priročnik za orodje za avtomatizacijo mobilnih testov
- DevOps Automation: Kako se avtomatizacija uporablja v praksi DevOps
- Vadnica Geba - Preskušanje avtomatizacije brskalnika z orodjem Geb
- Kaj je testiranje avtomatizacije (Ultimate Guide to Start Test Automation)
- Vadnica za Selendroid: Okvir za avtomatizacijo preskusov za mobilne naprave Android (1. del)
- Vadnica Katalon Studio: brezplačno orodje za avtomatizacijo preizkusov, ki ste ga čakali
- Appium Studio za Eclipse: samodejna avtomatizacija Appium / Selen iz Eclipse