Reporter.ReportEvent σε UFT/QTP με Παράδειγμα

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

Reporter.ReportEvent σε UFT/QTP Στέλνει προσαρμοσμένα μηνύματα επιτυχίας, αποτυχίας, προειδοποίησης και ενημερωτικών μηνυμάτων απευθείας στο Run Results Viewer χρησιμοποιώντας τις σταθερές κατάστασης micPass, micFail, micDone και micWarning, παρέχοντας στους δοκιμαστές μια ευανάγνωστη, βήμα προς βήμα καταγραφή του τι πραγματικά έκανε ένα αυτοματοποιημένο σενάριο.

  • 🎯 Ορισμός: Το Reporter.ReportEvent γράφει μια προσαρμοσμένη κατάσταση και μήνυμα στο UFT Δέντρο αποτελεσμάτων, ανεξάρτητο από ενσωματωμένα σημεία ελέγχου.
  • 🧩 Σύνταξη: Η μέθοδος λαμβάνει τα EventStatus, ReportStepName, Details και μια προαιρετική ImageFilePath, με αυτή τη σειρά.
  • 🚦 Σταθερές κατάστασης: Τα micPass, micFail, micDone και micWarning ορίζουν το καθένα το χρώμα του βήματος και το εάν αλλάζει η κατάσταση της εκτέλεσης.
  • ️ Στιγμιότυπα: Μεταβιβάστε μια καταγεγραμμένη διαδρομή bitmap ως το τέταρτο όρισμα για να επισυνάψετε μια εικόνα σε ένα βήμα που αποτυγχάνει.
  • ⚙️ Ιδιότητες: Τα Reporter.Filter, Reporter.ReportPath και Reporter.RunStatus προσθέτουν έλεγχο σχετικά με το τι καταγράφεται και πού αποθηκεύονται τα αποτελέσματα.
  • 🧪 Παραδείγματα: Τυλίξτε το ReportEvent μέσα σε ένα If… Στη συνέχεια, ελέγξτε ώστε κάθε βήμα να αναφέρει ότι το πραγματικό αποτέλεσμα είναι πέρα ​​​​από αυτό.
  • 🚫 Φιλτράρισμα: Ορίστε το Reporter.Filter σε rfEnableErrorsAndWarnings κατά τη διάρκεια των εκτελέσεων CI, ώστε τα βήματα που έχουν περαστεί να μην θάβουν γνήσιες αποτυχίες.
  • 📊 Προσαρμοσμένες αναφορές: Συνδυάστε το results.xml με μια βιβλιοθήκη XSL ή VBScript, για να παρουσιάσετε τα αποτελέσματα με τον τρόπο που αναμένουν οι ενδιαφερόμενοι.

Τι είναι το Reporter.ReportEvent στο UFT/QTP?

Reporter.ReportEvent είναι μια τυπική μέθοδος ενσωματωμένη στο UFT/QTP (πωλείται τώρα ως OpenText/Μικροεστίαση UFT Ένα) που γράφει ένα προσαρμοσμένο, αναγνώσιμο από τον άνθρωπο μήνυμα απευθείας στο παράθυρο αποτελεσμάτων της δοκιμής. Σε αντίθεση με τις αυτόματες ετυμηγορίες επιτυχίας ή αποτυχίας που δημιουργούν τα ενσωματωμένα σημεία ελέγχου, μια κλήση ReportEvent επιτρέπει στον δοκιμαστή να αποφασίσει ακριβώς τι καταγράφεται, πότε και πώς πρέπει να επισημανθεί.

Αυτός ο διαλογισμός στα HP QTP φροντιστήριο δείχνει τη χρήση της συνάρτησης Reporter.ReportEvent και Μορφοποίηση αποτελεσμάτωνΤο σεμινάριο σάς ζητά να δημιουργήσετε ένα σύντομο σενάριο και η ολοκλήρωση αυτής της άσκησης δημιουργίας σεναρίων είναι ο πιο γρήγορος τρόπος για να δείτε τις προσαρμοσμένες αναφορές να ενημερώνουν το δέντρο αποτελεσμάτων σε πραγματικό χρόνο.

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

Το Reporter.ReportEvent έχει τη μεγαλύτερη σημασία στον αυτοματισμό, επειδή ένα σενάριο συνήθως εκτελείται χωρίς παρακολούθηση, βάσει χρονοδιαγράμματος ή εντός ενός αγωγού CI/CD. Το αρχείο αποτελεσμάτων εκτέλεσης γίνεται η μόνη καταγραφή του τι συνέβη, επομένως ένα βήμα που αποτυγχάνει σιωπηλά ή περνάει χωρίς εξήγηση, δυσκολεύει πολύ περισσότερο τον εντοπισμό σφαλμάτων αργότερα. Η προσθήκη μιας σαφούς κλήσης ReportEvent μετά από μια κρίσιμη ενέργεια μετατρέπει το δέντρο αποτελεσμάτων σε μια αναγνώσιμη, βήμα προς βήμα διαδρομή ελέγχου που ένας δοκιμαστής, προγραμματιστής ή διαχειριστής μπορεί να εξετάσει χωρίς να ανοίξει το ίδιο το σενάριο.

Αυτό διαφέρει από ένα σημείο ελέγχου αντικειμένου, το οποίο UFT δημιουργεί αυτόματα και αναφέρει χρησιμοποιώντας το δικό του προεπιλεγμένο όνομα βήματος. Το Reporter.ReportEvent σάς επιτρέπει να επισυνάψετε γλώσσα με επιχειρηματικό νόημα, όπως "Εμφανίστηκε επιβεβαίωση παραγγελίας" αντί για ένα γενικό "Check Point Pass on WebEdit object", το οποίο είναι πολύ πιο εύκολο να διαβάσει ένας μη τεχνικός ενδιαφερόμενος στην τελική αναφορά. Η μέθοδος λειτουργεί με τον ίδιο τρόπο είτε το σενάριο στοχεύει σε μια ιστοσελίδα, είτε σε μια Windows εφαρμογή επιφάνειας εργασίας ή ένα τερματικό mainframe, καθώς το Reporter είναι ένα καθολικό αντικείμενο και όχι μια ιδιότητα οποιουδήποτε αντικειμένου δοκιμής.

Guru99 του UFT/QTP η σειρά καλύπτει αυτήν τη μέθοδο αμέσως μετά Δηλώσεις If, Else και Exists, επειδή οι περισσότερες κλήσεις Reporter.ReportEvent βρίσκονται μέσα σε ένα μπλοκ υπό όρους που αποφασίζει εάν το αποτέλεσμα θα πρέπει να αναφέρεται ως micPass ή micFail.

Σύνταξη Reporter.ReportEvent και τιμές EventStatus

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

Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]

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

ΑΞΙΑ ΣΥΝΕΧΗΣ ΕΠΙΔΡΑΣΗ ΣΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΕΠΙΔΡΑΣΗ ΣΤΗΝ ΚΑΤΑΣΤΑΣΗ ΕΚΤΕΛΕΣΗΣ
0 micPass Το βήμα εμφανίζεται ως Επιτυχία στο δέντρο αποτελεσμάτων Καμία αλλαγή· η εξέταση συνεχίζεται ως επιτυχής
1 Αποτυχία μικροφώνου Το βήμα εμφανίζεται ως Αποτυχία στο δέντρο αποτελεσμάτων Η συνολική κατάσταση εκτέλεσης αλλάζει σε Αποτυχία
2 ΜικρόφωνοΟλοκληρώθηκε Το βήμα εμφανίζεται ως ενημερωτικό μήνυμα Δεν υπάρχει αλλαγή στην κατάσταση Επιτυχία/Αποτυχία
3 Προειδοποίηση μικροφώνου Το βήμα εμφανίζεται ως προειδοποίηση Δεν υπάρχει αλλαγή στην κατάσταση Επιτυχία/Αποτυχία

Κάθε σταθερά μπορεί επίσης να μεταβιβαστεί ως η αριθμητική της τιμή αντί για το όνομά της, επομένως Reporter.ReportEvent 1, "Βήμα", "Λεπτομέρεια" συμπεριφέρεται ακριβώς όπως Reporter.ReportEvent micFail, "Βήμα", "Λεπτομέρεια"Η χρήση της επώνυμης σταθεράς είναι πιο εύκολη στην ανάγνωση σε ένα σενάριο που θα διατηρήσει αργότερα ένας άλλος δοκιμαστής.

Ένα σενάριο συνήθως ενθυλακώνει πολλές κλήσεις ReportEvent μέσα σε μία ενέργεια: μια καταχώρηση micDone πριν από την έναρξη μιας ενέργειας, μία καταχώρηση micPass ή micFail για τον έλεγχο κλειδιού και πρόσθετες καταχωρήσεις micWarning για οτιδήποτε ασυνήθιστο παρατηρηθεί στην πορεία.

  • Όταν εκτελούνται δοκιμαστικές περιπτώσεις χρησιμοποιώντας εργαλεία αυτοματισμού, μπορεί να είναι δύσκολο για ορισμένους χρήστες να κατανοήσουν τα ακατέργαστα αποτελέσματα των δοκιμών. Μπορείτε να χρησιμοποιήσετε results.xml για να δημιουργήσετε ένα αρχείο XSL που παρουσιάζει τα αποτελέσματα των δοκιμών με τον τρόπο που προτιμάτε..
  • Μπορείτε επίσης να χρησιμοποιήσετε Vbscript λειτουργίες βιβλιοθήκης για να αποθηκεύστε τα αποτελέσματα σε αρχείο xls ή σε αρχείο κειμένου για αναφορά εκτός UFT.

Πώς να χρησιμοποιήσετε το Reporter.ReportEvent: Πρακτικά παραδείγματα

Η γνώση της σύνταξης είναι ένα πράγμα. Το να τη βλέπεις μέσα σε ένα πραγματικό σενάριο είναι αυτό που κάνει τις τέσσερις σταθερές κατάστασης να κάνουν κλικ. Το παρακάτω παράδειγμα περιβάλλει έναν έλεγχο μέσα σε μια πρόταση If…Then…Else και, στη συνέχεια, αναφέρει μια επιτυχία ή μια αποτυχία με το Reporter.ReportEvent, ώστε το αποτέλεσμα να εμφανίζεται στο δέντρο αποτελεσμάτων ακριβώς εκεί που το περιμένει ένας αναθεωρητής.

If Browser("Guru99 Demo").Page("Guru99 Demo").WebButton("Login").Exist(5) Then
    Reporter.ReportEvent micPass, "Login button check", "Login button was found on the page"
Else
    Reporter.ReportEvent micFail, "Login button check", "Login button was not found on the page"
End If

Αυτό αντικατοπτρίζει το μοτίβο που φαίνεται στο Guru99 του Δηλώσεις υπό όρους VBScript σεμινάριο, όπου ένα μπλοκ If…Then…Else επιλέγει μεταξύ δύο αποτελεσμάτων. Η μόνη διαφορά εδώ είναι ότι κάθε κλάδος καλεί επίσης το Reporter.ReportEvent για να καταγράψει το αποτέλεσμα.

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

Reporter.ReportEvent micDone, "Enter search text", "Typed 'UFT tutorial' into the search box"
errorImage = "C:\Results\SearchDelay.png"
Browser("Guru99 Demo").CaptureBitmap errorImage, True
Reporter.ReportEvent micWarning, "Search response time", "Results took longer than 5 seconds to load", errorImage

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

Οι ομάδες που καλούν τη συνάρτηση ReportEvent από πολλά σενάρια συχνά μετακινούν αυτήν τη λογική σε μια κοινόχρηστη συνάρτηση VBScript, όπως η LogStep(status, name, details), έτσι ώστε κάθε σενάριο να παράγει ένα συνεπές δέντρο αποτελεσμάτων χωρίς να επαναλαμβάνει το ίδιο μπλοκ If…Then.

Ιδιότητες αντικειμένου αναφοράς: Φίλτρο, Διαδρομή αναφοράς και Κατάσταση εκτέλεσης

Το Reporter.ReportEvent δεν είναι το μόνο μέλος του αντικειμένου Reporter. Τρεις πρόσθετες ιδιότητες παρέχουν επιπλέον έλεγχο στο τι περιέχουν τα αποτελέσματα και πού UFT τα αποθηκεύει και εμφανίζονται συχνά σε πλαίσια αυτοματισμού παραγωγής.

ΙΔΙΟΚΤΗΣΊΑ ΣΚΟΠΟΣ ΤΥΠΙΚΗ ΧΡΗΣΗ
Φίλτρα Ελέγχει ποιοι τύποι συμβάντων εγγράφονται στα αποτελέσματα Reporter.Filter = rfEnableErrorsAndWarnings αποκρύπτει τα βήματα που έχουν περάσει σε μακροπρόθεσμη βάση
Διαδρομή αναφοράς Μόνο για ανάγνωση; επιστρέφει τον φάκελο όπου αποθηκεύονται τα αποτελέσματα της τρέχουσας εκτέλεσης resultsFolder = Reporter.ReportPath
Κατάσταση Εκτέλεσης Μόνο για ανάγνωση· επιστρέφει την τρέχουσα κατάσταση Επιτυχία/Αποτυχία της εκτέλεσης μέχρι στιγμής Εάν Reporter.RunStatus = micFail, τότε τερματίστε την ενέργεια

Το Reporter.Filter δέχεται τέσσερις τιμές: το 0 ή το rfEnableAll εμφανίζει κάθε συμβάν και είναι η προεπιλογή, το 1 ή το rfEnableErrorsAndWarnings αποκρύπτει τα βήματα που έχουν περαστεί, το 2 ή το rfEnableErrorsOnly αποκρύπτει τόσο τα βήματα που έχουν περαστεί όσο και τις προειδοποιήσεις και το 3 ή το rfDisableAll απενεργοποιεί εντελώς την καταγραφή αποτελεσμάτων. Ο έλεγχος του Reporter.RunStatus στη μέση του σεναρίου επιτρέπει σε έναν κλάδο δοκιμής να δημιουργεί τη δική του λογική, για παράδειγμα παράλειψη.ping τα υπόλοιπα βήματα μιας ενέργειας όταν ένα προηγούμενο βήμα έχει ήδη αποτύχει.

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

καλυτερα Practices for Reporter.ReportEvent in UFT

Μερικές συνήθειες διατηρούν τις προσαρμοσμένες αναφορές χρήσιμες αντί για θορυβώδεις.

  • Κράτηση micFail για πραγματικές βλάβες: Κάθε κλήση micFail αντιστρέφει το Reporter.RunStatus, επομένως η χρήση του για αισθητικά προβλήματα αποκρύπτει τα πραγματικά ελαττώματα αργότερα στην ίδια εκτέλεση.
  • Γράψτε το ReportStepName ως αναμενόμενο αποτέλεσμα: Ένας κριτικός θα πρέπει να κατανοήσει τον έλεγχο μόνο από το όνομα του βήματος, χωρίς να διαβάσει τη στήλη Λεπτομέρειες.
  • Λήψη στιγμιότυπων οθόνης μόνο σε περίπτωση αποτυχίας: Η εισαγωγή του ImageFilePath σε κάθε βήμα γεμίζει γρήγορα τον φάκελο αποτελεσμάτων και επιβραδύνει την εκτέλεση χωρίς κανένα όφελος.
  • Φιλτράρισμα θορυβωδών εκτελέσεων: Ορίστε το Reporter.Filter σε rfEnableErrorsAndWarnings για προγραμματισμένες εκτελέσεις ή εκτελέσεις CI, έτσι ώστε τα βήματα που έχουν περάσει να μην θάβουν τις σημαντικές αποτυχίες.
  • Συγκεντρώστε τη λογική: Τυλίξτε τις κλήσεις Reporter.ReportEvent μέσα σε ένα επαναχρησιμοποιήσιμο δράση ή βιβλιοθήκη συναρτήσεων, έτσι ώστε κάθε σενάριο στα αρχεία καταγραφής της σουίτας να έχει το ίδιο αποτέλεσμα.
  • Εξαγωγή για μη τεχνικούς αναγνώστες: Συνδυάστε το results.xml με ένα προσαρμοσμένο XSL όταν τα ενδιαφερόμενα μέρη εκτός της ομάδας διασφάλισης ποιότητας χρειάζεται να ελέγξουν τα αποτελέσματα χωρίς να τα ανοίξουν. UFT.

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

Το ReportEvent γράφει απλό κείμενο στο δέντρο αποτελεσμάτων. Το ReportHTMLEvent, διαθέσιμο από UFT 12.52, δέχεται HTML στο όνομα και τις λεπτομέρειες του βήματος, ώστε να μπορείτε να χρησιμοποιήσετε έντονη γραφή, χρώμα ή μορφοποίηση κειμένου στο Run Results Viewer.

Όχι. Μόνο η συνάρτηση micFail αλλάζει τη συνολική κατάσταση εκτέλεσης σε Fail. Οι συναρτήσεις micDone και micWarning γράφουν και οι δύο ένα βήμα στη δομή αποτελεσμάτων για πληροφορίες, αλλά η δοκιμή μπορεί να ολοκληρωθεί ως Passed (Επιτυχής), ακόμη και αν έχουν καταγραφεί προειδοποιήσεις.

Ναι. Καταγράψτε ένα bitmap με τη μέθοδο CaptureBitmap ενός αντικειμένου, αποθηκεύστε το σε ένα αρχείο και περάστε αυτήν τη διαδρομή αρχείου ως το προαιρετικό τέταρτο όρισμα ImageFilePath. UFT εμφανίζει την εικόνα στο παράθυρο "Καταγεγραμμένα δεδομένα" για αυτό το βήμα.

Ναι. Οι βοηθοί κωδικοποίησης τεχνητής νοημοσύνης μπορούν να δημιουργήσουν το στερεότυπο If…Then και ReportEvent από μια απλή περιγραφή ενός ελέγχου και μπορούν να επισημάνουν σενάρια που κάνουν κακή χρήση του micFail ή παραλείπουν τις λεπτομέρειες. Ένας δοκιμαστής θα πρέπει να επιβεβαιώσει ότι η καταγεγραμμένη κατάσταση ταιριάζει με το πραγματικό αποτέλεσμα.

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

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