powershell uiautomation tutorial
PowerShell UIAutomation-zelfstudie: UI-automatisering van desktoptoepassingen
UIAutomation is een opensourceproject PowerShell-extensie voor GUI-automatiseringstests. Het ondersteunt Win32, Windows Form, WPF, enzovoort.
In deze tutorial zullen we ons concentreren op hoe PowerShell de module gebruikt om UI-automatisering te implementeren. Om dit uit te leggen zullen we de Windows Form-applicatie als voorbeeld gebruiken.
Wat je leert:
- Aan de slag met Microsoft UIAutomation
- Importeer UIAutomation
- UI-automatisering met voorbeelden
- Zoek de ouder-kindrelatie en de eigenschappen van het besturingselement
- Geavanceerde implementatie: vereenvoudig de aanpak voor het schrijven van het script
- Gevolgtrekking:
- Aanbevolen literatuur
Aan de slag met Microsoft UIAutomation
Omdat het project de enige bibliotheek voor de PowerShell-scripts biedt, hoeft het niet te worden geïnstalleerd, we kunnen de module gewoon downloaden en in het script importeren.
Lees ook => 35+ beste GUI-testtools met volledige details
Voor meer informatie over PowerShell en om te begrijpen hoe u ermee aan de slag kunt, gaat u naar:
- UI Automation PowerShell-extensies
- UI Automation Overzicht
- Windows PowerShell
- Coole dingen over PowerShell 5.0 in Windows 10
Importeer UIAutomation
1) Download en pak het nieuwste pakket uit van de officiële website: UI Automation PowerShell-extensies naar la ocal pad,bijvoorbeeld C: UIAutomation
twee) Importeer de module in het PowerShell-script: ( Notitie : Wanneer u deze opdracht uitvoert, zorg er dan voor dat u PowerShell niet als beheerder uitvoert)
Nu kunnen we de opdrachten gebruiken die in de module zijn gedefinieerd om het testen van de UI-automatisering te starten.
UI-automatisering met voorbeelden
Laten we beginnen met een eenvoudige Windows-formuliertoepassing, die enkele typische besturingselementen behandelt die we mogelijk tegenkomen bij het testen van GUI-automatisering.
In dit voorbeeld wordt ons verteld om de stappen te automatiseren om een formulier in te dienen met enkele persoonlijke basisinformatie:
Stap 1) Voer de naam 'Anna Smith' in
Stap 2) Selecteer het geslacht 'Vrouw'
Stap 3) Kies 'Ja' als het antwoord van indien afgestudeerd.
Stap 4) Klik op 'Verzenden'
Het script om het te doen is als volgt:
U kunt waarschijnlijk aan het bovenstaande script zien hoe het de bedieningselementen in de applicatie manipuleert. Laten we het verder begrijpen.
Neem de eerste stap als voorbeeld:
Hier is een overzicht van wat er in deze regel gebeurt:
1) Het script vindt eerst het bovenste venster en vindt vervolgens de onderliggende controle via de pijplijn. Het doet dit totdat het de doelbesturing vindt: het invoervak (of tekstvak) met de naam 'Naam'.
twee) Bij het vinden van het besturingselement claimt het voor het type besturingselement, zodat u weet welk commando u moet gebruiken, bijv. Get-UIAWindow - is een venster en Get-UIAEdit - is een bewerkings- / tekstvak.
3) Het vereist ook een of meer eigenschappen van het besturingselement. In dit voorbeeld gebruiken we alleen Name als de eigenschap om het besturingselement te identificeren. Notitie : AutomationId en Class zijn ook eigenschappen die vaak worden gebruikt bij het zoeken naar een besturingselement.
4) Nadat het doelbesturingselement is gevonden, gebruiken we een ander commando om de actie op het besturingselement aan te roepen. In dit voorbeeld is het Set-UIATextBoxText om de tekst voor een tekstvak in te stellen.
Dit is de belangrijkste manier voor UI Automation om UI-automatisering te realiseren.
testcase-formaat bij het testen van software
U kunt de opdrachten voor verschillende soorten bedieningselementen en de opdracht om acties uit te voeren vinden in de helpdocumenten van de officiële site: UI Automation PowerShell-extensies
De rest van de stappen zijn qua ader vergelijkbaar. Dus laten we nu verder gaan met andere belangrijke onderwerpen.
volledige join versus volledige outer join
Zoek de ouder-kindrelatie en de eigenschappen van het besturingselement
Het is eenvoudig om dergelijke pijplijnen te schrijven, maar het belangrijkste is hoe u de eigenschappen en de onderliggende besturingselementen kunt vinden die het doelbesturingselement bevatten. In mijn ervaring zijn dit de twee die ik heb geprobeerd:
# 1) Gebruik UIAutomationSpy in het pakket:
Het pakket dat we hebben gedownload, bevat een tool die de bedieningselementen op het bureaublad kan vastleggen. Als de gebruikersinterface klaar is op het bureaublad, opent u UIAutomat ionSpy.exe
- Klik op 'Start' om de opname te starten.
- Verplaats de cursor naar het besturingselement wat u wilt vastleggen.
- Wanneer u merkt dat het besturingselement is gemarkeerd en het script wordt weergegeven in de vensterinterface, betekent dit dat de opname is gelukt.
- Klik op 'Stop' om het vastleggen te stoppen.
- Klik op het tabblad 'Hiërarchie' aan de linkerkant en je ziet de ouder-kindrelatie van de controllers van boven naar het doel
- Klik op het tabblad 'Script' aan de rechterkant, u ziet een volledige pijplijn voor het besturingselement:
Houd er rekening mee dat we niet elk besturingselement en elke eigenschap uit de pijplijn hoeven op te nemen om naar het doelbesturingselement te zoeken. Eigenlijk is wat we gebruiken vrij eenvoudig (zie het voorbeeld hierboven):
Helaas bestaat er geen officiële zilveren kogel over het aantal controles dat moet worden opgenomen. Het vereist proberen en ervaring.
Wat is er niet zo geweldig aan UIAutomationSpy:
- Het heeft geen gebruiksvriendelijke interface
- U moet het ene besturingselement na het andere vastleggen en de details krijgen die u wilt.
# 2) Gebruik externe tools om de bedieningselementen voor het Windows-bureaublad te inspecteren
Een aanbevolen tool is inspect.exe, geleverd door Microsoft. Wanneer u de tool opent, ziet u elk detail van de bedieningselementen in het venster:
Wat is er niet zo geweldig aan inspect.exe
- Er is geen manier om de details te exporteren.
- De UI Automation-module biedt enkele opdrachten, zoals Get-UIAControlChildren om alle onderliggende besturingselementen te krijgen. inspect.exe kan alle besturingselementen onder het venster doorkruisen, maar de prestaties worden niet beoordeeld voor complexe vensters.
Geavanceerde implementatie: vereenvoudig de aanpak voor het schrijven van het script
Uit de bovenstaande inleiding kun je zien dat pijplijnen de belangrijkste manier zijn om het script te schrijven met behulp van de module, hoewel de pijplijnen soms niet zo lang zijn. Er is een aanpak om het eenvoudiger en gemakkelijker te maken, en het belangrijkste idee is om de gegevens van de besturingselementen te extraheren in een XML-bestand en zo nodig de pijplijnen uit het XML-bestand samen te voegen.
Laten we doorgaan met het bovenstaande voorbeeld:
Genereer eerst een XML-bestand met de eigenschappen en de ouder-kindrelatie van de besturingselementen. We voegen knooppunten toe voor elk vereist besturingselement: de knooppuntnaam is uniek zodat we het besturingselement onmiddellijk op naam kunnen vinden, en de opdracht en zijn eigenschappen worden ingesteld als de eigenschappen van de knooppunten.
Hier is het XML-bestand voor het testformulier dat we testen:
Sommige functies moeten worden gedefinieerd om deel te nemen aan de pijplijnen door in het xml-bestand te zoeken en ze uit te voeren:
Tot nu toe zijn dit bijna eenmalige taken, tenzij de bedieningselementen zelf veranderen.
Nu kunnen we de stappen in de volgende scripts automatiseren:
Op deze manier kunnen we bundels pijpleidingen in de scripts verwijderen en zal de vaardigheid aanzienlijk worden verbeterd.
Aanbevolen lezen => Inleiding tot Sikuli GUI Automation Tool
Gevolgtrekking:
Microsoft UIAutomation is een geweldige bibliotheek voor diegenen die UI-automatiseringstests op Windows-desktop met PowerShell willen hebben.
De bovenstaande inleiding is slechts een deel van de tool. De vereenvoudigde aanpak is geïnspireerd op het idee om gegevens uit testscripts te extraheren, wat een goede manier is om onze vaardigheid in het schrijven van automatiseringstests te verbeteren. Ontdek er meer over hier
Deel uw opmerkingen hieronder en we horen graag ervaringen van UIAutomation-gebruikers.
Aanbevolen literatuur
- Diepgaande Eclipse-zelfstudies voor beginners
- Zie Testautomatiseringshandleiding: een handleiding voor mobiele testautomatiseringstools
- DevOps-automatisering: hoe wordt automatisering toegepast in de DevOps-praktijk
- Geb-zelfstudie - Browserautomatisering testen met Geb Tool
- Wat is automatiseringstesten (ultieme gids om testautomatisering te starten)
- Selendroid-zelfstudie: Android Mobile Test Automation Framework (deel 1)
- Katalon Studio-zelfstudie: een gratis testautomatiseringstool waarop u hebt gewacht
- Appium Studio voor Eclipse: end-to-end Appium / Selenium-automatisering van Eclipse