Τι είναι ο περιγραφικός προγραμματισμός;
Ο περιγραφικός προγραμματισμός χρησιμοποιείται για την εκτέλεση λειτουργιών σε ένα αντικείμενο στο AUT του οποίου ο ορισμός δεν αποθηκεύεται στο Object Repository. Χρησιμοποιώντας αυτόν τον μηχανισμό, μπορείτε να παρακάμψετε την αναγνώριση από το αποθετήριο αντικειμένων και να παρέχετε την περιγραφή αντικειμένου στην ίδια τη δήλωση.
Ένα όνομα αντικειμένου χρησιμοποιείται απλώς για να χαρτογραφήσει ένα αντικείμενο σε σενάριο με την περιγραφή του σε ένα αποθετήριο αντικειμένων. Δηλαδή, εάν αλλάξετε το όνομα του αντικειμένου στο σενάριό σας και το αποθετήριο αντικειμένων, το σενάριο θα πρέπει να εκτελεστεί. Παρακολουθήστε το παρακάτω βίντεο σχετικά με αυτήν την ιδέα
Κάντε κλικ εδώ εάν το βίντεο δεν είναι προσβάσιμο
Στιγμιότυπα βίντεο
- Διαγράψτε την περιγραφή αντικειμένου του ονόματος παράγοντα Win Edit Box από το Object Repository. Εάν εκτελέσετε ξανά τη δοκιμή, θα αποτύχει καθώς δεν μπορεί να αναγνωρίσει το αντικείμενο. Ας εξετάσουμε τον λόγο για τον οποίο το σενάριο αποτυγχάνει
- Κατά τη διάρκεια του χρόνου εκτέλεσης, το Micro Focus UFT προσδιορίζει τη λειτουργία που εκτελείται στο πλαίσιο WinEdit και η περιγραφή αντικειμένου στο Object Repository αποθηκεύεται ως όνομα παράγοντα. Χρησιμοποιεί αυτό το όνομα για την παρακολούθηση του αντικειμένου σε ένα αποθετήριο αντικειμένων. Για έναν γονέα, δεν μπορείτε να έχετε δύο θυγατρικά αντικείμενα με το ίδιο όνομα. Ως εκ τούτου, το QTP χαρτογραφεί μοναδικά το αντικείμενο στο αποθετήριο. Στη συνέχεια, χρησιμοποιεί την αποθηκευμένη περιγραφή στο Object Repository και αντικαθιστά το όνομα με την περιγραφή. Στη συνέχεια, χρησιμοποιεί αυτήν τη δήλωση για να προσδιορίσει το αντικείμενο στην εφαρμογή υπό δοκιμή / li>
- Εφόσον στην περίπτωσή μας είχαμε διαγράψει αυτήν την περιγραφή αντικειμένου εντελώς το σενάριο αποτυγχάνει / li>
- Αλλά τι γίνεται αν αντί του QTP να αντικαταστήσετε την περιγραφή αντικειμένου, εσείς ως υπεύθυνος δοκιμών καθορίζετε απευθείας τις περιγραφές αντικειμένων στο σενάριό σας. Αυτό δεν είναι παρά «Περιγραφικός Προγραμματισμός»
Τύποι περιγραφικού προγραμματισμού
Μπορείτε να χρησιμοποιήσετε τον Περιγραφικό προγραμματισμό με δύο τρόπους
- Στατικός
- Δυναμικός
Στατικός Περιγραφικός Προγραμματισμός
Στη Στατική Μέθοδο, για την αναγνώριση αντικειμένων, καθορίζετε την ιδιότητα ενός αντικειμένου στην ακόλουθη μορφή
ιδιότητα: = τιμές,
Αυτή η μορφή ονομάζεται ζεύγος τιμής ιδιοκτησίας και περικλείεται σε ανεστραμμένα κόμματα>
Εάν το αντικείμενο σας χρησιμοποιεί πολλές περιγραφές για αναγνώριση, μπορείτε να καθορίσετε αυτές που χρησιμοποιούν κόμματα >
Έτσι, στην περίπτωσή μας, η περιγραφή για το όνομα του πράκτορα γίνεται
"nativeclass: = Edit", "συνημμένο κείμενο: = Όνομα αντιπροσώπου:"
Δυναμικός περιγραφικός προγραμματισμός
Η δεύτερη μέθοδος για να κάνετε την ίδια ενέργεια είναι η χρήση δυναμικού περιγραφικού προγραμματισμού
Σε περίπτωση που το σενάριό σας χρησιμοποιεί τον περιγραφικό υποψήφιο αντικείμενο προγραμματισμού πολλές φορές, θα είναι πολύ κουραστικό να καθορίσετε όλα τα ζεύγη τιμών ιδιοτήτων για κάθε δήλωση
Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε την Κατηγορία περιγραφής που παρέχεται από το QTP
Η σύνταξη για τη δημιουργία ενός αντικειμένου περιγραφής είναι
Ορισμός MyDescription = Description.Create ();MyDescription ("ιδιότητα"). Value = "property-value";
Αυτή είναι η δυναμική μέθοδος
Γιατί να χρησιμοποιήσετε τον περιγραφικό προγραμματισμό;
Μεταγραφή βίντεο
- Η ερώτηση εκατομμυρίων δολαρίων είναι γιατί να χρησιμοποιήσετε DP όταν η διαδικασία αναγνώρισης αντικειμένου γίνεται από το QTP
- Ας υποθέσουμε ότι σας έχει ανατεθεί να ελέγξετε μια πύλη εργασίας. Εισάγετε ένα ερώτημα αναζήτησης στην πύλη και
- η δοκιμή σας αναμένει να επιλέξετε όλες τις διαθέσιμες εργασίες. και κάντε κλικ στην εφαρμογή εργασίας
- Όμως, ο αριθμός των εργασιών που αντικατοπτρίζεται θα εξαρτηθεί από το ερώτημα αναζήτησης και τις διαθέσιμες θέσεις εργασίας κατά την εκτέλεση του σεναρίου, αλλά δεν υπάρχει τρόπος να προβλεφθεί εκ των προτέρων ο αριθμός των εργασιών που θα αντικατοπτρίζονται
- Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε περιγραφικό προγραμματισμό. Παρόλο που δεν γνωρίζετε τον αριθμό και τα ονόματα των πλαισίων ελέγχου, γνωρίζετε την κλάση των αντικειμένων ως "WebCheckBox"
- Μπορείτε να χρησιμοποιήσετε τη μέθοδο ChildObject για να επιστρέψετε αντικείμενα που ανήκουν σε συγκεκριμένο γονέα
- Μια γραμμή κώδικα όπως -
Ορισμός allObjects = Browser ("Jobs"). Page ("QTP"). ChildObjects ()
- Θα επιστρέψει όλα τα θυγατρικά αντικείμενα για αυτήν τη σελίδα.
- Αλλά θέλουμε μόνο αντικείμενα WebCheckBox. Για να το κάνουμε αυτό, μπορούμε να δημιουργήσουμε ένα αντικείμενο δημιουργίας φίλτρων και να ορίσουμε την ιδιότητά του ως πλαίσιο ελέγχου ιστού και να περάσουμε αυτό το φίλτρο ως επιχείρημα για τη μέθοδο ChildObjects
- Σε αυτήν την περίπτωση, επιστρέφονται μόνο τα πλαίσια ελέγχου.
- Στη συνέχεια, μπορείτε να γράψετε έναν κωδικό όπως αυτός ο οποίος έχει πρόσβαση σε ολόκληρη τη συλλογή των πλαισίων ελέγχου ξεκινώντας από το μηδέν και ενεργοποιεί όλα τα πλαίσια ελέγχου.
- Στη συνέχεια, μπορείτε να κάνετε κλικ στο κουμπί εφαρμογής για να ολοκληρώσετε τη δοκιμή
- Μπορείτε επίσης να χρησιμοποιήσετε τον περιγραφικό προγραμματισμό για να εκτελέσετε αντικείμενα που είναι δύσκολο να εγγραφούν όπως αυτόματη απόκρυψη πλαισίων, αντικείμενα με αλλαγή ιεραρχιών, ένθετα εσωτερικά αντικείμενα, υπομενού.
- Μπορείτε επίσης να κάνετε προηγμένους χειρισμούς συμβολοσειρών χρησιμοποιώντας περιγραφικό προγραμματισμό
- Σε συνδυασμό με την ιδιότητα ευρετηρίου, ο περιγραφικός προγραμματισμός θα μπορούσε να είναι πολύ χρήσιμος στην αναγνώριση δύσκολων αντικειμένων.
- Εάν χρησιμοποιείτε περιγραφή μέσω προγραμματισμού για ένα αντικείμενο στην ιεραρχία αντικειμένων, θα πρέπει να χρησιμοποιήσετε τον προγραμματισμό περιγραφής για την επιτυχία των θυγατρικών αντικειμένων
- Για παράδειγμα, για το αντικείμενο της σελίδας, χρησιμοποιήθηκε περιγραφικός προγραμματισμός, αλλά για την επιτυχία του θυγατρικού αντικειμένου χρησιμοποιείται το WinEdit Object Repository που δεν είναι σωστό
- Αντιθέτως εδώ χρησιμοποιείται τόσο ο περιγραφικός προγραμματισμός σελίδας όσο και το WinEdit που είναι σωστός