Τακτικός Αναγνωριστικός Αριθμός σε QTP/UFTΠαράδειγμα Αναγνώρισης Αντικειμένου
⚡ Έξυπνη Σύνοψη
Τακτικός Αναγνωριστικός Αριθμός σε QTP/UFT είναι το κριτήριο για το τάι μπρέικ UFT Ισχύει όταν οι υποχρεωτικές και οι βοηθητικές ιδιότητες εξακολουθούν να ταιριάζουν με περισσότερα από ένα αντικείμενα, χρησιμοποιώντας τις τιμές Index, Location ή CreationTime για να επιλέξετε ένα μοναδικό αντικείμενο.

Τι είναι ένας διατακτικός αναγνωριστικός αριθμός στο QTP/UFT?
An Κανονικό αναγνωριστικό είναι μια αριθμητική ιδιότητα που UFT (προηγουμένως QTP) προσθέτει στην περιγραφή ενός αντικειμένου όταν οι υποχρεωτικές και βοηθητικές ιδιότητες που καταγράφονται κατά τη διάρκεια μιας περιόδου εγγραφής δεν επαρκούν για την μοναδική αναγνώριση του αντικειμένου. Αντί να αποτύχει, το εργαλείο καταφεύγει σε έναν μετρητή που λέει, στην πραγματικότητα, "πάρτε το τρίτο αντικείμενο αυτής της κλάσης".
Από προεπιλογή, υπάρχει ένας τύπος τακτικού αναγνωριστικού για κάθε κλάση αντικειμένου δοκιμής. Ένα WebEdit αριθμείται διαφορετικά από ένα WinButton και ένα Browser αριθμείται ξανά διαφορετικά. Μπορείτε να δείτε ή να τροποποιήσετε το προεπιλεγμένο τακτικό αναγνωριστικό για μια κλάση στο παράθυρο Αναγνώριση αντικειμένου.
Όπως δείχνει το παραπάνω στιγμιότυπο οθόνης, το αναπτυσσόμενο μενού Ordinal identifier βρίσκεται στο κάτω μέρος του παραθύρου διαλόγου "Αναγνώριση αντικειμένου", κάτω από τις λίστες υποχρεωτικών και βοηθητικών ιδιοτήτων. Αυτή η θέση δεν είναι τυχαία: αντικατοπτρίζει τη σειρά με την οποία UFT στην πραγματικότητα συμβουλεύεται τις τρεις ομάδες.
Υπάρχουν τρεις τύποι διατακτικών αναγνωριστικών στο UFT:
- Με βάση το δείκτη
- Με βάση την τοποθεσία
- Ώρα δημιουργίας
Γιατί UFT Χρησιμοποιεί τα διατακτικά αναγνωριστικά μόνο ως έσχατη λύση
Αναγνώριση αντικειμένου σε UFT εκτελείται ως καταρράκτη. Οι υποχρεωτικές ιδιότητες μαθαίνονται πρώτα. Εάν δεν παράγουν ούτε μία αντιστοιχία, οι βοηθητικές ιδιότητες προστίθενται μία προς μία μέχρι η περιγραφή να γίνει μοναδική. Μόνο όταν εξαντληθούν και οι δύο ομάδες, τότε UFT επισυνάψτε ένα τακτικό αναγνωριστικό και κατά τον χρόνο εκτέλεσης γίνεται αναζήτηση στον μηχανισμό Έξυπνης Αναγνώρισης πριν η τακτική τιμή θεωρηθεί αξιόπιστη.
Ο λόγος για αυτήν την κατάταξη είναι η σταθερότητα. Οι υποχρεωτικές και οι βοηθητικές ιδιότητες περιγράφουν τι ένα αντικείμενο είναι: το όνομά του, η ετικέτα HTML του, ο τύπος του, η ετικέτα του. Ένα τακτικό αναγνωριστικό περιγράφει μόνο όπου το αντικείμενο έτυχε να βρίσκεται εκεί τη στιγμή της εγγραφής. Οτιδήποτε αλλάζει τη σελίδα αλλάζει και τον αριθμό:
- Ένας προγραμματιστής εισάγει ένα κρυφό πεδίο πάνω από αυτό που αυτοματοποιείτε.
- Ένα διαφημιστικό banner προσθέτει δύο επιπλέον συνδέσμους στην κεφαλίδα.
- Μια διάταξη που προσαρμόζεται στις ανάγκες σας αναδιαμορφώνει τη φόρμα από δύο στήλες σε μία.
- Ένα αναδυόμενο πρόγραμμα περιήγησης ανοίγει νωρίτερα από ό,τι κατά τη διάρκεια της καταγεγραμμένης εκτέλεσης.
Καμία από αυτές τις αλλαγές δεν παραβιάζει μια περιγραφή που βασίζεται σε ένα όνομα ή ένα αναγνωριστικό, αλλά η καθεμία μετατοπίζει σιωπηλά κάθε τιμή δείκτη και τοποθεσίας στη σελίδα. Αυτός είναι ο λόγος για τον οποίο οι έμπειροι μηχανικοί αντιμετωπίζουν ένα τακτικό αναγνωριστικό ως σήμα ότι η περιγραφή του αντικειμένου χρειάζεται επεξεργασία, όχι ως μια ολοκληρωμένη λύση. Η ίδια αρχή ισχύει σε όλες τις περιπτώσεις. δοκιμές αυτοματισμού πλαίσια γενικά, συμπεριλαμβανομένης της στρατηγικής εντοπισμού Selenium.
💡 Συμβουλές: Πριν αποδεχτείτε ένα τακτικό αναγνωριστικό, ανοίξτε το αντικείμενο στο Object Spy και αναζητήστε ένα σταθερό προσαρμοσμένο χαρακτηριστικό. Η προσθήκη αυτού του χαρακτηριστικού στη λίστα βοηθητικών ιδιοτήτων για την κλάση συχνά καταργεί την ανάγκη για τακτικό σε κάθε μελλοντικό αντικείμενο αυτού του τύπου.
Τύποι Ταξινομικών Αναγνωριστικών σε UFT/QTP
Με βάση το δείκτη
- Όταν χρησιμοποιείται ένας διατακτικός αναγνωριστικός αριθμός που βασίζεται σε ευρετήριο, UFT αποδίδει μια τιμή στο ευρετήριο ιδιότητα του αντικειμένου κατά την εγγραφή.
- Η τιμή βασίζεται στη σειρά με την οποία εμφανίζεται το αντικείμενο μέσα στον πηγαίο κώδικα και όχι στην οθόνη.
- Η πρώτη εμφάνιση έχει την τιμή 0.
- Οι τιμές των ιδιοτήτων του ευρετηρίου είναι συγκεκριμένες για κάθε αντικείμενο, επομένως κάθε κλάση αντικειμένου δοκιμής μετριέται ξεχωριστά.
- Επομένως, εάν χρησιμοποιήσετε το index:=3 για να περιγράψετε ένα αντικείμενο δοκιμής WebEdit, UFT αναζητά το τέταρτο αντικείμενο WebEdit στη σελίδα.
- Ομοίως, εάν χρησιμοποιήσετε index:=1 για να περιγράψετε ένα αντικείμενο δοκιμής WebButton, UFT αναζητά το δεύτερο αντικείμενο WebButton στη σελίδα.
Βάσει τοποθεσίας
- Όταν χρησιμοποιείται ένας τακτικός αναγνωριστικός αριθμός που βασίζεται στην τοποθεσία, UFT αποδίδει μια τιμή στο τοποθεσία ιδιότητα του αντικειμένου να το αναγνωρίζει μοναδικά.
- Η τιμή βασίζεται στη σειρά με την οποία εμφανίζεται το αντικείμενο στο παράθυρο, το πλαίσιο ή το πλαίσιο διαλόγου, σε σχέση με άλλα αντικείμενα με τις ίδιες ιδιότητες.
- Η πρώτη εμφάνιση του αντικειμένου είναι 0.
- Οι τιμές αντιστοιχίζονται σε στήλες, από πάνω προς τα κάτω και έπειτα από αριστερά προς τα δεξιά.
- Η τοποθεσία είναι το προεπιλεγμένο τακτικό αναγνωριστικό για τα περισσότερα τυπικά Windows κλάσεις αντικειμένων δοκιμής, όπου η οπτική διάταξη είναι πιο σταθερή από τη σειρά σήμανσης.
Ώρα δημιουργίας
- Όταν χρησιμοποιείται ο τακτικός αναγνωριστικός αριθμός του χρόνου δημιουργίας, UFT αποδίδει μια τιμή στο χρόνος δημιουργίας ιδιότητα ενός αντικειμένου προγράμματος περιήγησης.
- Αυτό το αναγνωριστικό είναι διαθέσιμο μόνο για το περιβάλλον Web και μόνο για αντικείμενα δοκιμής του προγράμματος περιήγησης.
- Η τιμή υποδεικνύει τη σειρά με την οποία άνοιξε το πρόγραμμα περιήγησης σε σχέση με άλλα ανοιχτά προγράμματα περιήγησης.
- Το πρώτο πρόγραμμα περιήγησης που ανοίγει κατά την εκτέλεση λαμβάνει creationtime:=0 και τα επόμενα προγράμματα περιήγησης λαμβάνουν 1, 2, 3 και ούτω καθεξής.
- Εάν ένα πρόγραμμα περιήγησης είναι κλειστό, τα υπόλοιπα προγράμματα περιήγησης διατηρούν τις αρχικές τους τιμές αντί να αριθμούνται ξανά.
Ευρετήριο vs Τοποθεσία vs Χρόνος Δημιουργίας: Συγκριτικός Πίνακας
Τα τρία αναγνωριστικά απαντούν σε τρία διαφορετικά ερωτήματα και η επιλογή του λανθασμένου είναι μια συχνή αιτία διαλείποντων βλαβών.
| Άποψη | Περιεχόμενα | Ώρα Δημιουργίας | |
|---|---|---|---|
| Ονομα ιδιοκτησίας | ευρετήριο | τοποθεσία | χρόνος δημιουργίας |
| Βάση παραγγελίας | Ταξινόμηση στην ιεραρχία πηγαίου κώδικα / αντικειμένων | Θέση οθόνης μέσα στο παράθυρο, το πλαίσιο ή το παράθυρο διαλόγου | Σειρά με την οποία άνοιξαν οι παρουσίες του προγράμματος περιήγησης |
| Κανόνας μέτρησης | Διαδοχική, ανά κλάση αντικειμένου δοκιμής | Στήλες, από πάνω προς τα κάτω και μετά από αριστερά προς τα δεξιά | Διαδοχική, ανά παρουσία προγράμματος περιήγησης |
| Πρώτη τιμή | 0 | 0 | 0 |
| Εφαρμόζεται σε | Ιστός και Windows τάξεις | Κυρίως Τυπικό Windows τάξεις | Μόνο αντικείμενα προγράμματος περιήγησης |
| Σπάει όταν | Αλλαγές στη σειρά σήμανσης | Η διάταξη αλλάζει θέση ή μέγεθος | Windows ανοίγει με διαφορετική σειρά |
| καλύτερα χρησιμοποιείται για | Επαναλαμβανόμενα στοιχεία ελέγχου πλέγματος ή πίνακα | Παλαιότερες φόρμες υπολογιστή με σταθερή διάταξη | Ροές ιστού πολλαπλών παραθύρων, όπως αναδυόμενα παράθυρα πληρωμών |
Πώς να ορίσετε το διατακτικό αναγνωριστικό στο αποθετήριο αντικειμένων
Το τακτικό αναγνωριστικό διαμορφώνεται ανά κλάση αντικειμένου δοκιμής και εφαρμόζεται αυτόματα σε κάθε αντικείμενο αυτής της κλάσης που UFT μαθαίνει αργότερα. Τα υπάρχοντα αντικείμενα που βρίσκονται ήδη στο αποθετήριο δεν ενημερώνονται αναδρομικά.
- Ανοικτό UFT και επιλέξτε Εργαλεία > Αναγνώριση Αντικειμένου.
- Επιλέξτε το περιβάλλον, για παράδειγμα Web ή Standard Windows, από το αναπτυσσόμενο μενού Περιβάλλον.
- Επιλέξτε την κλάση αντικειμένου δοκιμής που θέλετε να αλλάξετε, όπως WebEdit ή WinButton.
- Στο Τακτικός αναγνωριστικός αριθμός στην ενότητα, επιλέξτε Ευρετήριο, Τοποθεσία, Ώρα Δημιουργίας ή Καμία.
- Πατήστε OK και μάθετε ξανά το αντικείμενο, ώστε να καταγραφεί η νέα διατακτική τιμή.
- Ανοίξτε το Αποθετήριο Αντικειμένων, επιλέξτε το αντικείμενο και επιβεβαιώστε ότι η διατακτική ιδιότητα εμφανίζεται τώρα στη λίστα περιγραφής.
επιλογή Ν/Α απενεργοποιεί εντελώς την εφεδρική λειτουργία για αυτήν την κλάση. UFT θα εγείρει στη συνέχεια ένα σφάλμα αναγνώρισης αντί για εικασία, η οποία είναι συχνά η συμπεριφορά που θέλετε σε μια σουίτα όπου η σιωπηλή λανθασμένη αναγνώριση είναι πιο επιζήμια από μια καθαρή αποτυχία. Καταγράφοντας τις προσδοκίες σας σε ένα καλογραμμένο περίπτωση δοκιμής καθιστά σαφή αυτή την ανταλλαγή για όλη την ομάδα.
⚠️ Προειδοποίηση: Η αλλαγή του τακτικού αναγνωριστικού για μια κλάση είναι μια ρύθμιση σε επίπεδο μηχανής και όχι σε επίπεδο δοκιμής. Εάν δεν εξαχθεί και δεν κοινοποιηθεί, τα σενάρια που μεταβιβάζονται στο μηχάνημά σας ενδέχεται να αποτύχουν στον υπολογιστή ενός συναδέλφου ή στον παράγοντα δημιουργίας.
Πώς να χρησιμοποιήσετε τα διατακτικά αναγνωριστικά σε Descriptive Προγραμματισμός
Στον περιγραφικό προγραμματισμό δεν υπάρχει παράθυρο διαλόγου Αναγνώρισης Αντικειμένου. Ο διατακτικός αριθμός γράφεται απευθείας στη συμβολοσειρά περιγραφής, ακριβώς όπως οποιοδήποτε άλλο όνομα ιδιότητας, και βασίζεται πάντα στο μηδέν.
' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank") objPage.WebEdit("index:=3").Set "9999999999" Print "Filled WebEdit occurrence #" & (3 + 1) ' Location is counted top to bottom, then left to right objPage.WebButton("location:=1").Click Print "Clicked WebButton occurrence #" & (1 + 1) ' CreationTime works only on Browser objects Print "Switching to browser opened at position #" & (1 + 1) Browser("creationtime:=1").Sync
Παραγωγή:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
Ένα ασφαλέστερο μοτίβο είναι ο συνδυασμός ακινήτων με ChildObjects επομένως ο τακτικός αριθμός επικυρώνεται πριν χρησιμοποιηθεί. Το παρακάτω παράδειγμα υποθέτει μια σελίδα που περιέχει πέντε αντίστοιχα αντικείμενα WebEdit και ένα ευρετήριο 9.
Dim oDesc, oChildren, intIndex Set oDesc = Description.Create() oDesc("micclass").Value = "WebEdit" oDesc("html tag").Value = "INPUT" Set oChildren = objPage.ChildObjects(oDesc) intIndex = 9 If intIndex < oChildren.Count Then oChildren(intIndex).Set "Guru99" Else Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match" End If
Παραγωγή:
Index 9 is out of range; only 5 objects match
Αυτός ο προστατευτικός μηχανισμός μετατρέπει ένα άχρηστο σφάλμα χρόνου εκτέλεσης "Δεν είναι δυνατή η αναγνώριση του αντικειμένου" σε ένα αναγνώσιμο μήνυμα, το οποίο έχει σημασία όταν δημοσιεύονται αποτελέσματα σε ένα ελάττωμα. tracker ή προς Ενσωματωμένο HP ALM με UFT.
Συνηθισμένα λάθη κατά τη χρήση διατακτικών αναγνωριστικών
Τα περισσότερα ελαττώματα που σχετίζονται με τον διατακτικό αριθμό tracεπιστρέφουμε σε ένα μικρό σύνολο επαναλαμβανόμενων σφαλμάτων.
- Μετρώντας από το 1. Κάθε διατακτικό αναγνωριστικό ξεκινά από το 0. Η εγγραφή του index:=1 για το πρώτο πεδίο είναι το πιο συνηθισμένο λάθος και προκαλεί μια αποτυχία off-by-one που μοιάζει με πρόβλημα χρονισμού.
- Μπερδεμένος δείκτης με την τοποθεσία. Το ευρετήριο ακολουθεί τον πηγαίο κώδικα. Η τοποθεσία ακολουθεί την οθόνη. Σε μια σελίδα όπου το CSS αναδιατάσσει τα στοιχεία, οι δύο τιμές διαφέρουν και εναλλάσσονται.ping στοχεύουν σιωπηλά τον λάθος έλεγχο.
- Χρήση του CreationTime εκτός του περιβάλλοντος Web. Η ιδιότητα υπάρχει μόνο σε αντικείμενα Browser. Η εφαρμογή της σε ένα αντικείμενο Page, Frame ή Window εμφανίζει ένα σφάλμα ιδιότητας που δεν υποστηρίζεται.
- Μετατροπή ενός διατακτικού αριθμού σε μια κοινόχρηστη συνάρτηση. Μια επαναχρησιμοποιήσιμη συνάρτηση που υποθέτει index:=2 καθίσταται άχρηστη τη στιγμή που την καλεί μια δεύτερη οθόνη με διαφορετική διάταξη.
- Αφήνοντας τους διατακτικούς αριθμούς στο αποθετήριο μετά τη σταθεροποίηση της εφαρμογής. Μόλις οι προγραμματιστές προσθέσουν σταθερά αναγνωριστικά, επισκέπτονται ξανά τα αντικείμενα και αντικαθιστούν τον τακτικό αριθμό με τη νέα ιδιότητα.
- Βασιζόμενοι σε διατακτικούς αριθμούς μέσα σε βρόχους πάνω από πλέγματα. Προτιμώ
ChildObjects, η οποία επιστρέφει μια ενεργή συλλογή, επομένως η καταμέτρηση αντικατοπτρίζει την τρέχουσα σελίδα και όχι την καταγεγραμμένη.
Υποστηρικτικό υλικό
Κατεβάστε τις ιστοσελίδες που χρησιμοποιήθηκαν στο παραπάνω σεμινάριο για αυτοεξάσκηση
Τα διατακτικά αναγνωριστικά είναι ένα μικρό κομμάτι του μοντέλου αναγνώρισης αντικειμένων. Για να δείτε πώς εντάσσονται στην ευρύτερη ροή εργασίας, συνεχίστε με το πλήρες QTP/UFT εκπαιδευτική σειρά, επανεξετάστε τα βασικά στοιχεία στο δοκιμές λογισμικού, μάθετε πώς διαχειρίζονται τα αποτελέσματα στο Εκπαιδευτικό σεμινάριο HP ALMκαι συγκρίνετε τις στρατηγικές εντοπισμού με το Selenium φροντιστήριο.
Συχνές Ερωτήσεις
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

