Το TestNG είναι ένα πλαίσιο δοκιμών που καλύπτει διαφορετικούς τύπους σχεδίων δοκιμών όπως μονάδα, λειτουργικό, άκρο σε άκρο, UI και δοκιμή ολοκλήρωσης.
Μπορείτε να εκτελέσετε ένα ή περισσότερα πακέτα (το πακέτο εδώ σημαίνει να ενσωματώσετε μια ομάδα τάξεων σε κατάλληλη μορφή σκηνοθέτη) δημιουργώντας XML και εκτελέστε το μέσω maven.
Σε αυτό το σεμινάριο, θα μάθετε-
- Ομάδες TestNG με Παράδειγμα
- Ορισμός διαδρομής maven και Java σε μεταβλητή περιβάλλοντος (για χρήστες παραθύρων)
- Εισαγωγή στο XML και τρόπος δημιουργίας αρχείων XML
- Ένας άλλος μηχανισμός αντί της Ομαδοποίησης είναι "αποκλεισμός" ή "συμπερίληψη" στο τεστ XML
- Τρόπος εκτέλεσης κώδικα χρησιμοποιώντας αρχείο XML (επίδειξη βίντεο)
Ομάδες TestNG με Παράδειγμα
Χρησιμοποιούμε ομάδες στο Testng όταν,
- Δεν θέλουμε να ορίσουμε μεθόδους δοκιμής ξεχωριστά σε διαφορετικές κατηγορίες (ανάλογα με τη λειτουργικότητα) και
- Ταυτόχρονα θέλουμε να αγνοήσουμε (να μην εκτελέσουμε) ορισμένες δοκιμαστικές περιπτώσεις σαν να μην υπάρχουν στον κώδικα.
- Για να το κάνουμε αυτό, πρέπει να τα ομαδοποιήσουμε. Αυτό γίνεται χρησιμοποιώντας τον μηχανισμό "include" και "exclude" που υποστηρίζεται στο testNG.
Στο παρακάτω παράδειγμα, έχουμε δείξει τη σύνταξη του τρόπου χρήσης ομάδων στο αρχείο XML.
@Test (ομάδες = {"bonding", "strong_ties"})
Εδώ χρησιμοποιούμε 2 ονόματα ομάδων, δηλαδή "bonding" και "strong_ties" (αυτά είναι λογικά ονόματα που μπορούν να αλλάξουν σύμφωνα με την επιθυμία σας).
Η ετικέτα
Προσαρμόστε το XML σας για να επιλέξετε την αναφερόμενη ομάδα από τις τάξεις δοκιμής. Παρακάτω αναφέρεται η σύνταξη του τρόπου δήλωσης ομάδων σε αρχείο XML π.χ.
<ομάδες><εκτέλεση>
Ας υποθέσουμε λοιπόν ότι υπάρχουν 10 μέθοδοι δοκιμής σε μια τάξη.
Από αυτούς,
- 6 μέθοδοι επισημαίνονται στην ομάδα "σύνδεσης" και
- 4 είναι στην ομάδα "strong_ties"
Προχωρώντας προς τα εμπρός, πρόκειται να ορίσουμε τη διαδρομή maven / Java και να χρησιμοποιήσουμε το Eclipse IDE για να δείξουμε τη χρήση ομάδων που χρησιμοποιούν αρχεία XML σε έργο maven που βασίζεται σε Java.
Ορισμός διαδρομής maven και Java σε μεταβλητή περιβάλλοντος (για χρήστες παραθύρων)
Ανατρέξτε στη διεύθυνση https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Εισαγωγή στο XML και τρόπος δημιουργίας αρχείων XML
- Το αρχείο XML (Extensible Markup Language) στο πλαίσιο Maven περιέχει τις πληροφορίες για μία ή περισσότερες δοκιμές και ορίζεται από την ετικέτα
. - Οι πληροφορίες δοκιμής σε XML αντιπροσωπεύονται από την ετικέτα
και μπορούν να περιέχουν μία ή περισσότερες κλάσεις TestNG. - Μια κλάση Java που περιέχει σχολιασμό @Test πάνω από τις μεθόδους δοκιμής ορίζεται ως μέθοδοι TestNG.
Πολλαπλές ετικέτες χρησιμοποιούνται σε μια ακολουθία για να δημιουργήσουν ένα λειτουργικό τεστ NG xml όπως
- Πρώτη είναι η ετικέτα
, η οποία κρατά ένα λογικό όνομα που καθορίζει τις πλήρεις πληροφορίες για το testNG που αναφέρθηκε για τη δημιουργία αναφοράς εκτέλεσης. - Το δεύτερο είναι
, σημειώστε ότι είναι λογικό όνομα που κρατά τις πληροφορίες της έκθεσης εκτέλεσης δοκιμής όπως περάσει, αποτύχει, παραλείψτε τις δοκιμαστικές περιπτώσεις και άλλες πληροφορίες όπως ο συνολικός χρόνος εκτέλεσης και οι πληροφορίες ομάδας - Το τρίτο είναι
, com.group.guru99 είναι το πακέτο που χρησιμοποιείται και το όνομα Class Test είναι TC_Class1.
xml version = "1.0" encoding = "UTF-8"?><ομάδες><εκτέλεση> <τάξεις>
Θα χρησιμοποιήσουμε αυτό το XML για το επερχόμενο μειονέκτημα του βίντεο.
Ένας άλλος μηχανισμός αντί της Ομαδοποίησης είναι "εξαίρεση" ή "συμπερίληψη" στο τεστ XML
Ας υποθέσουμε ότι βρίσκετε τη χρήση του συμπλέγματος μηχανισμού ομάδας και στη συνέχεια το testNG XML διευκολύνει τη λειτουργικότητα να αποκλείσετε / συμπεριλάβετε μια δοκιμή.
Εξαίρεση ετικέτας : Σύνταξη για ετικέτα εξαίρεσηςΣυμπερίληψη ετικέτας : Σύνταξη για ετικέτα συμπερίληψης
Σημείωση: Μπορούμε να συμπεριλάβουμε / να εξαιρέσουμε πολλές δοκιμαστικές περιπτώσεις μία φορά τη φορά και λειτουργεί και με τις Ομάδες.
Τρόπος εκτέλεσης κώδικα χρησιμοποιώντας αρχείο XML (επίδειξη βίντεο)
Επεξήγηση του κώδικα Java και XML με την ομάδα, εξαίρεση και συμπερίληψη της ετικέτας σε XML.
- Σενάριο : Εκκινήστε τον δοκιμαστικό ιστότοπο Guru99 Banking, επαληθεύστε λίγα πράγματα στη σελίδα σύνδεσης μετά από αυτό εισαγάγετε διαπιστευτήρια και επαληθεύστε ξανά λίγα νέα πράγματα στην εφαρμογή κατά τη σύνδεση
Σημείωση : Κάθε βήμα που κωδικοποιείτε θα πρέπει να δηλώνεται σε ξεχωριστές μεθόδους, αλλά όταν εκτελείται, θα εκτελεί δοκιμαστικές μεθόδους ανάλογα με τις καταχωρίσεις στο αρχείο XML.
Μέθοδος 1 : Αρχικοποιήστε το πρόγραμμα περιήγησης και ξεκινήστε τη διεύθυνση URL (tc01LaunchURL ())
Μέθοδος 2 : Επαλήθευση επικεφαλίδας σελίδας σύνδεσης (tc02VerifyLaunchPage ())
Μέθοδος 3 : Εισαγάγετε όνομα χρήστη και κωδικό πρόσβασης στη φόρμα σύνδεσης (tc03EnterCredentials ())
Μέθοδος 4 : Επαληθεύστε την παρουσία του αναγνωριστικού διαχειριστή στον πίνακα ελέγχου χρήστη (tc04VerifyLoggedInPage ())
Μέθοδος 5 : Επαλήθευση λίγων ακόμη συνδέσμων στο User DashBoard (tc05VerifyHyperlinks ())
Κωδικός για το σενάριό μας:
πακέτο com.group.guru99;εισαγωγή java.util.concurrent.TimeUnit;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations.Test;δημόσια τάξη TC_Class1 {δημόσιο στατικό τελικό WebDriver webDriver = νέο FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [περιέχει [κείμενο (), 'Manger Id')]"final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Αυτή η δοκιμαστική περίπτωση θα προετοιμάσει το webDriver* /@Test (ομάδες = {"bonding", "strong_ties"})δημόσιο κενό tc01LaunchURL () {webDriver.manage (). παράθυρο (). μεγιστοποίηση ();webDriver.manage (). χρονικά όρια (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Θα ελέγξει την παρουσία της επικεφαλίδας στη σελίδα σύνδεσης* /@Test (ομάδες = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplay (),"Η επικεφαλίδα της αρχικής σελίδας δεν εμφανίζεται");System.out.println ("Εμφανίζεται η αρχική σελίδα της σελίδας");}/ *** Αυτή η δοκιμαστική περίπτωση θα εισαγάγει το όνομα χρήστη, τον κωδικό πρόσβασης και στη συνέχεια θα κάνει κλικ στο* κουμπί εισόδου* /@Test (ομάδες = {"bonding", "strong_ties"})δημόσιο κενό tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). κάντε κλικ στο ();}/ *** Αυτή η δοκιμαστική υπόθεση θα επαληθεύσει την παρουσία ταυτότητας του διαχειριστή στο DashBoard* /@Test (ομάδες = {"strong_ties"})δημόσιο κενό tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplay (),"Η ετικέτα αναγνωριστικού διαχειριστή δεν εμφανίζεται");System.out.println ("Εμφανίζεται η ετικέτα αναγνωριστικού Manger");}/ *** Αυτή η δοκιμαστική υπόθεση θα ελέγξει την παρουσία της σύνδεσης Νέου πελάτη* Και σύνδεσμος FundTransfer στο αριστερό πλαίσιο* /@Test (ομάδες = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Δεν εμφανίζεται υπερσύνδεσμος νέου πελάτη");System.out.println ("Εμφανίζεται υπερσύνδεσμος νέου πελάτη");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Ο υπερσύνδεσμος μεταφοράς χρημάτων δεν εμφανίζεται");System.out.println ("Εμφανίζεται ο υπερσύνδεσμος μεταφοράς χρημάτων");}}
Σημείωση: Τα διαπιστευτήρια ισχύουν μόνο για 20 ημέρες, οπότε αν προσπαθείτε να εκτελέσετε κώδικα στον τοπικό υπολογιστή σας, ενδέχεται να αντιμετωπίσετε μη έγκυρο σφάλμα διαπιστευτηρίων. Βρείτε τα παρακάτω βήματα για τη δημιουργία των διαπιστευτηρίων σύνδεσης:
- Ξεκινήστε το http://www.demo.guru99.com
- Εισαγάγετε το αναγνωριστικό email σας στο πλαίσιο.
- Κάντε κλικ στο enter και δείτε τα στοιχεία σύνδεσής σας στην οθόνη.
Επεξήγηση του κώδικα:
Όπως αναφέρθηκε παραπάνω, έχουμε δημιουργήσει 5 δοκιμαστικές θήκες για την εκτέλεση κάθε ενέργειας σε ανεξάρτητες μεθόδους.
Μπορείτε να παρατηρήσετε ότι σε κάθε μέθοδο, έχουμε συσχετίσει μια παράμετρο ομάδας που έχει κάποια τιμή σε αυτήν.
Βασικά, αυτά είναι το όνομα των διαφοροποιημένων ομάδων, δηλαδή "strong_ties" & "bonding".
- Οι πρώτες και τρίτες μέθοδοι επισημαίνονται σε "bonding", "strong_ties" που σημαίνει ότι εάν η XML ενημερωθεί σε οποιαδήποτε από την ομάδα, αυτή η δοκιμαστική υπόθεση θα εκτελεστεί.
- Η δεύτερη μέθοδος επισημαίνεται μόνο στην ομάδα "bonding", σημαίνει ότι εάν η XML ενημερώνεται με την ομάδα σύνδεσης. Μόνο σε αυτήν την περίπτωση θα εκτελεστεί αυτή η δοκιμαστική υπόθεση.
- Η τέταρτη δοκιμαστική θήκη έχει ετικέτα στην ομάδα strong_ties, πράγμα που σημαίνει ότι αυτή η δοκιμαστική υπόθεση θα εκτελεστεί μόνο εάν το XML ενημερωθεί με το όνομα της ομάδας strong_ties.
- Τελευταία αλλά όχι η ελάχιστη πέμπτη δοκιμαστική θήκη προσαρτάται στην ομάδα σύνδεσης, πράγμα που σημαίνει ότι αυτή η δοκιμαστική θήκη θα εκτελεστεί μόνο εάν η XML ενημερωθεί με το όνομα της ομάδας σύνδεσης.
Συνολικά, έχουμε 4 σενάρια.
- Θέλουμε να εκτελέσουμε όλες τις δοκιμαστικές περιπτώσεις ανεξάρτητα από το όνομα της ομάδας. Σε αυτήν την περίπτωση, θα καταργήσουμε την ετικέτα ομάδας από την εκτέλεση XML.
- Θέλουμε να εκτελέσουμε δοκιμαστική υπόθεση λίγες δοκιμές που σχετίζονται μόνο με οποιαδήποτε από τις ομάδες, π.χ.
- Παρακαλώ αναφερθείτε:
- Σε αυτό το βίντεο, η παράμετρος ομάδας σχολιάζεται από την εκτέλεση XML. Ως εκ τούτου, θα δείτε ότι όλες οι δοκιμαστικές περιπτώσεις εκτελέστηκαν.
- Σε συνέχεια του βίντεο, τώρα έχουμε συμπεριλάβει το όνομα ομάδας σε XML, μπορείτε να δείτε μόνο δοκιμαστικές περιπτώσεις που εκτελούνται μόνο σε αυτήν την ομάδα.
- Χρησιμοποιούμε μηχανισμό αποκλεισμού για να αποκλείσουμε τη δοκιμαστική θήκη:
- Παρακαλώ αναφερθείτε
- Βλέπετε ότι έχουμε χρησιμοποιήσει εξαιρέστε λίγη δοκιμαστική θήκη (tc02) γράφοντας το όνομά τους στην εκτέλεση XML. Στο τελικό αποτέλεσμα δεν αναφέρθηκαν οι δοκιμαστικές περιπτώσεις.
- Τέλος, χρησιμοποιούμε μηχανισμό δοκιμής συμπερίληψης για να συμπεριλάβουμε τις δοκιμαστικές περιπτώσεις (tc01LaunchURL, tc03EnterCredentials και tc05VerifyHyperlinks)
- Παρακαλώ αναφερθείτε
- Σε αυτό το βίντεο, θα δείτε ότι οι δοκιμαστικές περιπτώσεις που αναφέρονται σε XML εκτελούνται μόνο κατά την εκτέλεση της δοκιμής.
Πραγματοποιήστε λήψη του κώδικα από την αναφερόμενη διεύθυνση URL, θα περιέχει όλους τους τύπους testXML:
Κατεβάστε τον παραπάνω Κώδικα
συμπέρασμα
Έχουμε μάθει εδώ σχετικά έναν νέο τρόπο εκτέλεσης δοκιμαστικών περιπτώσεων χρησιμοποιώντας XML στο έργο Maven.
Ξεκινήσαμε παρέχοντας μια σύντομη εισαγωγή στο testNG και συνεχίσαμε με την πλήρη τεχνική προδιαγραφή των Ομάδων, εξαιρώντας και συμπεριλάβουμε.