learn how use testng annotations selenium
Το TestNG, όπως γνωρίζετε οι περισσότεροι, είναι αυτοματοποίηση πλαίσιο που χρησιμοποιείται ευρέως στο Σελήνιο . Είναι σημαντικό για όλους τους υπεύθυνους δοκιμών να κατανοήσουν τους σχολιασμούς που χρησιμοποιούνται ενώ εργάζεστε με το TestNG.
Με απλά λόγια, οι σχολιασμοί TestNG είναι γραμμές κώδικα που εισάγονται στη λογική προγράμματος / επιχείρησης για τον έλεγχο του τρόπου εκτέλεσης των παρακάτω μεθόδων.
Σε αυτό το άρθρο, θα επικεντρωθώ στη σημασία διαφορετικών τύπων σχολιασμών και της χρήσης τους.
Παρακάτω, έχω μοιραστεί τη ρύθμιση που χρησιμοποιήθηκε για το έργο μου. Αυτό δεν πρέπει απαραίτητα να ακολουθηθεί για το έργο σας.
Οι σχολιασμοί διαφέρουν ανάλογα με τις απαιτήσεις του έργου σας. Ωστόσο, η ροή εκτέλεσης θα είναι η ίδια.
Προαπαιτούμενα:
- Εγκαταστήστε το TestNG στο Eclipse. Ελεγχος αυτό το σεμινάριο για τον οδηγό εγκατάστασης .
- JDK - Κιτ ανάπτυξης Java
- Οι σχολιασμοί μπορούν να χρησιμοποιηθούν μόνο με έκδοση Java 1.5 ή νεότερη
Πριν από τη σύνταξη δοκιμαστικών σεναρίων ή τη δημιουργία ενός έργου, πρέπει να γνωρίζουμε την ιεραρχία στην οποία λειτουργούν οι σχολιασμοί. Η εκτέλεση θα παραμείνει πάντα η ίδια.
Για παράδειγμα, μεταγλωττίστε και εκτελέστε το παρακάτω σενάριο και παρατηρήστε τη σειρά εκτέλεσης. Θα έχει ως εξής:
- BeforeSuite
- Πριν από τη δοκιμή
- Πριν το μάθημα
- Πριν τη μέθοδο
- Περίπτωση δοκιμής 1
- Μέθοδος
- Πριν τη μέθοδο
- Υπόθεση δοκιμής 2
- Μέθοδος
- Μετά το μάθημα
- Μετά από δοκιμή
- AfterSuite
Παράδειγμα:
public class test { @BeforeMethod public void beforeMethod() { System.out.println(' Before Method will execute before every test method'); } @AfterMethod public void afterMethod() { System.out.println('After Method will execute after every test method '); } @BeforeClass public void beforeClass() { System.out.println('Before Class will always execute prior to Before Method and Test Method '); } @AfterClass public void afterClass() { System.out.println('After Class will always execute later to After Method and Test method'); } @BeforeTest public void beforeTest() { System.out.println('Before Test will always execute prior to Before Class, ,Before Method and Test Method '); } @AfterTest public void afterTest() { System.out.println('After Test will always execute later to After Method, After Class '); } @BeforeSuite public void beforeSuite() { System.out.println(“Before Suite will always execute prior to all annotations or tests in the suite.'); } @AfterSuite public void afterSuite() { System.out.println('After suite will always execute at last when all the annotations or test in the suite have run.'); } @Test public void testCase1() { System.out.println('This is my First Test Case 1'); } @Test public void testCase2() { System.out.println('This is my Second Test Case 2'); } }
Μπορούμε να διακόψουμε τη διαδικασία του σεναρίου δοκιμής στα παρακάτω βήματα:
- Γράψτε την επιχειρηματική λογική της δοκιμής σας και εισαγάγετε παραπάνω Σχολιασμοί TestNG στον κωδικό σας
- Προσθέστε τις πληροφορίες σχετικά με τη δοκιμή σας (π.χ. το όνομα της τάξης, τις ομάδες, τις μεθόδους που θέλετε να εκτελέσετε κ.λπ.) στο a testng.xml αρχείο.
- Εκτελέστε το TestNG
Ωστόσο, το ερώτημα παραμένει - ποιες πληροφορίες πρέπει να παρέχουμε στους παραπάνω σχολιασμούς;
Ρίξτε μια ματιά στα σημαντικά βήματα που μπορούμε να επιτύχουμε χρησιμοποιώντας τους παραπάνω σχολιασμούς:
# 1) @Δοκιμή
Αυτό είναι το κύριο μέρος του σεναρίου αυτοματοποίησης όπου θα γράψουμε τη λογική της επιχείρησης, τα πράγματα που θέλουμε να αυτοματοποιήσουμε. Μπορούμε να περάσουμε χαρακτηριστικά στη μέθοδο δοκιμής μας.
Ακολουθούν οι λίστες χαρακτηριστικών που μπορούμε να περάσουμε στη μέθοδο δοκιμής μας:
- Πάντα Εκτελέστε : Αυτό χρησιμοποιείται όταν θέλουμε να βεβαιωθούμε ότι μια μέθοδος εκτελείται πάντα ακόμα κι αν οι παράμετροι από τις οποίες εξαρτάται η μέθοδος, αποτυγχάνουν. Εάν οριστεί ως αληθής, αυτή η μέθοδος δοκιμής θα εκτελείται πάντα. Π.χ: @Test (πάνταRun = true)
- dataProvider : TestNG dataProvider χρησιμοποιείται για την παροχή οποιωνδήποτε δεδομένων για παραμετροποίηση. Π.χ. @Test (dataProvider = 'Γεια σας').
- dataProviderClass : Αυτή είναι η τάξη από την οποία διαβιβάζουμε τα δεδομένα στον πάροχο δεδομένων. Στην περίπτωση μας το όνομα κλάσης dataProvider είναι 'Γεια'.
- εξαρτάται από τις Ομάδες : Είναι η λίστα με τις ομάδες στις οποίες εξαρτάται η μέθοδος. Π.χ: @Test (ομάδες = {'Πόλη', 'Πολιτεία'})
- εξαρτάται από τις μεθόδους: Αυτή η εντολή χρησιμοποιείται για την εκτέλεση μιας μεθόδου βάσει της εξαρτημένης μεθόδου. Π.χ: @Test (dependOnMethods = {'OpenBrowser', 'η βάση δεδομένων είναι έτοιμη'})
- περιγραφή : Είναι η περιγραφή της μεθόδου. Π.χ: @Test (περιγραφή = 'μέθοδος δοκιμής')
- επίκλησηCount : Αναφέρεται στον αριθμό των φορών που πρέπει να γίνει χρήση μιας μεθόδου. Θα λειτουργήσει ως βρόχος. Π.χ: @Test (invocationCount = 7) . Ως εκ τούτου, αυτή η μέθοδος θα εκτελεστεί 7 φορές.
- invocationTimeOut : Αυτό αναφέρεται στον μέγιστο αριθμό χιλιοστών του δευτερολέπτου που πρέπει να ακολουθήσει μια μέθοδο για να ολοκληρωθεί όλη η κλήση. Αυτό το χαρακτηριστικό θα αγνοηθεί εάν το invocationCount δεν έχει καθοριστεί. Π.χ: @Test (invocationCount = 7, invocationTimeOut = 30)
- προτεραιότητα : Αυτή η εντολή καθορίζει την προτεραιότητα της μεθόδου δοκιμής. Οι χαμηλότερες προτεραιότητες θα προγραμματιστούν πρώτα. Π.χ: @Test (προτεραιότητα = 1)
#δύο)@BeforeSuite και @AfterSuite
Σε @BeforeSuite σχολιασμένη μέθοδο, μπορείτε να ρυθμίσετε και να ξεκινήσετε σελήνιο προγράμματα οδήγησης και σε @AfterSuite σχολιασμένη μέθοδος, μπορείτε να σταματήσετε τα προγράμματα οδήγησης Selenium
Παράδειγμα :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass και @AfterClass
Σε @Πριν το μάθημα σχολιασμένη μέθοδος, μπορείτε να ρυθμίσετε τις ιδιότητες του Firefox, να προετοιμάσετε το πρόγραμμα οδήγησης και ούτω καθεξής @Μετά το μάθημα σχολιασμένη μέθοδο, μπορείτε να σταματήσετε το πρόγραμμα οδήγησης
Παράδειγμα :
@BeforeClass(description = 'Set capabilities for your Firefox browser and set time it should wait for a page to load.') public static void firefoxSetUp() throws MalformedURLException { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capability); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); } @AfterClass(description = 'close your firefox driver') public void afterclass(){ driver.close(); }
# 4)@BeforeMethod και @AfterMethod
Σε @BeforeMethod σχολιασμένη μέθοδο, μπορείτε να ελέγξετε τη σύνδεση βάσης δεδομένων πριν εκτελέσετε τη μέθοδο δοκιμής σας και στο @AfterMethod σχολιασμένη μέθοδο, μπορείτε να κλείσετε τη σύνδεση βάσης δεδομένων σας
Παράδειγμα :
@BeforeMethod(description='connect to database') public void beforemethod() throws SQLException{ //check database connection is up String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; DriverManager.getConnection(databaseurl, 'username', 'password'); }
@AfterMethod(description='close database connection') public void aftermethod() throws SQLException{ //check database connection is closed String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; Connection connect = DriverManager.getConnection(databaseurl, 'username', 'password'); if(connect!=null) connect.close(); }
# 5)@BeforeTest και @AfterTest
Σε @BeforTest μέθοδος, μπορείτε να ορίσετε τις προτιμήσεις προφίλ του Firefox και στο @AfterTest μέθοδος, μπορείτε να βάλετε κάποιο κωδικό που θα δημιουργήσει το αποτέλεσμα της δοκιμής και θα το στείλετε στους κατόχους μεριδίων
Παράδειγμα :
@BeforeTest (description='set your firefox profile preferences according to your project requirement') public void single_run(){ FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference ('browser.download.folderList',2); firefoxProfile.setPreference ('browser.download.manager.showWhenStarting',false); firefoxProfile.setPreference ('browser.download.dir','E:\reports\'); firefoxProfile.setPreference ('browser.helperApps.neverAsk.saveToDisk','csv'); driver = new FirefoxDriver(firefoxProfile); String baseUrl = 'www.gmail.com'; } @AfterTest (description='') public void teardown(){ //a code which will send the test details report }
Η πιο σημαντική πτυχή που πρέπει να σημειωθεί εδώ ενώ εργάζεστε με σχολιασμούς είναι ότι το σύστημά σας θα πρέπει να είναι εξοπλισμένο με Java 1.5 ή νεότερη έκδοση, διαφορετικά το Eclipse ενδέχεται να εμφανίζει σφάλμα ότι οι σχολιασμοί δεν υποστηρίζονται στο σύστημά σας.
Τώρα, σκεφτείτε μια περίπτωση όπου το σύστημά σας διαθέτει τη σωστή έκδοση της Java που απαιτείται για σχολιασμούς, αλλά το σφάλμα εξακολουθεί να εμφανίζεται.
Κάτι όπως παρακάτω:
Σφάλμα σύνταξης, οι σχολιασμοί είναι διαθέσιμοι μόνο εάν το επίπεδο προέλευσης είναι 1,5 ή μεγαλύτερο.
Τι θα κάνετε τώρα? Υπάρχουν τρεις επιλογές για τη διόρθωση αυτής της κατάστασης.
Ας το περάσουμε ένα προς ένα:
Επιλογή 1:
- Μεταβείτε στο Eclipse και κάντε δεξί κλικ στο έργο σας
- Επιλέξτε Ιδιότητες
- Κάντε κλικ στο Java Compiler
- Βεβαιωθείτε ότι το επίπεδο συμμόρφωσης του μεταγλωττιστή είναι 1,5 ή υψηλότερο
- Αποθηκεύστε τις ρυθμίσεις και το πρόβλημά σας λύθηκε
Επιλογή # 2:
- Μεταβείτε στην καρτέλα Window στο Eclipse
- Επιλέξτε Προτιμήσεις
- Κάντε κλικ στο Java και μετά στο Compiler
- Βεβαιωθείτε ότι το επίπεδο συμμόρφωσης του μεταγλωττιστή είναι 1,5 ή υψηλότερο
- Αποθηκεύστε τις ρυθμίσεις και το πρόβλημά σας λύθηκε
Επιλογή # 3:
Ελέγξτε το Java Home Path ρυθμίζοντας τη σωστή μεταβλητή διαδρομής περιβάλλοντος Java.
Συμπέρασμα:
Μέσω αυτού του άρθρου, προσπαθήσαμε να συζητήσουμε μερικούς από τους σημαντικούς σχολιασμούς και τα χαρακτηριστικά που χρησιμοποιούνται συχνά από τους υπεύθυνους δοκιμών. Ωστόσο, υπάρχουν περισσότεροι σχολιασμοί στο TestNG που δεν χρησιμοποιούνται συχνά όπως @AfterGroups, @BeforeGroups και ούτω καθεξής που χρησιμοποιούνται όταν εργάζεστε με ομάδες στο σενάριο δοκιμής του έργου σας.
Χρησιμοποιήστε λοιπόν τους παραπάνω σχολιασμούς σύμφωνα με τις απαιτήσεις σας. Συνιστάται πάντα να μην κάνετε τη ρύθμιση του έργου σας στη μέθοδο δοκιμής. Στη μέθοδο δοκιμής γράψτε τη βασική επιχειρηματική λογική που πρόκειται να δοκιμαστεί.
mysql vs sql server vs oracle
Βεβαιωθείτε ότι το σύστημά σας είναι εξοπλισμένο με εκδόσεις Java 1.5 ή μεταγενέστερες, διαφορετικά το Eclipse ενδέχεται να εμφανίζει σφάλμα ότι οι σχολιασμοί δεν υποστηρίζονται στο σύστημά σας.
Ελπίζω ότι αυτό το άρθρο θα σας βοηθήσει με σχολιασμούς TestNG. Ενημερώστε μας για τυχόν σχόλια ή ερωτήσεις.
Συνιστώμενη ανάγνωση
- Πώς να χρησιμοποιήσετε το TestNG Framework για τη δημιουργία σεναρίων σεληνίου - TestNG Selenium Tutorial # 12
- Selenium Find Element By Text Tutorial με παραδείγματα
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Αποτελεσματικά σενάρια σεληνίου και σενάρια αντιμετώπισης προβλημάτων - Σελήνιο σεμινάριο # 27
- Εντοπισμός σφαλμάτων σεληνίου με αρχεία καταγραφής (Log4j Tutorial) - Selenium Tutorial # 26
- Εκμάθηση Python DateTime με παραδείγματα