Υπάρχουν δύο κύριοι ακροατές.
- Ακροατές WebDriver
- Ακροατές TestNG
Σε αυτό το σεμινάριο, θα συζητήσουμε για το Testng Listeners. Εδώ είναι αυτό που θα μάθετε-
- Τι είναι οι ακροατές στο TestNG;
- Τύποι ακροατών στο TestNG
- Σενάριο δοκιμής:
- Βήματα για τη δημιουργία ενός προγράμματος ακρόασης TestNG
- Χρήση του Listener για πολλές κατηγορίες.
Τι είναι οι ακροατές στο TestNG;
Το Listener ορίζεται ως διεπαφή που τροποποιεί τη συμπεριφορά του προεπιλεγμένου TestNG. Όπως υποδηλώνει το όνομα, οι ακροατές "ακούνε" το συμβάν που ορίζεται στο σενάριο σεληνίου και συμπεριφέρονται ανάλογα. Χρησιμοποιείται στο σελήνιο εφαρμόζοντας τη διεπαφή ακροατών. Επιτρέπει την προσαρμογή των αναφορών TestNG ή των αρχείων καταγραφής. Υπάρχουν πολλοί τύποι ακροατών TestNG.
Τύποι ακροατών στο TestNG
Υπάρχουν πολλοί τύποι ακροατών που σας επιτρέπουν να αλλάξετε τη συμπεριφορά του TestNG.
Ακολουθούν οι λίγοι ακροατές TestNG:
- IAnotationTransformer,
- IAnotationTransformer2,
- Διαμορφώσιμο,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Πάνω από τη διεπαφή ονομάζονται TestNG Listeners. Αυτές οι διεπαφές χρησιμοποιούνται στο σελήνιο για τη δημιουργία αρχείων καταγραφής ή την προσαρμογή των αναφορών TestNG.
Σε αυτό το σεμινάριο, θα εφαρμόσουμε το ITestListener.
Το ITestListener έχει τις ακόλουθες μεθόδους
- Η μέθοδος OnStart- OnStart καλείται όταν ξεκινά οποιαδήποτε δοκιμή.
- Η μέθοδος onTestSuccess- onTestSuccess καλείται για την επιτυχία οποιουδήποτε τεστ.
- Η μέθοδος onTestFailure- onTestFailure καλείται για την αποτυχία οποιουδήποτε τεστ.
- Η μέθοδος onTestSkipped- onTestSkipped καλείται με παράλειψη οποιασδήποτε δοκιμής.
- Η μέθοδος onTestFailedButWithinSuccessPercentage- καλείται κάθε φορά που η δοκιμή αποτυγχάνει αλλά βρίσκεται εντός του ποσοστού επιτυχίας.
- Η μέθοδος onFinish- onFinish καλείται μετά την εκτέλεση όλων των δοκιμών.
Σενάριο δοκιμής:
Σε αυτό το σενάριο δοκιμής, θα αυτοματοποιήσουμε τη διαδικασία σύνδεσης και θα εφαρμόσουμε το "ItestListener".
- Εκκινήστε τον Firefox και ανοίξτε τον ιστότοπο "http://demo.guru99.com/V4/"
- Συνδεθείτε στην εφαρμογή.
Βήματα για τη δημιουργία ενός προγράμματος ακρόασης TestNG
Για το παραπάνω σενάριο δοκιμής, θα εφαρμόσουμε το Listener.
Βήμα 1) Δημιουργία κλάσης "ListenerTest" που εφαρμόζει το "ITestListener". Μετακινήστε το ποντίκι πάνω από το redline κείμενο και το Eclipse θα σας προτείνει 2 γρήγορες διορθώσεις όπως φαίνεται στην παρακάτω οθόνη:
Απλώς κάντε κλικ στο "Προσθήκη μη εφαρμοσμένων μεθόδων". Πολλές μη εκτελεσμένες μέθοδοι (χωρίς σώμα) προστίθενται στον κώδικα. Ελέγξτε παρακάτω-
πακέτο Listener_Demo;εισαγωγή org.testng.ITestContext;εισαγωγή org.testng.ITestListener;εισαγωγή org.testng.ITestResult;Δημόσια τάξη ListenerTest εφαρμόζει ITestListener{@Καταπατώδημόσιο κενό onFinish (ITestContext arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο κενό στοStart (ITestContext arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο κενό onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο κενό onTestFailure (ITestResult arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο κενό onTestSkipped (ITestResult arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο άκυρο onTestStart (ITestResult arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}@Καταπατώδημόσιο κενό onTestSuccess (ITestResult arg0) {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδου}}
Ας τροποποιήσουμε την τάξη «ListenerTest». Συγκεκριμένα, θα τροποποιήσουμε τις ακόλουθες μεθόδους-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess κ.λπ.
Η τροποποίηση είναι απλή. Εκτυπώνουμε απλώς το όνομα του τεστ.
Τα αρχεία καταγραφής δημιουργούνται στην κονσόλα. Είναι εύκολο για τον χρήστη να καταλάβει ποια δοκιμή είναι κατάσταση επιτυχίας, αποτυχίας και παράλειψης
Μετά την τροποποίηση, ο κώδικας μοιάζει-
πακέτο Listener_Demo;εισαγωγή org.testng.ITestContext;εισαγωγή org.testng.ITestListener;εισαγωγή org.testng.ITestResult;Δημόσια τάξη ListenerTest εφαρμόζει ITestListener{@Καταπατώpublic void onFinish (Αποτέλεσμα ITestContext){}@Καταπατώpublic void onStart (Αποτέλεσμα ITestContext){}@Καταπατώδημόσιο κενό onTestFailedButWithinSuccessPercentage (Αποτέλεσμα ITestResult){}// Όταν αποτύχει η δοκιμαστική υπόθεση, καλείται αυτή η μέθοδος.@Καταπατώδημόσιο κενό onTestFailure (Αποτέλεσμα ITestResult){System.out.println ("Το όνομα της δοκιμαστικής αποτυχίας είναι: + Result.getName ());}// Όταν η δοκιμαστική θήκη παραλειφθεί, καλείται αυτή η μέθοδος.@Καταπατώδημόσιο κενό onTestSkipped (Αποτέλεσμα ITestResult){System.out.println ("Το όνομα της δοκιμαστικής αποθήκης είναι: + Result.getName ());}// Όταν ξεκινήσετε τη δοκιμαστική θήκη, καλείται αυτή η μέθοδος.@Καταπατώδημόσιο άκυρο onTestStart (Αποτέλεσμα ITestResult){System.out.println (Result.getName () + "η δοκιμαστική υπόθεση ξεκίνησε");}// Όταν περάσει η δοκιμαστική θήκη, καλείται αυτή η μέθοδος.@Καταπατώδημόσιο κενό onTestSuccess (Αποτέλεσμα ITestResult){System.out.println ("Το όνομα του περάσματος δοκιμής είναι: + Result.getName ());}}
Βήμα 2) Δημιουργήστε μια άλλη τάξη "TestCases" για τον αυτοματισμό της διαδικασίας σύνδεσης. Το Selenium θα εκτελέσει αυτό το «TestCases» για να συνδεθεί αυτόματα.
πακέτο Listener_Demo;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations.Listeners;Εισαγωγή org.testng.annotations.Test;Δημόσιες τάξεις TestCases {Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();// Δοκιμάστε να περάσετε για να επαληθεύσετε τους ακροατές.@Δοκιμήδημόσια άκυρη Είσοδος (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("κωδικός πρόσβασης")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). κάντε κλικ στο ();}// Απέτυχε δυναμικά αυτό το τεστ ως επαλήθευση του ακροατή.@Δοκιμήδημόσιο κενό TestToFail (){System.out.println ("Αυτή η μέθοδος δοκιμής αποτυγχάνει");Assert.assertTrue (false);}}
Βήμα 3) Στη συνέχεια, εφαρμόστε αυτόν τον ακροατή στην κανονική τάξη έργου μας, δηλαδή "TestCases". Υπάρχουν δύο διαφορετικοί τρόποι σύνδεσης με την τάξη και τη διεπαφή.
Ο πρώτος τρόπος είναι να χρησιμοποιήσετε τον σχολιασμό ακροατών (@Listeners) όπως φαίνεται παρακάτω:
@Listeners (Listener_Demo.ListenerTest.class)
Το χρησιμοποιούμε στην κατηγορία "TestCases" όπως φαίνεται παρακάτω.
Τελικά, η τάξη "TestCases" μοιάζει μετά τη χρήση σχολιασμού Listener:
πακέτο Listener_Demo;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations.Listeners;εισαγωγή org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)Δημόσιες τάξεις TestCases {Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();// Δοκιμάστε να περάσετε για να επαληθεύσετε τους ακροατές.@Δοκιμήδημόσια άκυρη Είσοδος (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("κωδικός πρόσβασης")). sendKeys ("amUpenu");driver.findElement (By.id ("")). κάντε κλικ στο ();}// απέτυχε δυναμικά αυτή η δοκιμή ως επαλήθευση ακροατή.@Δοκιμήδημόσιο κενό TestToFail (){System.out.println ("Αυτή η μέθοδος δοκιμής αποτυγχάνει");Assert.assertTrue (false);}}
Η δομή του έργου μοιάζει με:
Βήμα 4): Εκτελέστε την τάξη "TestCases". Οι μέθοδοι στην τάξη "ListenerTest" καλούνται αυτόματα σύμφωνα με τη συμπεριφορά των μεθόδων που επισημαίνονται ως @Test.
Βήμα 5): Επαληθεύστε την έξοδο που εμφανίζεται στο αρχείο καταγραφής στην κονσόλα.
Η έξοδος των «TestCases» θα έχει την εξής μορφή:
[TestNG] Τρέξιμο:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customuite.xmlΗ δοκιμαστική υπόθεση σύνδεσης ξεκίνησεΤο όνομα της δοκιμαστικής βάσης είναι: ΣύνδεσηΞεκίνησε η δοκιμαστική θήκη TestToFailΑυτή η μέθοδος δοκιμής αποτυγχάνειΤο όνομα της αποθήκης που απέτυχε είναι: TestToFailPASSED: ΕίσοδοςΑΠΟΤΥΧΙΑ: TestToFailjava.lang.AssertionError: αναμένεται [true] αλλά βρέθηκε [false]
Χρήση του Listener για πολλές κατηγορίες.
Εάν το έργο έχει πολλές κατηγορίες, προσθέτοντας τους ακροατές σε κάθε μία από αυτές θα μπορούσε να είναι δυσκίνητη και επιρρεπής σε σφάλματα.
Σε τέτοιες περιπτώσεις, μπορούμε να δημιουργήσουμε ένα testng.xml και να προσθέσουμε μια ετικέτα ακροατή σε XML.
Αυτός ο ακροατής εφαρμόζεται σε ολόκληρη τη δοκιμαστική σουίτα ανεξάρτητα από τον αριθμό των τάξεων που έχετε. Όταν εκτελείτε αυτό το αρχείο XML, οι ακροατές θα εργάζονται σε όλες τις αναφερόμενες τάξεις. Μπορείτε επίσης να δηλώσετε οποιοδήποτε αριθμό κατηγορίας ακροατών
Περίληψη:
Οι ακροατές καλούνται να δημιουργήσουν αρχεία καταγραφής ή να προσαρμόσουν τις αναφορές TestNG στο Selenium Webdriver.
- Υπάρχουν πολλοί τύποι ακροατών και μπορούν να χρησιμοποιηθούν σύμφωνα με τις απαιτήσεις.
- Οι ακροατές είναι διεπαφές που χρησιμοποιούνται στο σενάριο προγράμματος οδήγησης ιστού σεληνίου
- Επίδειξη της χρήσης του Listener στο Σελήνιο
- Υλοποίησε τους ακροατές για πολλές κατηγορίες