Πώς λειτουργεί η αναγνώριση αντικειμένων QTP/UFT?

⚡ Έξυπνη Σύνοψη

Αναγνώριση αντικειμένου σε QTP/UFT Καθορίζει τον τρόπο με τον οποίο το εργαλείο αναγνωρίζει κάθε στοιχείο GUI κατά τη διάρκεια μιας δοκιμαστικής εκτέλεσης, συγκρίνοντας τις αποθηκευμένες ιδιότητες του Test Object με τις ενεργές ιδιότητες του Run-Time Object, ώστε τα σενάρια να συνεχίζουν να λειτουργούν ακόμα και όταν αλλάζει η διάταξη της οθόνης.

  • 🎯 Μοντέλο Αντικειμένου Δοκιμής: UFT Συγκρίνει ένα αποθηκευμένο αντικείμενο δοκιμής με το ζωντανό αντικείμενο χρόνου εκτέλεσης σε κάθε βήμα για να εντοπίσει στοιχεία ελέγχου ανεξάρτητα από τη θέση της οθόνης.
  • 🗂️ Υποχρεωτικές ιδιότητες: UFT καταγράφει πάντα ένα προεπιλεγμένο σύνολο ιδιοτήτων για κάθε κλάση αντικειμένου μέσα στο Αποθετήριο Αντικειμένων.
  • 🧩 Βοηθητικές ιδιότητες: UFT προσθέτει ιδιότητες αντιγράφων ασφαλείας μία κάθε φορά μόνο όταν το υποχρεωτικό σύνολο από μόνο του δεν μπορεί να δημιουργήσει μια μοναδική περιγραφή.
  • ⚙️ Παράθυρο διαλόγου αναγνώρισης αντικειμένου: Τα Εργαλεία > Αναγνώριση Αντικειμένου επιτρέπουν στους δοκιμαστές να προσθέτουν, να αφαιρούν ή να αναδιατάσσουν ιδιότητες ανά περιβάλλον και κλάση αντικειμένου.
  • 🕵️ Αντικείμενο κατάσκοπος: Τοποθετήστε τον δείκτη του ποντικιού σε οποιοδήποτε στοιχείο ελέγχου για να ελέγξετε τις ιδιότητες του αντικειμένου δοκιμής και του χρόνου εκτέλεσης, προτού αποφασίσετε σε ποιες θα βασιστείτε.
  • 🔢 Τακτικοί αναγνωριστικοί κωδικοί: Το Ευρετήριο, η Τοποθεσία και ο Χρόνος Δημιουργίας διακόπτουν τους δεσμούς μεταξύ αντικειμένων που παραμένουν ίδια μετά από κάθε έλεγχο ιδιότητας.
  • 🧠 Έξυπνη Ταυτοποίηση: Αυτός ο μηχανισμός εφεδρείας εκτελείται πριν από τα διατακτικά αναγνωριστικά και συχνά ανακτά ένα αντικείμενο του οποίου η μαθημένη περιγραφή έσπασε.

Τι είναι η αναγνώριση αντικειμένων στο UFT/QTP?

Η αναγνώριση αντικειμένων είναι ο μηχανισμός UFT/QTP χρησιμοποιείται για την αναγνώριση ενός στοιχείου GUI στην οθόνη, έτσι ώστε ένα σενάριο να μπορεί να ενεργήσει σε αυτό αξιόπιστα, κάθε φορά που εκτελείται. Κατά τη διάρκεια μιας συνεδρίας εγγραφής, UFT Μελετά ένα μικρό σύνολο ιδιοτήτων για το αντικείμενο κάτω από τον δείκτη του ποντικιού και τις αποθηκεύει. Κατά την επανάληψη, συγκρίνει αυτές τις αποθηκευμένες τιμές με τις ιδιότητες κάθε αντικειμένου που υπάρχει στην πραγματικότητα και επιλέγει αυτήν που ταιριάζει μοναδικά, ανεξάρτητα από το πού βρίσκεται αυτό το αντικείμενο στην οθόνη.

Το αποθηκευμένο αντικείμενο, μαζί με τις ιδιότητες UFT θυμάται γι' αυτό, ονομάζεται Αντικείμενο δοκιμήςΤο αντίστοιχο στοιχείο που υπάρχει στην οθόνη κατά την εκτέλεση της δοκιμής είναι το Αντικείμενο χρόνου εκτέλεσηςΗ σύγκριση των δύο σε κάθε βήμα αποτελεί τη βάση αυτού που η Micro Focus αποκαλεί Δοκιμαστικό μοντέλο αντικειμένου, και αυτός είναι ο λόγος για τον οποίο ένα UFT Το σενάριο συνεχίζει να λειτουργεί ακόμα και αφού ένα κουμπί μετακινηθεί μερικά pixel ή μια σελίδα αναδιαμορφωθεί.

Αποθετήριο αντικειμένων και πρόσθετα

UFT διατηρεί κάθε μαθημένο αντικείμενο δοκιμής, μαζί με τις αποθηκευμένες ιδιότητές του, μέσα στο Αποθήκη αντικειμένων. Add-ins πει Γρήγορη δοκιμή εκ των προτέρων σε ποια τεχνολογία ανήκει μια οθόνη, έτσι ώστε το εργαλείο να γνωρίζει ήδη ποιο σύνολο ιδιοτήτων ισχύει και να μην χρειάζεται να μαντέψει, γεγονός που μειώνει τον χρόνο που απαιτείται για την εκμάθηση ενός αντικειμένου.

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

Κάθε αντικείμενο UFT Οι εγγραφές μπορούν να φέρουν δεκάδες ιδιότητες. Μόνο σε ένα περιβάλλον ιστού, ένα μόνο κουμπί μπορεί να εκθέσει το όνομά του, την ετικέτα HTML, τον τύπο, την κλάση, τον δείκτη και άλλα. Η καταγραφή όλων αυτών για κάθε αντικείμενο είναι τεχνικά εφικτή αλλά σπάνια χρήσιμη, όπως δείχνει η επόμενη εικόνα για μια τυπική καταχώρηση στο Αποθετήριο Αντικειμένων.

Αποθήκη αντικειμένων

If UFT προσπάθησα να θυμηθώ κάθε διαθέσιμη ιδιότητα για κάθε αντικείμενο, το Αποθετήριο Αντικειμένων θα διογκωνόταν σε μέγεθος και η εκτέλεση του σεναρίου θα επιβραδυνόταν αισθητά. Για να το αποφύγω αυτό, QTP δεν αποθηκεύει κάθε ιδιότητα από προεπιλογή — αποθηκεύει ένα μικρό, τυπικό σύνολο για κάθε τύπο αντικειμένου, ένα που επιλέγεται να δημιουργηθεί μοναδική ταυτότητα δυνατό χωρίς επιπλέον κόστος. Αυτή η σύντομη λίστα ιδιοτήτων, που αποφασίζεται ξεχωριστά για κάθε περιβάλλον και κλάση αντικειμένου, διαμορφώνεται στις ρυθμίσεις Αναγνώρισης Αντικειμένου, οι οποίες καλύπτονται στη συνέχεια.

αντικείμενο Descriptιόν: Υποχρεωτικές και Βοηθητικές Ιδιότητες

Η ιδιότητα ενός αντικειμένου και η τιμή του μαζί σχηματίζουν αυτό που UFT καλεί το αντικείμενο Descriptιόν — ο ακριβής συνδυασμός που χρησιμοποιεί το εργαλείο για να επιλέξει ένα στοιχείο από κάθε άλλο αντικείμενο στη σελίδα. Για ένα WebButton, για παράδειγμα, η ιδιότητα όνομα με την τιμή Συνδέση είναι από μόνο του συχνά αρκετό για να σχηματίσει ένα χρησιμοποιήσιμο αντικείμενο Descriptιόν.

Για να ελέγξετε ή να αλλάξετε αυτήν τη συμπεριφορά, ανοίξτε Εργαλεία > Αναγνώριση Αντικειμένου μέσα UFTΤο παράθυρο διαλόγου Αναγνώριση Αντικειμένου παραθέτει κάθε περιβάλλον που φορτώνεται αυτήν τη στιγμή. Η επιλογή ενός από αυτά συμπληρώνει αυτόματα τις κλάσεις αντικειμένων. UFT το υποστηρίζει και ο πίνακας στα δεξιά δείχνει ακριβώς ποιες ιδιότητες αποθηκεύονται για αντικείμενα αυτής της κλάσης. Η λίστα χωρίζεται σε δύο ομάδες:

  1. Υποχρεωτικά ακίνητα αποθηκεύονται για κάθε αντικείμενο αυτής της κλάσης από προεπιλογή, ανεξάρτητα από το αν είναι πραγματικά απαραίτητα για να το διακρίνουν από τα γειτονικά του αντικείμενα.
  2. Βοηθητικές ιδιότητες αποθηκεύονται μόνο όταν οι υποχρεωτικές ιδιότητες από μόνες τους δεν μπορούν να δημιουργήσουν μια μοναδική περιγραφή — UFT επεξεργάζεται αυτήν τη λίστα κατά μία ιδιότητα κάθε φορά μέχρι το αντικείμενο να γίνει μοναδικό.

Μια εικόνα ιστού κάνει τον κανόνα πιο εύκολο να τον δει κανείς στην πράξη.

αντικείμενο Descriptιόν, Υποχρεωτικές & Βοηθητικές Ιδιότητες

  • UFT Αποθηκεύει πάντα το εναλλακτικό κείμενο, την ετικέτα HTML και τον τύπο εικόνας για μια εικόνα ιστού, ακόμα και όταν το εναλλακτικό κείμενο από μόνο του είναι ήδη μοναδικό.
  • Εάν οι υποχρεωτικές ιδιότητες δεν μπορούν να δημιουργήσουν μια μοναδική περιγραφή, UFT προσθέτει την ιδιότητα κλάσης από τη λίστα βοηθητικών λειτουργιών.
  • Μόλις ένα ακίνητο κάνει την περιγραφή μοναδική, UFT σταματά να προσθέτει περισσότερα — παραλείπει το όνομα και το ύψος του αρχείου εάν η κλάση ήταν ήδη αρκετή, παραλείπει το ύψος εάν χρειαζόταν όνομα αρχείου και ούτω καθεξής.
  • Ας υποθέσουμε ότι μόνο η ιδιότητα της κλάσης καταγράφεται κατά τον χρόνο εγγραφής. Κατά τον χρόνο εκτέλεσης, UFT δεν διακρίνει πλέον ποιες ιδιότητες ήταν υποχρεωτικές και ποιες ήταν βοηθητικές — απλώς συγκρίνει κάθε ιδιότητα στην αποθηκευμένη περιγραφή με το αντικείμενο χρόνου εκτέλεσης.
  • Εάν έστω και μία αποθηκευμένη ιδιότητα δεν ταιριάζει, το βήμα αποτυγχάνει — μια μοναδική περιγραφή είναι δυαδική, όχι μια αντιστοίχιση βέλτιστης προσπάθειας.
Άποψη Υποχρεωτικά Ακίνητα Βοηθητικές Ιδιότητες
Όταν αποθηκεύεται Πάντα, για κάθε αντικείμενο αυτής της κλάσης Μόνο όταν οι υποχρεωτικές ιδιότητες δεν μπορούν να σχηματίσουν μια μοναδική περιγραφή
Διαμορφώθηκε σε Παράθυρο διαλόγου αναγνώρισης αντικειμένου, Υποχρεωτική λίστα Παράθυρο διαλόγου αναγνώρισης αντικειμένου, Λίστα υποβοήθησης
Σειρά χρήσης Έμαθε πρώτα, άνευ όρων Προστίθεται ένα κάθε φορά μέχρι το αντικείμενο να γίνει μοναδικό
Θεραπεία σε χρόνο εκτέλεσης Σε σύγκριση με τις βοηθητικές ιδιότητες Σε σύγκριση με τα υποχρεωτικά ακίνητα

Το παρακάτω βίντεο παρουσιάζει από την αρχή μέχρι το τέλος αυτήν τη ροή εργασίας υποχρεωτικής έναντι υποστηρικτικής.

Ο διάλογος αναγνώρισης αντικειμένου Box και Κατάσκοπος Αντικειμένων

Το παράθυρο διαλόγου Αναγνώρισης Αντικειμένου δεν είναι απλώς ένα πρόγραμμα προβολής — είναι το σημείο όπου ένας δοκιμαστής ρυθμίζει πόσο επιθετικά UFT προσδιορίζει αντικείμενα για ένα ολόκληρο περιβάλλον. Η αναδιάταξη, η προσθήκη ή η αφαίρεση μιας ιδιότητας εδώ αλλάζει τι μαθαίνεται για κάθε αντικείμενο αυτής της κλάσης από εκείνο το σημείο και μετά, όχι μόνο για αυτό που καταγράφεται τη δεδομένη στιγμή. Η τυπική ροή εργασίας μοιάζει με αυτό:

  1. Ανοικτό UFT και να πάει να Εργαλεία > Αναγνώριση Αντικειμένου.
  2. Επιλέξτε ένα περιβάλλον (Ιστός, Windows, Java, και ούτω καθεξής) από το αναπτυσσόμενο μενού.
  3. Επιλέξτε μια κλάση αντικειμένων, όπως WebButton ή WinEdit, από τη λίστα στα αριστερά.
  4. Μετακινήστε ιδιότητες μεταξύ των λιστών Υποχρεωτικών και Βοηθητικών ή αναδιατάξτε τη λίστα Βοηθητικών για να ελέγξετε ποια ιδιότητα UFT προσπαθεί πρώτα.
  5. Ενεργοποιήστε ή απενεργοποιήστε την Έξυπνη Αναγνώριση για αυτήν την κλάση χρησιμοποιώντας το πλαίσιο ελέγχου στο επάνω μέρος του πίνακα.

Οι αλλαγές που έγιναν εδώ θα ισχύσουν την επόμενη φορά UFT μαθαίνει ένα αντικείμενο αυτής της κλάσης — οι καταχωρήσεις που έχουν ήδη αποθηκευτεί στο Αποθετήριο Αντικειμένων διατηρούν την αρχική τους περιγραφή μέχρι το αντικείμενο να επανεγγραφεί ή να ενημερωθεί χειροκίνητα.

Χρήση του Object Spy για την επιθεώρηση ιδιοτήτων

Πριν από την επεξεργασία της υποχρεωτικής ή βοηθητικής λίστας, οι περισσότεροι δοκιμαστές ελέγχουν πώς μοιάζουν στην πραγματικότητα οι ιδιότητες ενός αντικειμένου με Αντικείμενο κατάσκοπος. Αν τοποθετήσετε τον κέρσορα κατασκοπείας σε οποιοδήποτε στοιχείο ελέγχου στην εφαρμογή υπό δοκιμή, εμφανίζονται δίπλα-δίπλα τόσο οι ιδιότητες του αντικειμένου δοκιμής όσο και οι ιδιότητες χρόνου εκτέλεσης, μαζί με τις μεθόδους. UFT μπορεί να το καλέσει — χρήσιμο όταν μια υποχρεωτική ιδιότητα αλλάζει συνεχώς μεταξύ των δομών και πρέπει να αντικατασταθεί με μια πιο σταθερή.

Τακτικοί Αναγνωριστές: Ευρετήριο, Τοποθεσία και Χρόνος Δημιουργίας

Μερικές φορές, ακόμη και κάθε υποχρεωτική και βοηθητική ιδιότητα αφήνει δύο ή περισσότερα αντικείμενα να φαίνονται πανομοιότυπα — για παράδειγμα, τρία πλαίσια ελέγχου με το ίδιο όνομα, κλάση και ετικέτα. Ακριβώς για αυτήν την περίπτωση UFT καταφεύγει σε ένα τακτικό αναγνωριστικό, μια τιμή αντιγράφου ασφαλείας που κατατάσσει τα κατά τα άλλα πανομοιότυπα αντικείμενα με βάση τη θέση τους αντί για τις ιδιότητές τους.

Κανονικό αναγνωριστικό Ιδιοκτησία Η παραγγελία ανατέθηκε Εφαρμόζεται σε
Περιεχόμενα Περιεχόμενα Η σειρά εμφάνισης του αντικειμένου στον υποκείμενο πηγαίο κώδικα, ξεκινώντας από το 0 Οποιαδήποτε κλάση αντικειμένου
Από πάνω προς τα κάτω και μετά από αριστερά προς τα δεξιά στην οθόνη, ξεκινώντας από το 0 Οποιαδήποτε κλάση αντικειμένου
Ώρα δημιουργίας Ώρα Δημιουργίας Σειρά ανοίγματος του παραθύρου του προγράμματος περιήγησης, ξεκινώντας από το 0 Μόνο αντικείμενα προγράμματος περιήγησης

UFT Μαθαίνει ένα τακτικό αναγνωριστικό μόνο όταν οι υποχρεωτικές και οι βοηθητικές ιδιότητες δεν μπορούν πραγματικά να διαχωρίσουν δύο αντικείμενα, επειδή η τιμή είναι σχετική και μπορεί να μετατοπιστεί εάν αλλάξει η διάταξη σελίδας παρόλο που το ίδιο το αντικείμενο δεν έχει αλλάξει. Το παρακάτω απόσπασμα VBScript χρησιμοποιεί το Index για να κάνει κλικ στον δεύτερο από τους δύο συνδέσμους με το ίδιο όνομα.

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

Οι τιμές του δείκτη και της τοποθεσίας είναι συγκεκριμένες για την κλάση αντικειμένου που ονομάζεται στην πρόταση, επομένως Δείκτης:=3 Σε ένα WebEdit, η συνάρτηση αναζητά μόνο μεταξύ αντικειμένων WebEdit, ενώ η ίδια τιμή σε ένα γενικό WebElement μετράει σε κάθε αντικείμενο web στη σελίδα, ανεξάρτητα από τον τύπο του.

Πού ταιριάζει η έξυπνη αναγνώριση

Αναγνώριση αντικειμένου σε UFT δεν σταματά στην μαθησιακή περιγραφή. Όταν δεν μπορεί να βρεθεί μια μοναδική αντιστοιχία, UFT εκτελεί τη διαδικασία με μια σταθερή σειρά: πρώτα ελέγχει τις υποχρεωτικές και βοηθητικές ιδιότητες που έχει μάθει, έπειτα οποιοδήποτε αναγνωριστικό οπτικής σχέσης και, στη συνέχεια, Έξυπνη αναγνώριση εάν αυτός ο μηχανισμός είναι ενεργοποιημένος για την κλάση, και μόνο ως έσχατη λύση ένα διατακτικό αναγνωριστικό.

Η Έξυπνη Αναγνώριση (Smart Identification) βρίσκεται σκόπιμα μεταξύ της μαθημένης περιγραφής και του τακτικού αναγνωριστικού. Αναδομεί μια λίστα υποψηφίων χρησιμοποιώντας τις βασικές ιδιότητες μιας κλάσης και την περιορίζει με προαιρετικές, έτσι ώστε συχνά να μπορεί να ανακτήσει ένα αντικείμενο του οποίου η μαθημένη περιγραφή έσπασε — για παράδειγμα, ένα μετονομασμένο κουμπί — χωρίς να αγγίξει ποτέ το Αποθετήριο Αντικειμένων. Επειδή αυτό το επιπλέον βήμα αναζήτησης κοστίζει χρόνο, οι περισσότερες ομάδες την επιτρέπουν για κλάσεις με εύθραυστη αναγνώριση και βασίζονται σε τακτικά αναγνωριστικά μόνο όπου η θέση είναι πραγματικά ο μόνος διαφοροποιητής που απομένει, όπως μια τράπεζα μη επισημασμένων κουμπιών επιλογής.

Συχνές Ερωτήσεις

Το Αποθετήριο Αντικειμένων αποθηκεύει κάθε αντικείμενο δοκιμής που έχει μάθει και τις αποθηκευμένες ιδιότητές του. Οι ρυθμίσεις αναγνώρισης αντικειμένων, που ανοίγουν από τα Εργαλεία > Αναγνώριση Αντικειμένου, ελέγχουν ποιες ιδιότητες UFT εγγραφές σε αυτό το αποθετήριο για κάθε κλάση αντικειμένων εξαρχής.

UFT Λειτουργεί μέσω αναγνωριστικών οπτικών σχέσεων, Έξυπνης Αναγνώρισης και, τέλος, ενός διατακτικού αναγνωριστικού. Εάν κανένα από αυτά δεν παράγει μία μόνο αντιστοίχιση, το βήμα παρουσιάζει σφάλμα κατά τον χρόνο εκτέλεσης, επειδή κανένα αντικείμενο δεν ικανοποιεί κάθε αποθηκευμένη ιδιότητα.

Η καταγραφή κάθε διαθέσιμης ιδιότητας θα υπερφορτώσει το Αποθετήριο Αντικειμένων και θα επιβραδύνει την εκτέλεση του σεναρίου. UFT Αποθηκεύει ένα μικρό, τυπικό σύνολο ανά κλάση αντικειμένου, προσθέτοντας βοηθητικές ιδιότητες μόνο όταν οι υποχρεωτικές δεν μπορούν να σχηματίσουν μια μοναδική περιγραφή.

Ναι. Τα εργαλεία με τη βοήθεια της τεχνητής νοημοσύνης μπορούν να ελέγξουν την κίνηση παραγωγής ή τη δομή DOM για να προτείνουν πιο σταθερές, λιγότερο εύθραυστες ιδιότητες πριν από την εγγραφή και μπορούν να επισημάνουν αντικείμενα των οποίων οι υποχρεωτικές ιδιότητες αλλάζουν συχνά μεταξύ των κατασκευών — οι δοκιμαστές εξακολουθούν να επαληθεύουν τις προτάσεις.

Όχι εντελώς. Οι αυτοεπιδιορθωτικοί εντοπιστές μειώνουν τις αποτυχίες από μετονομασμένα ή μετακινημένα στοιχεία, αλλά τα διατακτικά αναγνωριστικά εξακολουθούν να επιλύουν αντικείμενα που είναι πραγματικά πανομοιότυπα σε κάθε ιδιότητα, όπως πολλά πλαίσια ελέγχου χωρίς ετικέτα στη σειρά.

Συνοψίστε αυτήν την ανάρτηση με: