powershell uiautomation tutorial
Εγχειρίδιο PowerShell UIAutomation: Αυτοματοποίηση UI εφαρμογών επιφάνειας εργασίας
Το UIAutomation είναι μια επέκταση PowerShell έργου ανοιχτού κώδικα για δοκιμές αυτοματισμού GUI. Υποστηρίζει Win32, Windows Form, WPF και ούτω καθεξής.
Σε αυτό το σεμινάριο, θα επικεντρωθούμε στον τρόπο με τον οποίο το PowerShell χρησιμοποιεί τη λειτουργική μονάδα για την εφαρμογή αυτοματισμού διεπαφής χρήστη. Για να το εξηγήσουμε αυτό θα χρησιμοποιήσουμε την εφαρμογή Φόρμα Windows ως παράδειγμα.
Τι θα μάθετε:
- Ξεκινώντας με το Microsoft UIAutomation
- Εισαγωγή UIA
- Αυτοματοποίηση διεπαφής χρήστη με παραδείγματα
- Βρείτε τη σχέση γονέα-παιδιού και τις ιδιότητες του στοιχείου ελέγχου
- Προχωρημένη εφαρμογή: απλοποιήστε την προσέγγιση για τη σύνταξη του σεναρίου
- Συμπέρασμα:
- Συνιστώμενη ανάγνωση
Ξεκινώντας με το Microsoft UIAutomation
Δεδομένου ότι το έργο παρέχει τη μόνη βιβλιοθήκη για τα σενάρια PowerShell, δεν απαιτεί εγκατάσταση, μπορούμε απλώς να κατεβάσουμε τη λειτουργική μονάδα και να την εισαγάγουμε στο σενάριο.
Διαβάστε επίσης => 35+ καλύτερα εργαλεία δοκιμής GUI με πλήρεις λεπτομέρειες
Για να μάθετε περισσότερα για το PowerShell και για να κατανοήσετε πώς να ξεκινήσετε με αυτό, ρίξτε μια ματιά:
- Επεκτάσεις PowerShell αυτοματισμού UI
- Επισκόπηση αυτοματισμού UI
- Windows PowerShell
- Cool Stuff σχετικά με το PowerShell 5.0 στα Windows 10
Εισαγωγή UIA
1) Κατεβάστε και αποσυμπιέστε το πιο πρόσφατο πακέτο από τον επίσημο ιστότοπό του: Επεκτάσεις PowerShell αυτοματισμού UI στο la ocal μονοπάτι,για παράδειγμα, C: UIA Αυτοματισμός
2) Εισαγάγετε τη λειτουργική μονάδα στο σενάριο PowerShell: ( Σημείωση : Όταν εκτελείτε αυτήν την εντολή, βεβαιωθείτε ότι δεν εκτελείτε το PowerShell ως διαχειριστής)
Import-Module C:UIAutomationUIAutomation.dll
Τώρα μπορούμε να χρησιμοποιήσουμε τις εντολές που ορίζονται στην ενότητα για να ξεκινήσουμε τη δοκιμή αυτοματισμού UI.
Αυτοματοποίηση διεπαφής χρήστη με παραδείγματα
Ας ξεκινήσουμε με μια απλή εφαρμογή φόρμας των Windows, η οποία καλύπτει ορισμένα τυπικά στοιχεία ελέγχου που μπορεί να δούμε στη δοκιμή αυτοματοποίησης GUI.
Σε αυτό το παράδειγμα, μας λένε να αυτοματοποιήσουμε τα βήματα για την υποβολή μιας φόρμας με μερικές βασικές προσωπικές πληροφορίες:
Βήμα 1) Εισαγάγετε το όνομα 'Άννα Σμιθ'
Βήμα 2) Επιλέξτε το φύλο 'Γυναίκα'
Βήμα # 3) Επιλέξτε 'Ναι' ως απάντηση εάν έχετε αποφοιτήσει.
Βήμα # 4) Κάντε κλικ στο 'Υποβολή'
Το σενάριο για να το κάνει είναι έτσι:
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'|
Πιθανότατα μπορείτε να πείτε από το παραπάνω σενάριο, πώς χειρίζεται τα στοιχεία ελέγχου στην εφαρμογή. Ας καταλάβουμε περαιτέρω.
Κάντε το πρώτο βήμα ως παράδειγμα:
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'|Set-UIATextBoxText 'Anna Smith'
Ακολουθεί μια ανάλυση για το τι συμβαίνει σε αυτήν τη γραμμή:
1) Το σενάριο βρίσκει πρώτα το επάνω παράθυρο και στη συνέχεια βρίσκει τον έλεγχο του παιδιού του μέσω του αγωγού. Αυτό το κάνει μέχρι να βρει τον έλεγχο-στόχο - το πλαίσιο επεξεργασίας (ή το πλαίσιο κειμένου) με το όνομα «Όνομα».
2) Κατά την εύρεση του στοιχείου ελέγχου, διεκδικεί τον τύπο του στοιχείου ελέγχου, ώστε να γνωρίζετε ποια εντολή να χρησιμοποιήσετε, π.χ. Get-UIAWindow - είναι ένα παράθυρο και Get-UIAEdit - είναι ένα πλαίσιο επεξεργασίας / κειμένου.
3) Απαιτεί επίσης μία ή περισσότερες ιδιότητες του στοιχείου ελέγχου. Σε αυτό το παράδειγμα, χρησιμοποιούμε μόνο το όνομα ως ιδιότητα για τον προσδιορισμό του στοιχείου ελέγχου. Σημείωση : AutomationId και Class είναι επίσης ιδιότητες που χρησιμοποιούνται συνήθως κατά την εύρεση ενός στοιχείου ελέγχου.
4) Αφού βρεθεί το στοιχείο ελέγχου στόχου, χρησιμοποιούμε μια άλλη εντολή για να επικαλεστούμε τη δράση στο στοιχείο ελέγχου. Σε αυτό το παράδειγμα, είναι Set-UIATextBoxText για να ορίσετε το κείμενο για ένα πλαίσιο κειμένου.
Αυτός είναι ο κύριος τρόπος για την αυτοματοποίηση UI να πραγματοποιήσει αυτοματοποίηση UI.
πώς να προσθέσετε στοιχεία ενός πίνακα
Μπορείτε να βρείτε τις εντολές για διαφορετικούς τύπους στοιχείων ελέγχου και την εντολή για επίκληση ενεργειών στα έγγραφα βοήθειας του επίσημου ιστότοπού της: Επεκτάσεις PowerShell αυτοματισμού UI
Τα υπόλοιπα βήματα είναι παρόμοια. Ας προχωρήσουμε λοιπόν σε άλλα σημαντικά θέματα.
καλύτερος δωρεάν μετατροπέας dvd σε avi
Βρείτε τη σχέση γονέα-παιδιού και τις ιδιότητες του στοιχείου ελέγχου
Είναι απλό να γράφετε τέτοιου είδους αγωγούς, αλλά το σημαντικό μέρος είναι πώς να βρείτε τις ιδιότητες και τα θυγατρικά στοιχεία ελέγχου που περιέχουν τον έλεγχο στόχου. Από την εμπειρία μου, αυτά είναι τα δύο που έχω δοκιμάσει:
# 1) Χρησιμοποιήστε το UIAutomationSpy στο πακέτο:
Υπάρχει ένα εργαλείο στο πακέτο που κατεβάσαμε και μπορεί να καταγράψει τα στοιχεία ελέγχου στην επιφάνεια εργασίας. Όταν το περιβάλλον εργασίας χρήστη είναι έτοιμο στην επιφάνεια εργασίας, ανοίξτε το UIAutomat ionSpy.exe :
- Κάντε κλικ στο 'Έναρξη' για να ξεκινήσετε τη λήψη.
- Μετακινήστε τον κέρσορα στο χειριστήριο σας τι να καταγράψετε.
- Όταν βρείτε το στοιχείο ελέγχου που επισημαίνεται και το σενάριο εμφανίζεται στη διεπαφή παραθύρου, αυτό σημαίνει ότι η λήψη είναι επιτυχής.
- Κάντε κλικ στο 'Διακοπή' για να σταματήσετε τη λήψη.
- Κάντε κλικ στην καρτέλα 'Ιεραρχία' στα αριστερά και θα δείτε τη σχέση γονέα-παιδιού των ελεγκτών από πάνω προς το στόχο
- Κάντε κλικ στην καρτέλα 'Σενάριο' στα δεξιά, μπορείτε να δείτε έναν πλήρη αγωγό για τον έλεγχο:
Λάβετε υπόψη ότι δεν χρειάζεται να συμπεριλάβουμε κάθε στοιχείο ελέγχου και κάθε ιδιότητα από τον αγωγό για αναζήτηση του στοιχείου ελέγχου. Στην πραγματικότητα, αυτό που χρησιμοποιούμε είναι αρκετά απλό (δείτε το παραπάνω παράδειγμα):
Get-UIAWindow -Name 'Test Form' | Get-UIATabItem -Name 'BasicInfo'| Get-UIAEdit -AutomationId 'textBox1' -Name 'Name'
Δυστυχώς, δεν υπάρχει επίσημη ασημένια κουκκίδα σχετικά με το πόσα στοιχεία ελέγχου πρέπει να συμπεριληφθούν. Απαιτεί προσπάθεια και εμπειρία.
Τι δεν είναι τόσο καλό για το UIAutomationSpy:
- Δεν έχει φιλική διεπαφή
- Θα πρέπει να συλλάβετε τον ένα έλεγχο μετά τον άλλο και να λάβετε τις λεπτομέρειες που θέλετε.
# 2) Χρησιμοποιήστε εξωτερικά εργαλεία για να ελέγξετε τα στοιχεία ελέγχου για την επιφάνεια εργασίας των Windows
Ένα προτεινόμενο εργαλείο είναι το inspect.exe που παρέχεται από τη Microsoft. Όταν ανοίγετε το εργαλείο, θα λαμβάνετε κάθε λεπτομέρεια των στοιχείων ελέγχου στο παράθυρο:
Αυτό που δεν είναι τόσο καλό για το inspect.exe
- Δεν υπάρχει τρόπος εξαγωγής των λεπτομερειών.
- Η μονάδα αυτοματισμού UI παρέχει ορισμένες εντολές όπως το Get-UIAControlChildren για να αποκτήσετε όλα τα παιδικά χειριστήρια. Το inspect.exe μπορεί να μετατρέψει όλα τα στοιχεία ελέγχου κάτω από το παράθυρο, αλλά η απόδοση δεν αξιολογείται για σύνθετα παράθυρα.
Προχωρημένη εφαρμογή: απλοποιήστε την προσέγγιση για τη σύνταξη του σεναρίου
Από την παραπάνω εισαγωγή, μπορεί να δείτε ότι οι αγωγοί είναι ο κύριος τρόπος για να γράψετε το σενάριο χρησιμοποιώντας τη μονάδα, αν και μερικές φορές οι αγωγοί δεν είναι τόσο μεγάλοι. Υπάρχει μια προσέγγιση για να το κάνουμε απλούστερο και ευκολότερο, και η κύρια ιδέα είναι να εξαγάγετε τα δεδομένα των στοιχείων ελέγχου σε ένα αρχείο XML και να ενώσετε τους αγωγούς όταν χρειάζεται από το αρχείο XML.
Ας συνεχίσουμε με το παραπάνω παράδειγμα:
Αρχικά, δημιουργήστε ένα αρχείο XML που περιλαμβάνει τις ιδιότητες και τη σχέση γονέα-παιδιού των στοιχείων ελέγχου. Προσθέτουμε κόμβους για κάθε απαιτούμενο στοιχείο ελέγχου: το όνομα κόμβου είναι μοναδικό, ώστε να μπορούμε να βρούμε το στοιχείο ελέγχου αμέσως με το όνομα, και η εντολή και οι ιδιότητές της ορίζονται ως ιδιότητες των κόμβων.
Εδώ είναι το αρχείο XML για τη Φόρμα δοκιμής που δοκιμάζουμε:
Ορισμένες συναρτήσεις πρέπει να οριστούν ώστε να ενώνουν τους αγωγούς αναζητώντας το αρχείο xml και να τις εκτελέσουν:
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 }
Μέχρι στιγμής, αυτά είναι σχεδόν μία φορά καθήκοντα εκτός εάν αλλάξουν τα ίδια τα στοιχεία ελέγχου.
Τώρα μπορούμε να αυτοματοποιήσουμε τα βήματα στα ακόλουθα σενάρια:
#import the functions defined previously . MyLibrary.ps1 setText 'Name' 'Anna Smith' selectItem 'Gender' 'Female' toggleRadioButton 'Graduated' click 'Submit'
Με αυτόν τον τρόπο, μπορούμε να απαλλαγούμε από δέσμες αγωγών στα σενάρια και η επάρκεια θα βελτιωθεί σημαντικά.
Συνιστώμενη ανάγνωση => Εισαγωγή στο εργαλείο αυτοματοποίησης Sikuli GUI
Συμπέρασμα:
Το Microsoft UIAutomation είναι μια εξαιρετική βιβλιοθήκη για όσους θέλουν να κάνουν δοκιμές αυτοματισμού UI στην επιφάνεια εργασίας των Windows με το PowerShell.
Η παραπάνω εισαγωγή είναι απλώς ένα τμήμα του εργαλείου. Η απλοποιημένη προσέγγισή της εμπνέεται από την ιδέα της εξαγωγής δεδομένων από σενάρια δοκιμών, που είναι ένας καλός τρόπος για να βελτιώσουμε την επάρκεια μας στη συγγραφή δοκιμών αυτοματισμού. Εξερευνήστε περισσότερα για αυτό εδώ .
Μοιραστείτε τα σχόλιά σας παρακάτω και θα θέλαμε να ακούσουμε εμπειρίες από χρήστες UIAutomation.
Συνιστώμενη ανάγνωση
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- SeeTest Automation Tutorial: Ένας οδηγός εργαλείου αυτοματισμού δοκιμών για κινητά
- Αυτοματισμός DevOps: Πώς εφαρμόζεται ο αυτοματισμός στην πρακτική του DevOps
- Tutorial Geb - Δοκιμή αυτοματισμού προγράμματος περιήγησης με χρήση του εργαλείου Geb
- Τι είναι ο έλεγχος αυτοματισμού (ο τελικός οδηγός για την έναρξη του αυτοματισμού δοκιμής)
- Tutorial Selendroid: Πλαίσιο αυτοματισμού δοκιμής Android για κινητά (Μέρος 1)
- Katalon Studio Tutorial: Ένα δωρεάν εργαλείο αυτοματοποίησης δοκιμών που περιμένατε
- Appium Studio για Eclipse: End-to-end Appium / Selenium Automation From Eclipse