Τι είναι το TestNG;
Το TestNG είναι ένα πλαίσιο δοκιμών αυτοματισμού στο οποίο το NG σημαίνει "Next Generation". Το TestNG είναι εμπνευσμένο από το JUnit που χρησιμοποιεί τους σχολιασμούς (@). Το TestNG ξεπερνά τα μειονεκτήματα του JUnit και έχει σχεδιαστεί για να διευκολύνει τις δοκιμές από άκρο σε άκρο.
Χρησιμοποιώντας το TestNG, μπορείτε να δημιουργήσετε μια κατάλληλη αναφορά και μπορείτε εύκολα να μάθετε πόσες δοκιμαστικές περιπτώσεις περνούν, αποτύχουν και παραλείπονται. Μπορείτε να εκτελέσετε τις αποτυχημένες δοκιμαστικές περιπτώσεις ξεχωριστά.
Για παράδειγμα:
- Ας υποθέσουμε ότι έχετε πέντε δοκιμαστικές περιπτώσεις, μια μέθοδος γράφεται για κάθε δοκιμαστική περίπτωση (Ας υποθέσουμε ότι το πρόγραμμα γράφεται χρησιμοποιώντας την κύρια μέθοδο χωρίς τη χρήση δοκιμαστικής δοκιμής). Όταν εκτελείτε πρώτα αυτό το πρόγραμμα, τρεις μέθοδοι εκτελούνται με επιτυχία και η τέταρτη μέθοδος απέτυχε. Στη συνέχεια, διορθώστε τα σφάλματα που υπάρχουν στην τέταρτη μέθοδο, τώρα θέλετε να εκτελέσετε μόνο την τέταρτη μέθοδο, επειδή οι τρεις πρώτες μέθοδοι πάντως εκτελούνται με επιτυχία. Αυτό δεν είναι δυνατό χωρίς τη χρήση του TestNG.
- Το TestNG στο Σελήνιο παρέχει μια επιλογή, δηλαδή το αρχείο testng-fail.xml στο φάκελο δοκιμής-εξόδου. Εάν θέλετε να εκτελέσετε μόνο αποτυχημένες περιπτώσεις δοκιμής, σημαίνει ότι εκτελείτε αυτό το αρχείο XML. Θα εκτελέσει μόνο αποτυχημένες περιπτώσεις δοκιμών.
Εκτός από την παραπάνω ιδέα, θα μάθετε περισσότερα για το TestNG, όπως ποια είναι τα πλεονεκτήματα του TestNG, πώς να δημιουργήσετε μεθόδους δοκιμών χρησιμοποιώντας σχολιασμούς @test, πώς να μετατρέψετε αυτές τις τάξεις σε αρχείο σουίτας δοκιμών και να εκτελέσετε μέσω της έκλειψης καθώς και από τη γραμμή εντολών .
Σε αυτό το σεμινάριο TestNG, θα μάθετε
- Γιατί να χρησιμοποιήσετε το TestNG με σελήνιο;
- Πλεονεκτήματα του TestNG έναντι του JUnit
- Δημιουργήστε δοκιμαστική θήκη χρησιμοποιώντας σχολιασμούς TestNG
- Πώς να δημιουργήσετε ένα νέο αρχείο δοκιμής TestNG
- Κωδικοποίηση του Πρώτου Παραδείγματος TestNG Test Case
- Εκτέλεση του τεστ
- Έλεγχος αναφορών που δημιουργήθηκαν από το TestNG
- Σχολιασμοί που χρησιμοποιούνται στο TestNG
- Πολλαπλές περιπτώσεις δοκιμής
- Παράμετροι
- Πολλαπλές παράμετροι
- Περίληψη των σχολιασμών TestNG
Γιατί να χρησιμοποιήσετε το TestNG με σελήνιο;
Οι προεπιλεγμένες δοκιμές σεληνίου δεν δημιουργούν την κατάλληλη μορφή για τα αποτελέσματα των δοκιμών. Χρησιμοποιώντας το TestNG στο Σελήνιο, μπορούμε να δημιουργήσουμε αποτελέσματα δοκιμών.
Οι περισσότεροι χρήστες Selenium το χρησιμοποιούν περισσότερο από το Junit λόγω των πλεονεκτημάτων του. Υπάρχουν τόσα πολλά χαρακτηριστικά του TestNG, αλλά θα επικεντρωθούμε μόνο στα πιο σημαντικά που μπορούμε να χρησιμοποιήσουμε στο Selenium. Ακολουθούν τα βασικά χαρακτηριστικά του Selenium TestNG:
- Δημιουργήστε την αναφορά σε σωστή μορφή, συμπεριλαμβανομένου ενός αριθμού δοκιμαστικών περιπτώσεων, του αριθμού των δοκιμαστικών περιπτώσεων που πέρασαν, του αριθμού των δοκιμαστικών περιπτώσεων που απέτυχαν και του αριθμού των δοκιμαστικών περιπτώσεων που παραλείφθηκαν.
- Πολλαπλές δοκιμαστικές περιπτώσεις μπορούν να ομαδοποιηθούν πιο εύκολα μετατρέποντάς τις σε αρχείο testng.xml. Στις οποίες μπορείτε να ορίσετε προτεραιότητες σε ποια δοκιμαστική περίπτωση πρέπει να εκτελεστεί πρώτα.
- Η ίδια δοκιμαστική θήκη μπορεί να εκτελεστεί πολλές φορές χωρίς βρόχους μόνο με τη χρήση λέξης-κλειδιού που ονομάζεται «αριθμός κλήσεων».
- Χρησιμοποιώντας το testng, μπορείτε να εκτελέσετε πολλαπλές δοκιμαστικές περιπτώσεις σε πολλά προγράμματα περιήγησης, δηλαδή, δοκιμή cross browser.
- Το πλαίσιο TestNG μπορεί εύκολα να ενσωματωθεί σε εργαλεία όπως το TestNG Maven, Jenkins κ.λπ.
- Οι σχολιασμοί που χρησιμοποιούνται στη δοκιμή είναι πολύ κατανοητοί π.χ.: @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest
- Το WebDriver δεν διαθέτει εγγενή μηχανισμό για τη δημιουργία αναφορών. Το TestNG μπορεί να δημιουργήσει την αναφορά σε αναγνώσιμη μορφή όπως αυτή που φαίνεται παρακάτω.
- Το TestNG απλοποιεί τον τρόπο κωδικοποίησης των δοκιμών. Δεν υπάρχει πλέον ανάγκη για στατική κύρια μέθοδο στις δοκιμές μας. Η ακολουθία των ενεργειών ρυθμίζεται από ευνόητους σχολιασμούς που δεν απαιτούν μεθόδους να είναι στατικές.
- Οι μη εξαχθέντες εξαιρέσεις αντιμετωπίζονται αυτόματα από το TestNG χωρίς να τερματίσουν τον έλεγχο πρόωρα. Αυτές οι εξαιρέσεις αναφέρονται ως αποτυχημένα βήματα στην αναφορά.
Πλεονεκτήματα του TestNG έναντι του JUnit
Υπάρχουν τρία μεγάλα πλεονεκτήματα του TestNG έναντι του JUnit:
- Οι σχολιασμοί είναι πιο κατανοητοί
- Οι δοκιμαστικές περιπτώσεις μπορούν να ομαδοποιηθούν πιο εύκολα
- Είναι δυνατή η παράλληλη δοκιμή
Οι σχολιασμοί στο TestNG είναι γραμμές κώδικα που μπορούν να ελέγξουν τον τρόπο εκτέλεσης της μεθόδου που ακολουθεί . Πάντα προηγούνται το σύμβολο @. Ένα πολύ πρώιμο και γρήγορο παράδειγμα TestNG είναι αυτό που φαίνεται παρακάτω.
Οι σχολιασμοί θα συζητηθούν αργότερα στην ενότητα με τίτλο "Σχολιασμοί που χρησιμοποιούνται στο TestNG", οπότε είναι εντάξει εάν δεν καταλαβαίνετε το παραπάνω παράδειγμα TestNG. Είναι απλώς σημαντικό να σημειωθεί προς το παρόν ότι οι σχολιασμοί στο TestNG είναι πιο εύκολο να κωδικοποιηθούν και να κατανοηθούν από ότι στο JUnit.
Η δυνατότητα εκτέλεσης δοκιμών παράλληλα είναι διαθέσιμη στο TestNG αλλά όχι στο JUnit, επομένως το πλαίσιο TestNG προτιμάται περισσότερο από τους δοκιμαστές που χρησιμοποιούν Selenium Grid.
Δημιουργήστε δοκιμαστική θήκη χρησιμοποιώντας σχολιασμούς TestNG
Τώρα, θα μάθουμε πώς να δημιουργούμε την πρώτη μας δοκιμαστική θήκη χρησιμοποιώντας το TestNG Annotations στο Selenium:
Πριν δημιουργήσουμε μια δοκιμαστική θήκη, πρέπει πρώτα να εγκαταστήσουμε ένα νέο έργο TestNG στο Eclipse και να το ονομάσουμε ως "FirstTestNGProject".
Δημιουργία νέου έργου TestNG
Βήμα 1: Κάντε κλικ στο Αρχείο> Νέο> Java Project
Βήμα 2: Πληκτρολογήστε "FirstTestNGProject" ως όνομα έργου και, στη συνέχεια, κάντε κλικ στο κουμπί Επόμενο.
Βήμα 3: Θα ξεκινήσουμε τώρα να εισάγουμε τις βιβλιοθήκες TestNG στο έργο μας. Κάντε κλικ στην καρτέλα "Βιβλιοθήκες" και, στη συνέχεια, "Προσθήκη βιβλιοθήκης
… "Βήμα 4: Στο παράθυρο διαλόγου Προσθήκη βιβλιοθήκης, επιλέξτε "TestNG" και κάντε κλικ στο Επόμενο.
Βήμα 5: Κάντε κλικ στο Τέλος.
Θα πρέπει να παρατηρήσετε ότι το TestNG περιλαμβάνεται στη λίστα βιβλιοθηκών.
Βήμα 6: Θα προσθέσουμε τώρα τα αρχεία JAR που περιέχουν το API Selenium. Αυτά τα αρχεία βρίσκονται στο πρόγραμμα οδήγησης προγράμματος-πελάτη Java που κατεβάσαμε από το http://docs.seleniumhq.org/download/ όταν εγκαταστήσαμε το Selenium και το Eclipse στα προηγούμενα κεφάλαια.
Στη συνέχεια, μεταβείτε στο σημείο όπου έχετε τοποθετήσει τα αρχεία Selenium JAR.
Αφού προσθέσετε τα εξωτερικά JAR, η οθόνη σας θα μοιάζει με αυτήν.
Βήμα 7: Κάντε κλικ στο κουμπί Τέλος και βεβαιωθείτε ότι το FirstTestNGProject είναι ορατό στο παράθυρο του Eclipse's Package Explorer.
Πώς να δημιουργήσετε ένα νέο αρχείο δοκιμής TestNG
Τώρα που ολοκληρώσαμε τη ρύθμιση του έργου μας σε αυτό το σεμινάριο TestNG, ας δημιουργήσουμε ένα νέο αρχείο TestNG.
Βήμα 1: Κάντε δεξί κλικ στο φάκελο "src" και στη συνέχεια επιλέξτε Νέο> Άλλο
…Βήμα 2: Κάντε κλικ στο φάκελο TestNG και επιλέξτε "TestNG class" επιλογή. Κάντε κλικ στο Επόμενο.
Βήμα 3: Πληκτρολογήστε τις τιμές που αναφέρονται παρακάτω στα κατάλληλα πλαίσια εισόδου και κάντε κλικ στο Τέλος. Παρατηρήστε ότι ονομάσαμε το αρχείο Java ως "FirstTestNGFile".
Το Eclipse θα πρέπει να δημιουργήσει αυτόματα το πρότυπο για το αρχείο TestNG που φαίνεται παρακάτω.
Κωδικοποίηση του Πρώτου Παραδείγματος TestNG Test Case
Ας δημιουργήσουμε τώρα την πρώτη μας δοκιμαστική θήκη που θα ελέγξει αν η αρχική σελίδα της Mercury Tours είναι σωστή. Πληκτρολογήστε τον κωδικό σας όπως φαίνεται στο παρακάτω παράδειγμα TestNG:
πακέτο firsttestngpackageεισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations. *;δημόσια τάξη firsttestngfile {public String baseUrl = "http://demo.guru99.com/test/newtours/";String driverPath = "C: \\ geckodriver.exe";δημόσιο πρόγραμμα οδήγησης WebDriver;@Δοκιμήδημόσιο άκυρο επαλήθευσηHomepageTitle () {System.out.println ("εκκίνηση του προγράμματος περιήγησης firefox");System.setProperty ("webdriver.gecko.driver", driverPath);πρόγραμμα οδήγησης = νέο FirefoxDriver ();driver.get (baseUrl);String waitingTitle = "Καλώς ήλθατε: Mercury Tours";String actualTitle = driver.getTitle ();Assert.assertEquals (πραγματικός τίτλος, αναμενόμενος τίτλος);driver.close ();}}
Παρατηρήστε τα ακόλουθα.
- Το TestNG δεν απαιτεί να έχετε μια κύρια () μέθοδο.
- Οι μέθοδοι δεν χρειάζεται να είναι στατικές.
- Χρησιμοποιήσαμε τον σχολιασμό @Test. Το @Test χρησιμοποιείται για να πει ότι η μέθοδος που ακολουθεί είναι μια υπόθεση δοκιμής . Σε αυτήν την περίπτωση, έχουμε ορίσει τη μέθοδο verifikasiHomepageTitle () ως δοκιμαστική υπόθεση, οπότε τοποθετήσαμε έναν σχολιασμό «@Test» πάνω του.
- Δεδομένου ότι χρησιμοποιούμε σχολιασμούς στο TestNG, χρειαζόμασταν να εισαγάγουμε το πακέτο org.testng.annotations. *.
- Χρησιμοποιήσαμε την κατηγορία Assert. Η κατηγορία Assert χρησιμοποιείται για τη διεξαγωγή εργασιών επαλήθευσης στο TestNG . Για να το χρησιμοποιήσουμε, πρέπει να εισαγάγουμε το πακέτο org.testng.Assert.
Ενδέχεται να έχετε πολλές δοκιμαστικές περιπτώσεις (επομένως, πολλούς σχολιασμούς @Test) σε ένα αρχείο TestNG. Αυτό θα αντιμετωπιστεί με περισσότερες λεπτομέρειες αργότερα στην ενότητα "Σχολιασμοί που χρησιμοποιούνται στο TestNG."
Εκτέλεση του τεστ
Για να εκτελέσετε τη δοκιμή, απλώς εκτελέστε το αρχείο στο Eclipse όπως συνήθως. Το Eclipse θα παρέχει δύο εξόδους - μία στο παράθυρο της κονσόλας και η άλλη στο παράθυρο των αποτελεσμάτων TestNG.
Έλεγχος αναφορών που δημιουργήθηκαν από το TestNG
Το παράθυρο Κονσόλας στο Eclipse παρέχει μια αναφορά κειμένου για τα αποτελέσματα της δοκιμαστικής μας υπόθεσης, ενώ το παράθυρο TestNG Results μας δίνει ένα γραφικό.
Δημιουργία αναφορών HTML
Το TestNG έχει τη δυνατότητα δημιουργίας αναφορών σε μορφή HTML.
Βήμα 1: Αφού εκτελέσετε το FirstTestNGFile που δημιουργήσαμε στην προηγούμενη ενότητα, κάντε δεξί κλικ στο όνομα του έργου (FirstTestNGProject) στο παράθυρο Project Explorer και, στη συνέχεια, κάντε κλικ στην επιλογή "Ανανέωση".
Βήμα 2: Παρατηρήστε ότι δημιουργήθηκε ένας φάκελος "test-output". Αναπτύξτε το και αναζητήστε ένα αρχείο index.html. Αυτό το αρχείο HTML είναι μια αναφορά των αποτελεσμάτων της πιο πρόσφατης δοκιμαστικής περιόδου.
Βήμα 3: Κάντε διπλό κλικ σε αυτό το αρχείο index.html για να το ανοίξετε στο ενσωματωμένο πρόγραμμα περιήγησης ιστού του Eclipse. Μπορείτε να ανανεώσετε αυτήν τη σελίδα ανά πάσα στιγμή αφού εκτελέσετε ξανά τη δοκιμή σας πατώντας απλά το F5, όπως συμβαίνει στα συνηθισμένα προγράμματα περιήγησης στο Web.
Σχολιασμοί που χρησιμοποιούνται στο TestNG
Στην προηγούμενη ενότητα, έχετε εισαχθεί στον σχολιασμό @Test. Τώρα, θα μελετάμε πιο προχωρημένους σχολιασμούς και τις χρήσεις τους.
Πολλαπλές περιπτώσεις δοκιμής
Μπορούμε να χρησιμοποιήσουμε πολλαπλούς σχολιασμούς @Test σε ένα μόνο αρχείο TestNG. Από προεπιλογή, οι μέθοδοι που σχολιάζονται από το @Test εκτελούνται αλφαβητικά. Δείτε τον κωδικό παρακάτω. Αν και οι μέθοδοι c_test, a_test και b_test δεν είναι διατεταγμένες αλφαβητικά στον κώδικα, θα εκτελεστούν ως τέτοιες.
Εκτελέστε αυτόν τον κώδικα και στη σελίδα index.html που δημιουργήθηκε, κάντε κλικ στην επιλογή "Χρονολογική προβολή".
Παράμετροι
Εάν θέλετε οι μέθοδοι να εκτελεστούν με διαφορετική σειρά, χρησιμοποιήστε την παράμετρο "priority". Οι παράμετροι είναι λέξεις-κλειδιά που τροποποιούν τη λειτουργία του σχολιασμού .
- Οι παράμετροι απαιτούν να τους αντιστοιχίσετε μια τιμή. Το κάνετε. Αυτό τοποθετώντας ένα δίπλα τους και στη συνέχεια ακολουθείται από την τιμή.
- Οι παράμετροι περικλείονται σε ένα ζευγάρι παρενθέσεων που τοποθετούνται αμέσως μετά τον σχολιασμό, όπως το απόσπασμα κώδικα που φαίνεται παρακάτω.
Το TestNG θα εκτελέσει το σχολιασμό @Test με τη χαμηλότερη τιμή προτεραιότητας έως τη μεγαλύτερη. Δεν υπάρχει ανάγκη οι τιμές προτεραιότητας να είναι διαδοχικές.
Η έκθεση TestNG HTML θα επιβεβαιώσει ότι οι μέθοδοι εκτελέστηκαν με βάση την αύξουσα τιμή προτεραιότητας.
Πολλαπλές παράμετροι
Εκτός από το "priority", το @Test έχει μια άλλη παράμετρο που ονομάζεται "πάνταRun", η οποία μπορεί να οριστεί μόνο σε "true" ή "false". Για να χρησιμοποιήσετε δύο ή περισσότερες παραμέτρους σε έναν μόνο σχολιασμό, διαχωρίστε τις με κόμμα , όπως αυτή που φαίνεται παρακάτω.
@Test (προτεραιότητα = 0, πάνταRun = true)
@BeforeTest και @AfterTest
@BeforeTest |
Οι μέθοδοι βάσει αυτού του σχολιασμού θα εκτελεστούν πριν από την πρώτη δοκιμαστική υπόθεση στο αρχείο TestNG . |
@AfterTest |
Οι μέθοδοι βάσει αυτού του σχολιασμού θα εκτελεστούν μετά την εκτέλεση όλων των δοκιμαστικών περιπτώσεων στο αρχείο TestNG . |
Εξετάστε τον παρακάτω κώδικα.
πακέτο firsttestngpackageεισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations. *;δημόσια τάξη firsttestngfile {public String baseUrl = "http://demo.guru99.com/test/newtours/";String driverPath = "C: \\ geckodriver.exe";δημόσιο πρόγραμμα οδήγησης WebDriver;@BeforeTestpublic void launchBrowser () {System.out.println ("εκκίνηση του προγράμματος περιήγησης firefox");System.setProperty ("webdriver.gecko.driver", driverPath);πρόγραμμα οδήγησης = νέο FirefoxDriver ();driver.get (baseUrl);}@Δοκιμήδημόσιο άκυρο επαλήθευσηHomepageTitle () {String waitingTitle = "Καλώς ήλθατε: Mercury Tours";String actualTitle = driver.getTitle ();Assert.assertEquals (πραγματικός τίτλος, αναμενόμενος τίτλος);}@AfterTestpublic void terminateBrowser () {driver.close ();}}
Εφαρμόζοντας τη λογική που παρουσιάζεται από τον πίνακα και τον παραπάνω κώδικα, μπορούμε να προβλέψουμε ότι η ακολουθία με την οποία θα εκτελεστούν οι μέθοδοι είναι:
- 1 st - launchBrowser ()
- 2 nd - verifyHomepageTitle ()
- 3 rd - terminateBrowser ()
Η τοποθέτηση των μπλοκ σχολιασμού μπορεί να εναλλάσσεται χωρίς να επηρεάζεται η χρονολογική σειρά με την οποία θα εκτελεστούν . Ας καταλάβουμε με ένα παράδειγμα TestNG και προσπαθήστε να αναδιατάξετε τα μπλοκ σχολιασμών έτσι ώστε ο κώδικάς σας να μοιάζει με τον παρακάτω.
πακέτο firsttestngpackageεισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations. *;δημόσια τάξη firsttestngfile {public String baseUrl = "http://demo.guru99.com/test/newtours/";String driverPath = "C: \\ geckodriver.exe";δημόσιο πρόγραμμα οδήγησης WebDriver;@AfterTest // Μπερδεμένοpublic void terminateBrowser () {driver.close ();}@BeforeTest // Μπερδεμένοςpublic void launchBrowser () {System.out.println ("εκκίνηση του προγράμματος περιήγησης firefox");System.setProperty ("webdriver.gecko.driver", driverPath);πρόγραμμα οδήγησης = νέο FirefoxDriver ();driver.get (baseUrl);}@ Δοκιμή // Μπερδεμένοδημόσιο άκυρο επαλήθευσηHomepageTitle () {String waitingTitle = "Καλώς ήλθατε: Mercury Tours";String actualTitle = driver.getTitle ();Assert.assertEquals (πραγματικός τίτλος, αναμενόμενος τίτλος);}}
Εκτελέστε τον παραπάνω κώδικα και παρατηρήστε το
@BeforeMethod και @AfterMethod
@BeforeMethod |
Οι μέθοδοι βάσει αυτού του σχολιασμού θα εκτελούνται πριν από κάθε μέθοδο σε κάθε περίπτωση δοκιμής . |
@AfterMethod |
Οι μέθοδοι βάσει αυτού του σχολιασμού θα εκτελούνται μετά από κάθε μέθοδο σε κάθε περίπτωση δοκιμής. |
Στην Mercury Tours, ας υποθέσουμε ότι θέλουμε να επαληθεύσουμε τους τίτλους των σελίδων-στόχων των δύο παρακάτω συνδέσμων.
Η ροή της δοκιμής μας θα ήταν:
- Μεταβείτε στην αρχική σελίδα και επαληθεύστε τον τίτλο της.
- Κάντε κλικ στο ΕΓΓΡΑΦΗ και επαληθεύστε τον τίτλο της σελίδας προορισμού του.
- Επιστρέψτε στην αρχική σελίδα και επαληθεύστε εάν εξακολουθεί να έχει τον σωστό τίτλο.
- Κάντε κλικ στο ΥΠΟΣΤΗΡΙΞΗ και επαληθεύστε τον τίτλο της σελίδας στόχου του.
- Επιστρέψτε στην αρχική σελίδα και επαληθεύστε εάν εξακολουθεί να έχει τον σωστό τίτλο.
Ο παρακάτω κώδικας δείχνει πώς χρησιμοποιούνται τα @BeforeMethod και @AfterMethod για την αποτελεσματική εκτέλεση του σεναρίου που αναφέρεται παραπάνω.
πακέτο firsttestngpackageεισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.testng.Assert;εισαγωγή org.testng.annotations. *;@Δοκιμήδημόσια τάξη firsttestngfile {public String baseUrl = "http://demo.guru99.com/test/newtours/";String driverPath = "C: \\ geckodriver.exe";δημόσιο πρόγραμμα οδήγησης WebDriver;δημόσια συμβολοσειρά αναμενόμενη = null;δημόσια συμβολοσειρά πραγματική = null;@BeforeTestpublic void launchBrowser () {System.out.println ("εκκίνηση του προγράμματος περιήγησης firefox");System.setProperty ("webdriver.gecko.driver", driverPath);πρόγραμμα οδήγησης = νέο FirefoxDriver ();driver.get (baseUrl);}@BeforeMethodδημόσιο άκυρο επαλήθευσηHomepageTitle () {String waitingTitle = "Καλώς ήλθατε: Mercury Tours";String actualTitle = driver.getTitle ();Assert.assertEquals (πραγματικός τίτλος, αναμενόμενος τίτλος);}@ Δοκιμή (προτεραιότητα = 0)δημόσιο άκυρο μητρώο () {driver.findElement (By.linkText ("REGISTER")). κάντε κλικ στο ();Αναμενόμενο = "Εγγραφή: Mercury Tours";actual = driver.getTitle ();Assert.assertEquals (πραγματικό, αναμενόμενο);}@Test (προτεραιότητα = 1)δημόσια κενή υποστήριξη () {driver.findElement (By.linkText ("ΥΠΟΣΤΗΡΙΞΗ")). κάντε κλικ στο ();Αναμενόμενο = "Υπό κατασκευή: Mercury Tours";actual = driver.getTitle ();Assert.assertEquals (πραγματικό, αναμενόμενο);}@AfterMethodpublic void goBackToHomepage () {driver.findElement (By.linkText ("Home")). κάντε κλικ στο ();}@AfterTestpublic void terminateBrowser () {driver.close ();}}
Μετά την εκτέλεση αυτού του τεστ, το TestNG θα πρέπει να αναφέρει την ακόλουθη ακολουθία.
Με απλά λόγια, το @BeforeMethod πρέπει να περιέχει μεθόδους που πρέπει να εκτελέσετε πριν από κάθε δοκιμαστική περίπτωση, ενώ το @AfterMethod πρέπει να περιέχει μεθόδους που πρέπει να εκτελέσετε μετά από κάθε δοκιμαστική περίπτωση.
Περίληψη των σχολιασμών TestNG
@BeforeSuite : Η σχολιασμένη μέθοδος θα εκτελεστεί πριν από την εκτέλεση όλων των δοκιμών σε αυτήν τη σουίτα.
@AfterSuite : Η σχολιασμένη μέθοδος θα εκτελεστεί μετά την εκτέλεση όλων των δοκιμών σε αυτήν τη σουίτα.
@BeforeTest : Η σχολιασμένη μέθοδος θα εκτελεστεί πριν από την εκτέλεση οποιασδήποτε μεθόδου δοκιμής που ανήκει στις τάξεις μέσα στην ετικέτα.
@AfterTest : Η σχολιασμένη μέθοδος θα εκτελεστεί μετά την εκτέλεση όλων των μεθόδων δοκιμής που ανήκουν στις τάξεις μέσα στην ετικέτα.
@BeforeGroups : Η λίστα των ομάδων στις οποίες θα εκτελεστεί αυτή η μέθοδος διαμόρφωσης. Αυτή η μέθοδος είναι εγγυημένη ότι θα εκτελεστεί λίγο πριν ενεργοποιηθεί η πρώτη μέθοδος δοκιμής που ανήκει σε οποιαδήποτε από αυτές τις ομάδες.
@AfterGroups : Η λίστα των ομάδων στις οποίες θα εκτελεστεί αυτή η μέθοδος διαμόρφωσης. Αυτή η μέθοδος είναι εγγυημένη ότι θα εκτελεστεί λίγο μετά την κλήση της τελευταίας μεθόδου δοκιμής που ανήκει σε οποιαδήποτε από αυτές τις ομάδες.
@BeforeClass : Η σχολιασμένη μέθοδος θα εκτελεστεί πριν από την επίκληση της πρώτης μεθόδου δοκιμής στην τρέχουσα τάξη.
@AfterClass : Η σχολιασμένη μέθοδος θα εκτελεστεί μετά την εκτέλεση όλων των μεθόδων δοκιμής στην τρέχουσα τάξη.
@BeforeMethod : Η σχολιασμένη μέθοδος θα εκτελεστεί πριν από κάθε μέθοδο δοκιμής.
@AfterMethod : Η σχολιασμένη μέθοδος θα εκτελείται μετά από κάθε μέθοδο δοκιμής.
@Test : Η σχολιασμένη μέθοδος αποτελεί μέρος μιας υπόθεσης δοκιμής
συμπέρασμα
- Το TestNG είναι ένα πλαίσιο δοκιμών που είναι ικανό να κάνει τις δοκιμές Selenium πιο κατανοητές και να δημιουργεί αναφορές που είναι εύκολα κατανοητές.
- Τα κύρια πλεονεκτήματα του TestNG έναντι του JUnit είναι τα ακόλουθα.
- Οι σχολιασμοί είναι πιο εύχρηστοι και κατανοητοί.
- Οι δοκιμαστικές περιπτώσεις μπορούν να ομαδοποιηθούν πιο εύκολα.
- Το TestNG μας επιτρέπει να δημιουργήσουμε παράλληλες δοκιμές.
- Το παράθυρο της Κονσόλας στο Eclipse δημιουργεί ένα αποτέλεσμα που βασίζεται σε κείμενο, ενώ το παράθυρο TestNG είναι πιο χρήσιμο επειδή μας δίνει μια γραφική έξοδο του αποτελέσματος της δοκιμής και άλλες σημαντικές λεπτομέρειες όπως:
- Χρόνοι εκτέλεσης κάθε μεθόδου.
- Η χρονολογική σειρά με την οποία εκτελέστηκαν οι μέθοδοι
- Το TestNG μπορεί να δημιουργήσει αναφορές που βασίζονται σε HTML.
- Οι σχολιασμοί μπορούν να χρησιμοποιούν παραμέτρους όπως οι συνήθεις μέθοδοι Java TestNG.
- Το TestNG Dataprovider είναι ένας τρόπος να περάσετε παραμέτρους στη δοκιμαστική συνάρτηση που περνά διαφορετικές τιμές σε δοκιμαστικές περιπτώσεις σε μία μόνο εκτέλεση.