DescriptΠρογραμματισμός ive σε QTP/UFTΔυναμικό & Στατικό
Τι είναι Descriptive προγραμματισμός;
DescriptΟ προγραμματισμός ive χρησιμοποιείται για την εκτέλεση λειτουργιών σε ένα αντικείμενο στο AUT του οποίου ο ορισμός δεν είναι αποθηκευμένος στο Αποθετήριο αντικειμένων. Χρησιμοποιώντας αυτόν τον μηχανισμό, μπορείτε να παρακάμψετε την αναγνώριση από το Αποθετήριο αντικειμένων και να παρέχετε το Αντικείμενο Descriptιόν στην ίδια τη δήλωση.
Ένα όνομα αντικειμένου χρησιμοποιείται απλώς για να αντιστοιχίσει ένα αντικείμενο σε σενάριο με την περιγραφή του σε ένα αποθετήριο αντικειμένων. Αυτό σημαίνει ότι εάν αλλάξετε το όνομα του αντικειμένου στο σενάριο και το αποθετήριο αντικειμένων, το σενάριο θα πρέπει να εκτελεστεί. Δείτε το παρακάτω βίντεο σχετικά με αυτό το concept
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Στιγμιότυπα Βίντεο
- Διαγραφή του Αντικειμένου Description of Agent Name Win Edit Box από το Αποθετήριο αντικειμένων. Εάν εκτελέσετε ξανά τη δοκιμή θα αποτύχει καθώς δεν μπορεί να αναγνωρίσει το αντικείμενο. Ας εξετάσουμε τον λόγο για τον οποίο το σενάριο αποτυγχάνει
- Κατά τη διάρκεια του χρόνου εκτέλεσης, Μικροεστίαση UFT προσδιορίζει τη λειτουργία που εκτελείται στο πλαίσιο WinEdit και το αντικείμενο DescriptΤο όνομα στο Object Repository αποθηκεύεται ως Όνομα Πράκτορα. Χρησιμοποιεί αυτό το όνομα για να track το αντικείμενο σε ένα αποθετήριο αντικειμένων. Για ένα γονικό αντικείμενο, δεν μπορείτε να έχετε δύο θυγατρικά αντικείμενα με το ίδιο όνομα. Επομένως, QTP αντιστοιχίζει μοναδικά το αντικείμενο στο αποθετήριο. Στη συνέχεια, χρησιμοποιεί την αποθηκευμένη περιγραφή στο Αποθετήριο Αντικειμένων και αντικαθιστά το όνομα με την περιγραφή. Στη συνέχεια, χρησιμοποιεί αυτήν την πρόταση για να αναγνωρίσει το αντικείμενο στην υπό δοκιμή εφαρμογή.
- Εφόσον στην περίπτωσή μας είχαμε διαγράψει εντελώς αυτήν την περιγραφή αντικειμένου, το σενάριο αποτυγχάνει
- Τι θα γινόταν όμως αν αντί για QTP Αντικαθιστώντας την περιγραφή του αντικειμένου, εσείς ως δοκιμαστής καθορίζετε απευθείας τις περιγραφές των αντικειμένων στο σκριπτ σας. Αυτό δεν είναι τίποτα άλλο παρά «Descriptive προγραμματισμός»
Τύποι Descriptive Προγραμματισμός
Μπορείς να χρησιμοποιήσεις Descriptive προγραμματισμός με δύο τρόπους
- Στατικός
- Δυναμικός
Στατικός Descriptive Προγραμματισμός
Στη Στατική Μέθοδος, για αναγνώριση αντικειμένου, καθορίζετε την ιδιότητα ενός αντικειμένου στην ακόλουθη μορφή
property:=values,
Αυτή η μορφή ονομάζεται ζεύγος τιμών ιδιοτήτων και περικλείεται σε ανεστραμμένα κόμματα
Εάν το αντικείμενό σας χρησιμοποιεί πολλαπλές περιγραφές για αναγνώριση, μπορείτε να τις καθορίσετε χρησιμοποιώντας κόμματα
Έτσι, στην περίπτωσή μας, η περιγραφή για το Όνομα πράκτορα γίνεται
"nativeclass:=Edit", "attached text:=Agent Name:"
Δυναμικός Descriptive Προγραμματισμός
Η δεύτερη μέθοδος για να κάνετε την ίδια ενέργεια είναι η χρήση Dynamic Descriptive προγραμματισμός
Σε περίπτωση που το σενάριό σας χρησιμοποιεί το υποψήφιο αντικείμενο περιγραφικού προγραμματισμού πολλές φορές, θα είναι πολύ κουραστικό να προσδιορίσετε όλα τα ζεύγη τιμών ιδιοτήτων για κάθε δήλωση
Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε DescriptΚατηγορία ιόντων παρέχονται από QTP
Η σύνταξη για τη δημιουργία ενός αντικειμένου περιγραφής είναι
Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";
Αυτή είναι η Δυναμική Μέθοδος
Γιατί να χρησιμοποιήσετε Descriptive προγραμματισμός;
Μεταγραφή βίντεο
- Το ερώτημα ενός εκατομμυρίου δολαρίων είναι γιατί να χρησιμοποιηθεί το DP όταν η διαδικασία αναγνώρισης αντικειμένων χειρίζεται από QTP
- Ας υποθέσουμε ότι σας έχει ανατεθεί να δοκιμάσετε μια πύλη εργασίας. Εισάγετε ένα ερώτημα αναζήτησης στην πύλη και
- Η δοκιμή σας περιμένει από εσάς να επιλέξετε όλες τις διαθέσιμες εργασίες .και κάντε κλικ στην εφαρμογή εργασίας
- Ωστόσο, ο αριθμός των εργασιών που απεικονίζονται θα εξαρτηθεί από το ερώτημα αναζήτησης και τις διαθέσιμες θέσεις εργασίας τη στιγμή της εκτέλεσης του σεναρίου, αλλά δεν υπάρχει τρόπος να προβλεφθεί εκ των προτέρων ο αριθμός των εργασιών που θα αντικατοπτρίζονται
- Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε περιγραφικό προγραμματισμό. Παρόλο που δεν γνωρίζετε τον αριθμό και τα ονόματα των πλαισίων ελέγχου, γνωρίζετε την κλάση για τα αντικείμενα ως "WebCheckBox"
- Μπορείτε να χρησιμοποιήσετε το Μέθοδος ChildObject για να επιστρέψετε αντικείμενα που ανήκουν σε έναν συγκεκριμένο γονέα
- Μια γραμμή κώδικα όπως -
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects() - Θα επιστρέψει όλα τα θυγατρικά αντικείμενα για αυτήν τη σελίδα.
- Αλλά θέλουμε μόνο WebCheckBox αντικείμενα. Για να το κάνουμε αυτό, μπορούμε να δημιουργήσουμε ένα αντικείμενο δημιουργίας φίλτρου και να ορίσουμε την ιδιότητά του ως πλαίσιο ελέγχου web και να περάσουμε αυτό το φίλτρο ως όρισμα για τη μέθοδο ChildObjects
- Σε αυτήν την περίπτωση, επιστρέφονται μόνο τα πλαίσια ελέγχου.
- Στη συνέχεια, μπορείτε να γράψετε έναν κώδικα όπως αυτός που έχει πρόσβαση σε ολόκληρη τη συλλογή πλαισίων ελέγχου ξεκινώντας από το μηδέν και θέτει όλα τα πλαίσια ελέγχου ΕΝΕΡΓΟ.
- Στη συνέχεια, μπορείτε να κάνετε κλικ στο κουμπί εφαρμογής για να ολοκληρώσετε τη δοκιμή
- Μπορείτε επίσης να χρησιμοποιήσετε Descriptive Προγραμματισμός για την εκτέλεση αντικειμένων που είναι δύσκολο να εγγραφούν όπως Πίνακες Αυτόματης Απόκρυψης, Αντικείμενα με μεταβαλλόμενες ιεραρχίες, Ένθετα Εσωτερικά Αντικείμενα, Υπομενού.
- Μπορείτε επίσης να κάνετε προχωρημένους χειρισμούς συμβολοσειρών χρησιμοποιώντας περιγραφικό προγραμματισμό
- Σε συνδυασμό με την ιδιότητα ευρετηρίου, ο περιγραφικός προγραμματισμός θα μπορούσε να είναι πολύ χρήσιμος στον εντοπισμό δύσκολων αντικειμένων.
- Εάν χρησιμοποιείτε περιγραφή μέσω προγραμματισμού για ένα αντικείμενο στην ιεραρχία αντικειμένων, θα χρειαστεί να χρησιμοποιήσετε προγραμματισμό περιγραφής για διαδοχικά θυγατρικά αντικείμενα
- Για παράδειγμα, για το αντικείμενο σελίδας, χρησιμοποιήθηκε περιγραφικός προγραμματισμός, αλλά για το επόμενο θυγατρικό αντικείμενο χρησιμοποιείται το WinEdit Object Repository το οποίο είναι εσφαλμένο
- Αντίθετα εδώ και για το Page και για το WinEdit χρησιμοποιείται περιγραφικός προγραμματισμός που είναι σωστός
