TestNG Ακροατές μέσα Selenium: Παράδειγμα ITestListener & ITestResult


Υπάρχουν δύο κύριοι ακροατές.

  1. WebDriver Listeners
  2. TestNG Ακρόαση

Σε αυτό το σεμινάριο, θα συζητήσουμε για Testng Ακροατές.

Τι είναι το Listeners TestNG?

Ο ακροατής ορίζεται ως διεπαφή που τροποποιεί την προεπιλογή TestNGσυμπεριφορά του. Όπως υποδηλώνει το όνομα, οι ακροατές «ακούνε» το συμβάν που ορίζεται στο σενάριο σεληνίου και συμπεριφέρονται ανάλογα. Χρησιμοποιείται στο σελήνιο με την εφαρμογή Listeners Interface. Επιτρέπει την προσαρμογή TestNG αναφορές ή αρχεία καταγραφής. Υπάρχουν πολλά είδη TestNG διαθέσιμοι ακροατές.

Ακροατές μέσα TestNG

Τύποι ακροατών σε TestNG

Υπάρχουν πολλοί τύποι ακροατών που σας επιτρέπουν να αλλάξετε το TestNGσυμπεριφορά του.

Παρακάτω είναι τα λίγα TestNG ακροατές:

  1. IAnnotationTransformer ,
  2. IAnnotationTransformer2,
  3. Iconfigurable,
  4. IConfigurationListener,
  5. IEexecutionListener,
  6. Ihookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

Η παραπάνω διεπαφή καλείται TestNG Ακροατές. Αυτές οι διεπαφές χρησιμοποιούνται στο σελήνιο για τη δημιουργία αρχείων καταγραφής ή την προσαρμογή τους TestNG εκθέσεις.

Σε αυτό το σεμινάριο, θα εφαρμόσουμε το ITestListener.

Το ITestListener έχει τις ακόλουθες μεθόδους

  • OnStart- Η μέθοδος OnStart καλείται όταν ξεκινά οποιαδήποτε δοκιμή.
  • onTestSuccess- Η μέθοδος onTestSuccess καλείται στην επιτυχία οποιασδήποτε δοκιμής.
  • onTestFailure- Η μέθοδος onTestFailure καλείται σε περίπτωση αποτυχίας οποιουδήποτε Test.
  • onTestSkipped- Η μέθοδος onTestSkipped καλείται σε παράλειψη οποιασδήποτε δοκιμής.
  • onTestFailedButWithinSuccessPercentage- Η μέθοδος καλείται κάθε φορά που η δοκιμή αποτυγχάνει αλλά βρίσκεται εντός ποσοστού επιτυχίας.
  • στο Τέλος- Η μέθοδος onFinish καλείται μετά την εκτέλεση όλων των δοκιμών.

Σενάριο δοκιμής

Σε αυτό το σενάριο δοκιμής, θα αυτοματοποιήσουμε τη διαδικασία σύνδεσης και θα εφαρμόσουμε το 'ItestListener'.

  1. Εκκίνηση του Firefox και ανοίξτε τον ιστότοπο http://demo.guru99.com/V4/
  2. Σενάριο δοκιμής

  3. Είσοδος στην εφαρμογή.
  4. Σενάριο δοκιμής

Βήματα για τη δημιουργία α TestNG Ακροατής

Για το παραπάνω σενάριο δοκιμής, θα εφαρμόσουμε το Liner.

Βήμα 1) Δημιουργήστε την κλάση "ListenerTest" που υλοποιεί το "ITestListener". Μετακινήστε το ποντίκι πάνω από το κείμενο της κόκκινης γραμμής και Eclipse θα σας προτείνει 2 γρήγορες επιδιορθώσεις όπως φαίνεται στην παρακάτω οθόνη:

Βήματα για τη δημιουργία α TestNG Ακροατής

Απλώς κάντε κλικ στο «Προσθήκη μη εφαρμοσμένων μεθόδων». Πολλαπλές μη υλοποιημένες μέθοδοι (χωρίς σώμα) προστίθενται στον κώδικα. Ελέγξτε παρακάτω -

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);			
}		
}			

Η δομή του έργου μοιάζει με:

Βήματα για τη δημιουργία α TestNG Ακροατής

Βήμα 4): Εκτελέστε την κλάση "TestCases". Οι μέθοδοι στην κλάση "ListenerTest" καλούνται αυτόματα σύμφωνα με τη συμπεριφορά των μεθόδων που σχολιάζονται ως @Test.

Βήμα 5): Επαληθεύστε την έξοδο που εμφανίζεται στην κονσόλα.

Η έξοδος των "TestCases" θα μοιάζει με αυτό:

Βήματα για τη δημιουργία α TestNG Ακροατής

[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 για πολλαπλές τάξεις