TestNG Ακροατές μέσα Selenium: Παράδειγμα ITestListener & ITestResult
Υπάρχουν δύο κύριοι ακροατές.
- WebDriver Listeners
- TestNG Ακρόαση
Σε αυτό το σεμινάριο, θα συζητήσουμε για Testng Ακροατές.
Τι είναι το Listeners TestNG?
Ο ακροατής ορίζεται ως διεπαφή που τροποποιεί την προεπιλογή TestNGσυμπεριφορά του. Όπως υποδηλώνει το όνομα, οι ακροατές «ακούνε» το συμβάν που ορίζεται στο σενάριο σεληνίου και συμπεριφέρονται ανάλογα. Χρησιμοποιείται στο σελήνιο με την εφαρμογή Listeners Interface. Επιτρέπει την προσαρμογή TestNG αναφορές ή αρχεία καταγραφής. Υπάρχουν πολλά είδη TestNG διαθέσιμοι ακροατές.
Τύποι ακροατών σε TestNG
Υπάρχουν πολλοί τύποι ακροατών που σας επιτρέπουν να αλλάξετε το TestNGσυμπεριφορά του.
Παρακάτω είναι τα λίγα TestNG ακροατές:
- IAnnotationTransformer ,
- IAnnotationTransformer2,
- Iconfigurable,
- IConfigurationListener,
- IEexecutionListener,
- Ihookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Η παραπάνω διεπαφή καλείται TestNG Ακροατές. Αυτές οι διεπαφές χρησιμοποιούνται στο σελήνιο για τη δημιουργία αρχείων καταγραφής ή την προσαρμογή τους TestNG εκθέσεις.
Σε αυτό το σεμινάριο, θα εφαρμόσουμε το ITestListener.
Το ITestListener έχει τις ακόλουθες μεθόδους
- OnStart- Η μέθοδος OnStart καλείται όταν ξεκινά οποιαδήποτε δοκιμή.
- onTestSuccess- Η μέθοδος onTestSuccess καλείται στην επιτυχία οποιασδήποτε δοκιμής.
- onTestFailure- Η μέθοδος onTestFailure καλείται σε περίπτωση αποτυχίας οποιουδήποτε Test.
- onTestSkipped- Η μέθοδος onTestSkipped καλείται σε παράλειψη οποιασδήποτε δοκιμής.
- onTestFailedButWithinSuccessPercentage- Η μέθοδος καλείται κάθε φορά που η δοκιμή αποτυγχάνει αλλά βρίσκεται εντός ποσοστού επιτυχίας.
- στο Τέλος- Η μέθοδος onFinish καλείται μετά την εκτέλεση όλων των δοκιμών.
Σενάριο δοκιμής
Σε αυτό το σενάριο δοκιμής, θα αυτοματοποιήσουμε τη διαδικασία σύνδεσης και θα εφαρμόσουμε το 'ItestListener'.
Βήματα για τη δημιουργία α TestNG Ακροατής
Για το παραπάνω σενάριο δοκιμής, θα εφαρμόσουμε το Liner.
Βήμα 1) Δημιουργήστε την κλάση "ListenerTest" που υλοποιεί το "ITestListener". Μετακινήστε το ποντίκι πάνω από το κείμενο της κόκκινης γραμμής και Eclipse θα σας προτείνει 2 γρήγορες επιδιορθώσεις όπως φαίνεται στην παρακάτω οθόνη:
Απλώς κάντε κλικ στο «Προσθήκη μη εφαρμοσμένων μεθόδων». Πολλαπλές μη υλοποιημένες μέθοδοι (χωρίς σώμα) προστίθενται στον κώδικα. Ελέγξτε παρακάτω -
package Listener_Demo; import org.testng.ITestContext ; import org.testng.ITestListener ; import org.testng.ITestResult ; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onStart(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestFailure(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSkipped(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestStart(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSuccess(ITestResult arg0) { // TODO Auto-generated method stub } }
Ας τροποποιήσουμε την κλάση «ListenerTest». Συγκεκριμένα, θα τροποποιήσουμε τις ακόλουθες μεθόδους-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
Η τροποποίηση είναι απλή. Εκτυπώνουμε απλώς το όνομα του τεστ.
Τα αρχεία καταγραφής δημιουργούνται στην κονσόλα. Είναι εύκολο για τον χρήστη να καταλάβει ποια δοκιμή είναι μια κατάσταση επιτυχίας, αποτυχίας και παράβλεψης.
Μετά την τροποποίηση, ο κωδικός μοιάζει με-
package Listener_Demo; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext Result) { } @Override public void onStart(ITestContext Result) { } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult Result) { } // When Test case get failed, this method is called. @Override public void onTestFailure(ITestResult Result) { System.out.println("The name of the testcase failed is :"+Result.getName()); } // When Test case get Skipped, this method is called. @Override public void onTestSkipped(ITestResult Result) { System.out.println("The name of the testcase Skipped is :"+Result.getName()); } // When Test case get Started, this method is called. @Override public void onTestStart(ITestResult Result) { System.out.println(Result.getName()+" test case started"); } // When Test case get passed, this method is called. @Override public void onTestSuccess(ITestResult Result) { System.out.println("The name of the testcase passed is :"+Result.getName()); } }
Βήμα 2) Δημιουργήστε μια άλλη κλάση "TestCases" για την αυτοματοποίηση της διαδικασίας σύνδεσης. Selenium θα εκτελέσει αυτό το "TestCases" για να συνδεθείτε αυτόματα.
package Listener_Demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Listeners; Import org.testng.annotations.Test; public class TestCases { WebDriver driver= new FirefoxDriver(); // Test to pass as to verify listeners . @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.name("btnLogin")).click(); } // Forcefully failed this test as to verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } }
Βήμα 3) Στη συνέχεια, εφαρμόστε αυτόν τον ακροατή στην κανονική μας τάξη έργου, π.χ. "TestCases". Υπάρχουν δύο διαφορετικοί τρόποι σύνδεσης με την κλάση και τη διεπαφή.
Ο πρώτος τρόπος είναι να χρησιμοποιήσετε τον σχολιασμό Listeners (@Listeners) όπως φαίνεται παρακάτω:
@Listeners(Listener_Demo.ListenerTest.class)
Το χρησιμοποιούμε στην κατηγορία "TestCases" όπως φαίνεται παρακάτω.
Τελικά, η κλάση "TestCases" μοιάζει με τη χρήση του σχολιασμού ακροατή:
package Listener_Demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Listeners; import org.testng.annotations.Test; @Listeners(Listener_Demo.ListenerTest.class) public class TestCases { WebDriver driver= new FirefoxDriver(); //Test to pass as to verify listeners. @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.id("")).click(); } //Forcefully failed this test as verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } }
Η δομή του έργου μοιάζει με:
Βήμα 4): Εκτελέστε την κλάση "TestCases". Οι μέθοδοι στην κλάση "ListenerTest" καλούνται αυτόματα σύμφωνα με τη συμπεριφορά των μεθόδων που σχολιάζονται ως @Test.
Βήμα 5): Επαληθεύστε την έξοδο που εμφανίζεται στην κονσόλα.
Η έξοδος των "TestCases" θα μοιάζει με αυτό:
[TestNG] Running: C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml Login Test Case started The name of the testcase passed is:Login TestToFail test case started This method to test fail The name of the testcase failed is:TestToFail PASSED: Login FAILED: TestToFail java.lang.AssertionError: expected [true] but found [false]
Χρήση του Liner για πολλαπλές τάξεις.
Εάν το έργο έχει πολλές κλάσεις, η προσθήκη Ακροατών σε καθεμία από αυτές μπορεί να είναι δυσκίνητη και επιρρεπής σε σφάλματα.
Σε τέτοιες περιπτώσεις, μπορούμε να δημιουργήσουμε ένα testng.xml και να προσθέσουμε ετικέτα ακροατών σε XML.
Αυτός ο ακροατής εφαρμόζεται σε όλη τη δοκιμαστική σουίτα, ανεξάρτητα από τον αριθμό των τάξεων που έχετε. Όταν εκτελείτε αυτό το αρχείο XML, οι ακροατές θα λειτουργούν σε όλες τις αναφερόμενες κλάσεις. Μπορείτε επίσης να δηλώσετε οποιονδήποτε αριθμό κλάσης ακροατών.
Σύνοψη
Οι ακροατές πρέπει να δημιουργήσουν αρχεία καταγραφής ή να προσαρμόσουν TestNG αναφορές στο Selenium Webdriver.
- Υπάρχουν πολλοί τύποι ακροατών και μπορούν να χρησιμοποιηθούν σύμφωνα με τις απαιτήσεις.
- Οι ακροατές είναι διεπαφές που χρησιμοποιούνται στο σενάριο προγράμματος οδήγησης web selenium
- Επέδειξε τη χρήση του Liner in Selenium
- Εφάρμοσε τα Listeners για πολλαπλές τάξεις