TestNG: Πώς να εκτελέσετε πολλαπλές δοκιμαστικές σουίτες στο Σελήνιο

Πίνακας περιεχομένων:

Anonim

Το TestNG σάς δίνει τη δυνατότητα να εκτελείτε παράλληλα μεθόδους δοκιμών, τάξεις δοκιμών και δοκιμαστικές περιπτώσεις μέσα στο έργο σας. Εκτελώντας παράλληλη εκτέλεση, μπορούμε να μειώσουμε τον «χρόνο εκτέλεσης» καθώς οι δοκιμές ξεκινούν και εκτελούνται ταυτόχρονα σε διαφορετικά νήματα.

Εδώ θα δούμε πώς να εκτελέσουμε πολλές τάξεις (γνωστές και ως διαφορετικές σουίτες) χρησιμοποιώντας το TestNG.

Βήμα 1) Δημιουργία αρχείου TestNG.xml για εκτέλεση δοκιμής

Για να το κάνετε αυτό ακολουθήστε τα παρακάτω βήματα.

  1. Δημιουργήστε ένα νέο έργο στην έκλειψη
  2. Δημιουργήστε δύο πακέτα στα έργα (ονομάστε τα ως com.suite1 και com.suite2)
  3. Δημιουργήστε μια τάξη σε κάθε πακέτο (ονομάστε τα ως Flipkart.java και Snapdeal.java) και αντιγράψτε τον παρακάτω κώδικα στις αντίστοιχες τάξεις
  4. Δημιουργήστε ένα νέο αρχείο στο έργο σας και ονομάστε το ως testng.xml (Βεβαιωθείτε ότι έχετε εγκαταστήσει το πρόσθετο δοκιμών για έκλειψη, οδηγίες διαθέσιμες εδώ). Το Testng.xml περιέχει όλες τις διαμορφώσεις (ονόματα κλάσης, ονόματα δοκιμών και ονόματα.

Flipkart.java

πακέτο com.suite1;εισαγωγή java.util.concurrent.TimeUnit;εισαγωγή org.openqa.selenium.Alert;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.WebElement;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.openqa.selenium.interactions.Actions;εισαγωγή org.testng.annotations.AfterClass;εισαγωγή org.testng.annotations.BeforeClass;εισαγωγή org.testng.annotations.Test;δημόσια τάξη Flipkart {Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();Όνομα χρήστη συμβολοσειράς = ""; // Αλλαγή στο όνομα χρήστη και τον κωδικό πρόσβασηςΚωδικός συμβολοσειράς = "";// Αυτή η μέθοδος είναι η πλοήγηση στο flipkart URL@Πριν το μάθημαδημόσιο κενό init () {driver.manage (). window (). μεγιστοποίηση ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Για να συνδεθείτε στο flipkart@Δοκιμήδημόσια άκυρη σύνδεση () {driver.findElement (By.partialLinkText ("Login")). κάντε κλικ στο ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (όνομα χρήστη);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (κωδικός πρόσβασης);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). κάντε κλικ ();}// Αναζήτηση προϊόντος@Δοκιμήpublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).Κάντε κλικ();// επιλέξτε το πρώτο στοιχείο στα αποτελέσματα αναζήτησηςΣυμβολοσειρά css = ".gd-row.browse-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). κάντε κλικ στο ();}@Δοκιμήpublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).Κάντε κλικ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). κάντε κλικ ();Ειδοποίηση a = driver.switchTo (). Alert ();α. αποδοχή ();}@Δοκιμήδημόσια άκυρη αποσύνδεση () {Ενέργειες s = νέες ενέργειες (πρόγραμμα οδήγησης);WebElement user = driver.findElement (By.partialLinkText (όνομα χρήστη));s.moveToElement (χρήστης) .build (). εκτέλεση ();driver.findElement (By.linkText ("Αποσύνδεση")). κάντε κλικ στο ();}@Μετά το μάθημαδημόσια άκυρη διακοπή () {driver.close ();}}

SnapDeal.java

πακέτο com.suite2;εισαγωγή java.util.concurrent.TimeUnit;εισαγωγή org.openqa.selenium.Alert;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.WebElement;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.openqa.selenium.interactions.Actions;εισαγωγή org.testng.annotations.AfterClass;εισαγωγή org.testng.annotations.BeforeClass;εισαγωγή org.testng.annotations.Test;δημόσια τάξη SnapDeal {Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();Όνομα χρήστη συμβολοσειράς = ""; // Αλλαγή στο όνομα χρήστη και τον κωδικό πρόσβασηςΚωδικός συμβολοσειράς = "";Συμβολοσειρά pinCode = "";// Αυτή η μέθοδος είναι η πλοήγηση στη διεύθυνση URL snapdeal@Πριν το μάθημαδημόσιο κενό init () {driver.manage (). window (). μεγιστοποίηση ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Για να συνδεθείτε στο flipkart@Δοκιμήδημόσια άκυρη σύνδεση () {driver.findElement (By.xpath ("// κουμπί [text () = 'Login']")). κάντε κλικ ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']"))).Κάντε κλικ();driver.findElement (By.id ("j_username")). sendKeys (όνομα χρήστη);driver.findElement (By.id ("j_password_login")). sendKeys (κωδικός πρόσβασης);driver.findElement (By.id ("signin_submit")). κάντε κλικ στο ();driver.switchTo (). defaultContent ();}// Αναζήτηση προϊόντος@Δοκιμήpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). κάντε κλικ στο ();// επιλέξτε το πρώτο στοιχείο στα αποτελέσματα αναζήτησηςΣυμβολοσειρά css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). κάντε κλικ στο ();}@Δοκιμήpublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [περιέχει [κείμενο (), 'Silver')]")).driver.findElement (By.id ("pincode-check")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-id")). κάντε κλικ στο ();driver.findElement (By.cssSelector ("i [title = 'Delete Item']")). κάντε κλικ στο ();Ειδοποίηση a = driver.switchTo (). Alert ();α. αποδοχή ();}@Δοκιμήδημόσια άκυρη αποσύνδεση () {driver.findElement (By.linkText ("ΕΝΑΡΞΗ ΑΓΟΡΑΣΤΕ ΤΩΡΑ"). Κάντε κλικ στο ();Ενέργειες s = νέες ενέργειες (πρόγραμμα οδήγησης);WebElement user = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (χρήστης) .build (). εκτέλεση ();driver.findElement (By.linkText ("Αποσύνδεση")). κάντε κλικ στο ();}@Μετά το μάθημαδημόσια άκυρη διακοπή () {driver.close ();}}

TestNg.xml

<τάξεις><τάξεις>

Η τελική δομή του έργου μοιάζει παρακάτω,

Βήμα 2) Παράλληλη εκτέλεση στο TestNG

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

1) νήμα-μέτρηση : Χρησιμοποιείται για παράλληλη εκτέλεση, με βάση το σενάριο αριθμών. Θα εκτελεστεί σε παράλληλη ή διαδοχική σειρά.

2) verbose : Χρησιμοποιείται για την καταγραφή των λεπτομερειών εκτέλεσης στην κονσόλα. Η τιμή πρέπει να είναι 1-10. Τα στοιχεία καταγραφής στο παράθυρο της κονσόλας θα γίνουν πιο λεπτομερή και σαφέστερα καθώς αυξάνετε την τιμή του verbose χαρακτηριστικού στο αρχείο ρυθμίσεων testng.xml.

3) όνομα : Όνομα της σουίτας. Εδώ είναι το "Gmail Suite"

4) Παράλληλος : Για την εκτέλεση παράλληλων σεναρίων, η τιμή μπορεί να είναι δοκιμές / τάξεις / μέθοδοι / σουίτες Η προεπιλεγμένη τιμή δεν είναι καμία

Κάντε δεξί κλικ στο testng.xml και επιλέξτε εκτέλεση ως δοκιμή, αφού επιτύχετε θα δείτε όλα τα αποτελέσματα

Όταν εκτελέσετε τον παραπάνω κώδικα, θα λάβετε την ακόλουθη έξοδο.

Παραγωγή:

1) όνομα της σουίτας που δίνεται στο testng.xml

2) όνομα της δοκιμής που δίνεται στο testng.xml

3) όνομα της τάξης που δίνεται στο testng.xml

4) ονόματα μεθόδων σχολιασμένα με το @Test στο αρχείο .java

Παρομοίως, θα εκτελέσει δοκιμαστική σουίτα για snap deal.

Συμπέρασμα:

Εδώ έχουμε δει στο παραπάνω παράδειγμα, πώς να χρησιμοποιήσετε το Testng για να εκτελέσετε παράλληλη δοκιμή. Το TestNG δίνει τη δυνατότητα εκτέλεσης πολλαπλών δοκιμών παράλληλα σε ένα αρχείο διαμόρφωσης (XML).