assertions selenium using junit
Αυτό το σεμινάριο σεληνίου για τους ισχυρισμούς εξηγεί τι είναι οι ισχυρισμοί στο σελήνιο και διαφορετικοί τύποι ισχυρισμών και μέθοδοι ισχυρισμού που χρησιμοποιούν τα πλαίσια Junit και TestNG:
βέλτιστες πρακτικές αυτοματισμού στη δοκιμή λογισμικού
Οι ισχυρισμοί χρησιμοποιούνται για την επικύρωση μιας δοκιμαστικής υπόθεσης και μας βοηθούν να κατανοήσουμε εάν μια δοκιμαστική υπόθεση έχει περάσει ή αποτύχει. Ο ισχυρισμός θεωρείται ότι πληρούται εάν το πραγματικό αποτέλεσμα μιας εφαρμογής ταιριάζει με αυτό του αναμενόμενου αποτελέσματος.
Ενώ αυτοματοποιούμε εφαρμογές Ιστού χρησιμοποιώντας το Σελήνιο, πρέπει να επικυρώσουμε τις δοκιμές μας για να επαληθεύσουμε εάν λειτουργούν όπως αναμένεται ή όχι(δηλαδή, εάν το αποτέλεσμα μιας δοκιμαστικής υπόθεσης είναι επιτυχές / αποτύχει).
=> Ρίξτε μια ματιά στον οδηγό για αρχάριους του Selenium εδώ.
Μια δοκιμαστική υπόθεση θεωρείται ότι έχει περάσει μόνο εάν έχουν ικανοποιηθεί όλοι οι ισχυρισμοί. Οι ισχυρισμοί στο Σελήνιο μπορούν να αντιμετωπιστούν με προκαθορισμένες μεθόδους των πλαισίων Junit και TestNG, οι οποίες θα εξηγηθούν λεπτομερώς σε αυτό το άρθρο.
Τι θα μάθετε:
- Ισχυρισμοί στο Σελήνιο
- Τύποι ισχυρισμών στο Σελήνιο
- Μέθοδοι διεκδίκησης Junit
- Μέθοδοι δοκιμής TestNG
- Δείγματα προγραμμάτων για ισχυρισμούς
- συμπέρασμα
Ισχυρισμοί στο Σελήνιο
Οι ισχυρισμοί χρησιμοποιούνται για την εκτέλεση διαφόρων ειδών επικυρώσεων στις δοκιμαστικές περιπτώσεις, οι οποίες με τη σειρά τους μας βοηθούν να αποφασίσουμε εάν η δοκιμαστική υπόθεση έχει περάσει ή αποτύχει. Δε. θεωρείτε μια δοκιμασία επιτυχημένη αν εκτελείται χωρίς καμία εξαίρεση.
Εκπαιδευτικό βίντεο για ισχυρισμούς
Τύποι ισχυρισμών στο Σελήνιο
Υπάρχουν δύο τύποι ισχυρισμών στο Σελήνιο και η κατηγοριοποίηση εξαρτάται από το πώς συμπεριφέρεται ο ισχυρισμός μετά την πάθηση ή αποτυχία μιας κατάστασης.
Εδώ, θα συζητήσουμε δύο τύπους ισχυρισμών στο Σελήνιο :
- Σκληροί ισχυρισμοί
- Μαλακοί ισχυρισμοί
Κάντε κλικ εδώ για δείγμα δοκιμές για δοκιμές ισχυρισμών.
# 1) Σκληροί ισχυρισμοί (ή απλά ισχυρισμοί)
Ένας σκληρός ισχυρισμός δεν συνεχίζεται με την εκτέλεση έως ότου πληρούται η προϋπόθεση του ισχυρισμού.
Οι σκληροί ισχυρισμοί συνήθως ρίχνουν ένα σφάλμα επιβεβαίωσης όταν δεν πληρούται μια προϋπόθεση ισχυρισμού. Η δοκιμαστική θήκη θα επισημανθεί αμέσως ως Αποτυχημένη όταν αποτύχει μια συνθήκη σκληρού ισχυρισμού.
Ένα σενάριο για τη χρήση αυτού του είδους ισχυρισμού είναι ότι, όταν θέλετε να επαληθεύσετε εάν έχετε συνδεθεί σωστά και αποτύχετε στον έλεγχο εάν δεν έχετε πραγματοποιήσει επιτυχημένη σύνδεση, καθώς δεν έχει νόημα να προχωρήσετε περαιτέρω εάν η προϋπόθεση ( αποτυγχάνει.
Ας πάρουμε ένα άλλο παράδειγμα που απεικονίζεται εδώ:
Εξετάστε μια δοκιμαστική υπόθεση για να επιβεβαιώσετε τον τίτλο μιας ιστοσελίδας.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir”); @BeforeTest public void SetDriver(){ //Mention the location of ChromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
Στο παράδειγμα, η μεταβλητή 'ActualTitle' θα κρατήσει το κείμενο του τίτλου από τον αυτοματισμό. Το «ExpectedTitle» διατηρεί τα αναμενόμενα δεδομένα συμβολοσειράς. Το Assert.assertEquals () επαληθεύει αν και το κείμενο είναι ίσο. Η παραπάνω δοκιμαστική υπόθεση θα περάσει και θα συνεχιστεί στην επόμενη γραμμή εκτέλεσης, καθώς το πραγματικό κείμενο και το αναμενόμενο κείμενο είναι τα ίδια.
Κονσόλα:
Η επιβεβαίωση πέρασε.
PASSED: VerifyTitle
Η ίδια περίπτωση δοκιμής όταν αποτύχει θα ρίξει μια εξαίρεση και θα σταματήσει την εκτέλεση σε αυτήν την περίπτωση.
Τώρα, ας αλλάξουμε τον Αναμενόμενο Τίτλο σε λάθος.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ //Mention the location of chromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Welcome to Amazon”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
Κονσόλα:
java.lang.AssertionError:αναμένεται (Καλώς ήλθατε στο Amazon)αλλάβρέθηκαν (Amazon.com: Ηλεκτρονικές αγορές για ηλεκτρονικά είδη, είδη ένδυσης, υπολογιστές, βιβλία, DVD και άλλα)
Από την κονσόλα, μπορούμε να δούμε ότι η δήλωση εκτύπωσης παραλείφθηκε (System.out.println), καθώς παρουσιάστηκε αποτυχία στη δήλωση Assert και έριξε μια εξαίρεση.
# 2) Μαλακοί ισχυρισμοί
Μια απαλή επιβεβαίωση συνεχίζεται με το επόμενο βήμα της εκτέλεσης της δοκιμής, ακόμη και αν δεν πληρούται η συνθήκη επιβεβαίωσης.
Οι Soft Assertions είναι ο τύπος των ισχυρισμών που δεν δημιουργούν μια εξαίρεση αυτόματα όταν ένας ισχυρισμός αποτυγχάνει εκτός εάν ζητηθεί. Αυτό είναι χρήσιμο εάν κάνετε πολλές επικυρώσεις σε μια φόρμα, από τις οποίες μόνο μερικές επικυρώσεις έχουν άμεσο αντίκτυπο στην απόφαση για την κατάσταση της υπόθεσης.
Εδώ, χρησιμοποιούμε μια κλάση που ονομάζεται SoftAssert και η μέθοδος assertAll () καλείται για να ρίξουμε όλες τις εξαιρέσεις που πιάστηκαν κατά την εκτέλεση. Όταν χρησιμοποιείται το softAssert, εκτελεί ισχυρισμό και αν βρεθεί μια εξαίρεση, δεν ρίχνεται αμέσως, αλλά συνεχίζει μέχρι να καλέσουμε τη μέθοδο assertAll () για να ρίξουμε όλες τις εξαιρέσεις που έχουν πιάσει.
Είναι συνετό να χρησιμοποιείτε διαφορετικά αντικείμενα της κατηγορίας «SoftAssert» για κάθε δοκιμαστική περίπτωση.
Εξετάστε τη δοκιμαστική υπόθεση για να επιβεβαιώσετε τον τίτλο της σελίδας
Στο παρακάτω παράδειγμα, δύο αντικείμενα της κατηγορίας «SoftAssert» έχουν δημιουργηθεί για χρήση σε δύο διαφορετικές περιπτώσεις δοκιμών.
public class LearnAssertionsSoft { WebDriver driver; //Object of Class SoftAssert is created to use its methods SoftAssert softassert = new SoftAssert(); SoftAssert softassert2 = new SoftAssert(); //current project workspace String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created - Chrome browser is opened driver.manage().window().maximize(); } //Soft Assertion example - with a failure test case example @Test public void verifyTitle(){ driver.get('https://amazon.in'); String ActualTitle = driver.getTitle(); System.out.println('Actual Title :'+ActualTitle); String ExpectedTitle = 'cameras, books, watches, apparel, shoes and e-Gift Cards. Free Shipping & Cash on Delivery Available.'; //Soft assert applied to verify title softassert.assertEquals(ActualTitle, ExpectedTitle); //If failed, this line gets printed and execution is not halted System.out.println('Assertion 1 is executed”); softassert.assertAll(); } //Soft Assertion example - with a positive flow test case example @Test public void verifyElement(){ WebElement AmazonIcon = driver.findElement(By.Xpath(“//div(contains(@id,’amazon_icon’))); softassert2.assertEquals (true, AmazonIcon.isDisplayed()); softassert2.assertAll(); System.out.println('Icon is displayed'); System.out.println('Assertion 2 is executed”); } @AfterTest public void closedriver(){ driver.close(); //Checks for failures if any and throws them at the end of execution } }
Κονσόλα:
Πραγματικός τίτλος: Amazon.com: Online αγορές για ηλεκτρονικά είδη, είδη ένδυσης, υπολογιστές, βιβλία, DVD και άλλα
Η δήλωση 1 εκτελείται
Εμφανίζεται το εικονίδιο
Η δήλωση 2 εκτελείται
java.lang.AssertionError: Οι παρακάτω ισχυρισμοί απέτυχαν:
αναμενόταν (Καλώς ήλθατε στο Amazon) αλλά βρήκατε (Amazon.com: Ηλεκτρονικές αγορές για ηλεκτρονικά είδη ένδυσης, υπολογιστές, βιβλία, DVD και άλλα)
Από την κονσόλα, μπορούμε να καταλάβουμε ότι παρόλο που ο ισχυρισμός ήταν μια αποτυχία στην πρώτη δοκιμαστική υπόθεση (verifyTitle), η εκτέλεση συνεχίστηκε στην επόμενη γραμμή όπου η δήλωση - «Assertion 1 εκτελείται» εκτυπώθηκε και μόνο μετά την κλήση του softAssert, η εξαίρεση ρίχτηκε.
Πότε να χρησιμοποιήσετε σκληρό και απαλό ισχυρισμό;
Εάν πρέπει να εκτελέσετε όλα τα βήματα μιας δοκιμαστικής υπόθεσης που πρέπει να εκτελεστεί ακόμα και μετά την αποτυχία μιας δήλωσης και θέλετε επίσης να αναφέρετε την εξαίρεση ισχυρισμού, τότε επιλέξτε τη χρήση Soft Assertions. Η χρήση των Soft Assertions στα δοκιμαστικά σας σενάρια είναι μια καλή πρακτική και ένας αποτελεσματικός τρόπος χειρισμού της δοκιμαστικής εκτέλεσης
Εάν θέλετε η εκτέλεση της δοκιμαστικής υπόθεσης να προχωρήσει μόνο μετά την ολοκλήρωση μιας δήλωσης ( Για παράδειγμα, Για να επαληθεύσετε έγκυρη σύνδεση και μόνο στη συνέχεια να εκτελέσετε τα άλλα βήματα), στη συνέχεια χρησιμοποιήστε Hard Assertions.
Μέθοδοι διεκδίκησης Junit
Οι διάφοροι τύποι μεθόδων Junit Assert εξηγούνται παρακάτω λεπτομερώς.
# 1) assertEquals
Η μέθοδος assertequals συγκρίνει το αναμενόμενο αποτέλεσμα με αυτό του πραγματικού αποτελέσματος. Ρίχνει ένα AssertionError εάν το αναμενόμενο αποτέλεσμα δεν ταιριάζει με αυτό του πραγματικού αποτελέσματος και τερματίζει την εκτέλεση του προγράμματος με τη μέθοδο assert ισούται με.
Σύνταξη:
public static void assertEquals(String expected, String actual)
Παράδειγμα:
Αναμενόμενη συμβολοσειρά = 'https://www.google.com';
String actualURL = 'https://www.google.com';
Assert.assertEquals (αναμένεται, πραγματικόURL);
# 2) assertTrue
Η μέθοδος asserttrue υποστηρίζει ότι μια συγκεκριμένη συνθήκη είναι αληθής.
Χρειάζεται σε δύο παραμέτρους, δηλαδή η μία είναι το μήνυμα και η άλλη είναι η κατάσταση κατά την οποία ο ισχυρισμός πρέπει να εφαρμοστεί. Ρίχνει ένα AssertionError εάν η συνθήκη που πέρασε στη μέθοδο asserttrue δεν ικανοποιείται.
Σύνταξη:
public static void assertTrue(java.lang.String message, boolean condition)
message - Μήνυμα προς εμφάνιση σε περίπτωση σφάλματος δήλωσης.
condition - Κατάσταση στην οποία πρέπει να εφαρμοστεί ο ισχυρισμός.
Παράδειγμα:
Assert.assertTrue ('Assert True test message', true);
# 3) assertFalse
ισχυρίζεται ότι η μέθοδος false δηλώνει ότι μια καθορισμένη συνθήκη είναι ψευδής.
Χρειάζεται σε δύο παραμέτρους, δηλαδή η μία είναι το μήνυμα και η άλλη είναι η κατάσταση κατά την οποία ο ισχυρισμός πρέπει να εφαρμοστεί. Ρίχνει ένα AssertionError εάν η συνθήκη που πέρασε στη μέθοδο assertfalse δεν ικανοποιείται.
Σύνταξη:
public static void assertFalse(java.lang.String message, boolean condition)
message - Μήνυμα προς εμφάνιση σε περίπτωση σφάλματος δήλωσης.
condition - Κατάσταση στην οποία πρέπει να εφαρμοστεί ο ισχυρισμός.
Παράδειγμα:
εργαλεία δοκιμής απόδοσης για εφαρμογές java
Assert.assertFalse ('Assert false test message' false);
# 4) assertNull
Το assert null χρησιμοποιείται για την επαλήθευση εάν το παρεχόμενο αντικείμενο περιέχει τιμή null. Παίρνει ένα αντικείμενο ως παράμετρο και ρίχνει ένα AssertionError εάν το παρεχόμενο αντικείμενο δεν έχει τιμή null.
Σύνταξη:
public static void assertNull(Object object)
Παράδειγμα:
DemoClass demo = νέο DemoClass ();
Assert.assertNull (επίδειξη);
# 5) assertNotNull
Το assert not null χρησιμοποιείται για την επαλήθευση ότι ένα παρεχόμενο αντικείμενο δεν έχει τιμή null. Παίρνει ένα αντικείμενο ως παράμετρο και ρίχνει ένα AssertionError εάν το παρεχόμενο αντικείμενο δεν περιέχει τιμή null.
Σύνταξη:
public static void assertNotNull(Object object)
Παράδειγμα:
DemoClass demo = νέο DemoClass ();
Assert.assertNotNull (επίδειξη);
# 6) assertSame
ισχυρίζονται ότι η ίδια μέθοδος ελέγχει εάν δύο αντικείμενα που παρέχονται ως παράμετροι αναφέρονται στο ίδιο αντικείμενο. Ρίχνει ένα AssertionError εάν τα παρεχόμενα αντικείμενα δεν αναφέρονται στο ίδιο αντικείμενο με το παρεχόμενο μήνυμα.
Σημειώστε ότι το Assert ίδια συγκρίνει μόνο τις αναφορές αντικειμένων, αλλά όχι τις πραγματικές τιμές.
Σύνταξη:
public static void assertSame(String message, Object expected,Object actual)
Παράδειγμα:
DemoClass1 demo1 = νέο DemoClass1 ();
DemoClass2 demo2 = νέο DemoClass2 ();
Assert.assertSame ('Δύο αντικείμενα είναι ίδια', demo1, demo2);
# 7) assertNotSame
ισχυρισμός όχι ίδιο επιβεβαιώνει ότι δύο αντικείμενα δεν είναι ίδια. Εάν δύο αντικείμενα αναφέρονται στο ίδιο αντικείμενο, θα εμφανιστεί ένα AssertionError.
Σημειώστε ότι η μέθοδος assert not ίδια συγκρίνει τις αναφορές αντικειμένων και όχι τις τιμές που υπάρχουν στα αντικείμενα.
Σύνταξη:
public static void assertNotSame(String message, Object expected, Object actual)
Παράδειγμα:
DemoClass1 demo1 = νέο DemoClass1 ();
DemoClass2 demo2 = νέο DemoClass2 ();
Assert.assertNotSame ('Δύο αντικείμενα δεν είναι ίδια', demo1, demo2);
# 8) assertArrayEquals
assert equals επιβεβαιώνει ότι δύο πίνακες αντικειμένων είναι ίσες. Εάν και οι δύο πίνακες έχουν μηδενικές τιμές, τότε θεωρούνται ίσες. Αυτή η μέθοδος ρίχνει ένα AssertionError με το μήνυμα που παρέχεται εάν και οι δύο συστοιχίες αντικειμένων δεν θεωρούνται ίσες.
Σύνταξη:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
message - Μήνυμα προς εμφάνιση σε περίπτωση σφάλματος διεκδίκησης.
αναμενόμενο - Σειρά αντικειμένων.
πραγματική - Σειρά αντικειμένων.
Παράδειγμα:
String () Αναμένεται = {'Mango', 'Apple', 'Banana'}
String () real = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (αναμενόμενο, πραγματικό);
Μέθοδοι δοκιμής TestNG
Οι μέθοδοι TestNG Assert θα είναι οι ίδιες με τις μεθόδους ισχυρισμού Junit που συζητούνται παραπάνω. Ο δήμαρχος διαφορά μεταξύ Junit και TestNG Οι μέθοδοι διεκδίκησης έρχονται με τον τρόπο χειρισμού ισχυρισμών.
Το TestNG παρέχει πιο προηγμένες τεχνικές διεκπεραίωσης ισχυρισμών, όπως εξαρτημένες τάξεις, ομαδικές δοκιμές, παραμετροποιημένες δοκιμές κ.λπ.
Video Tutorials on TestNG Assert Methods
Μέρος Ι
Μέρος II
Μέρος III
# 1) assertEquals
Αυτή η μέθοδος χρησιμοποιείται για να επιβεβαιώσει εάν δύο τιμές δεδομένων είναι ίσες. Μπορούμε να συγκρίνουμε τις τιμές διαφορετικών τύπων δεδομένων, όπως string, boolean, integer. κλπ. Όποτε οι αναμενόμενες και πραγματικές τιμές είναι ίδιες, τότε ο ισχυρισμός περνά χωρίς εξαίρεση. Εάν δεν είναι, τότε εμφανίζεται ένα AssertionError.
Χρήση : Αυτός ο τύπος ισχυρισμού χρησιμοποιείται για την επαλήθευση της υπόθεσης όταν τα δεδομένα που εμφανίζονται στην ιστοσελίδα είναι όπως αναμένεται ή σύμφωνα με την απαιτούμενη απαίτηση.
Σύνταξη:
Assert.assertEquals(actual,expected)
Παράμετροι:
Ρεύμα - Η πραγματική τιμή που περιμένουμε από τον αυτοματισμό.
Αναμενόμενος - Η αναμενόμενη τιμή.
Παράδειγμα: Για να το επιβεβαιώσετε, εάν η αρχική σελίδα του Amazon έχει έναν τίτλο που λέει, «Amazon.com: Online αγορές για ηλεκτρονικά είδη, ενδύματα, υπολογιστές, βιβλία, DVD και άλλα »
@Test public void verifyTitle() { WebDriver driver = new FirefoxDriver(); driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); }
Κονσόλα:
Η επιβεβαίωση πέρασε.
PASSED: VerifyTitle
Στο παραπάνω παράδειγμα, δύο συμβολοσειρές επαληθεύτηκαν για ίσες τιμές. Ομοίως, μπορεί να επαληθευτεί η ισότητα άλλων τύπων δεδομένων όπως ακέραιος, boolean κ.λπ.
# 2) assertNotEquals
Το assertNotEquals χρησιμοποιείται για την επαλήθευση εάν δύο τιμές δεδομένων δεν είναι ίσες. Είναι ακριβώς το αντίθετο της λειτουργίας του assertEquals Assertion. Κάθε φορά που οι αναμενόμενες και πραγματικές τιμές ταιριάζουν, ο ισχυρισμός αποτυγχάνει με εξαίρεση και επισημαίνει τη δοκιμαστική υπόθεση ως 'αποτυχημένη'.
Χρήση : Αυτό χρησιμοποιείται σε περιπτώσεις που θα θέλαμε να επαληθεύσουμε ότι κάθε δεδομένα είναι μοναδικό σε μια ιστοσελίδα. Για παράδειγμα , έναν τηλεφωνικό κατάλογο, όπου δεν υπάρχουν 2 αριθμοί τηλεφώνου.
Σύνταξη:
Assert.assertNotEquals(actual,expected)
Παράμετροι:
Ρεύμα - Η πραγματική τιμή που περιμένουμε από τον αυτοματισμό.
Αναμενόμενος - Η αναμενόμενη τιμή.
Παράδειγμα: Για να επαληθεύσετε ότι οι κωδικοί των δύο διαφορετικών περιοχών είναι μοναδικοί / όχι ίδιοι.
@Test // test case to verify AssertNotEquals public void verifyAssertNotEquals{ WebDriver driver = new FirefoxDriver(); driver.get('http://chennaiiq.com/chennai/pincode-by-name.php'); WebElement Adambakkam = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(5)/td(3)')); WebElement Aminijikarai = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(15)/td(3)')); String Pincode1 = Adambakkam.getText(); String Pincode2 = Aminijikarai.getText(); System.out.println('Two Unique pincodes are : ' +Pincode1 +' && '+Pincode2); Assert.assertNotEquals(Pincode1, Pincode2); System.out.println(“Assert passed”); }
Κονσόλα:
Δύο μοναδικοί κωδικοί είναι: 600012 && 600001
Η επιβεβαίωση πέρασε.
PASSED: verifikasiAssertNotEqual
# 3) assertTrue
Το assertTrue χρησιμοποιείται για να επαληθεύσει εάν μια δεδομένη συνθήκη Boolean είναι αληθής. Αυτός ο ισχυρισμός επιστρέφει αληθινός εάν περάσει η καθορισμένη συνθήκη, αν όχι, τότε εμφανίζεται ένα σφάλμα ισχυρισμού.
Σύνταξη:
Assert.assertTrue(BooleanCondition);
Παράμετροι :
BooleanCondition - Προϋπόθεση για να ελέγξετε εάν ο τύπος επιστροφής του είναι αληθής.
Χρήση :
Παράδειγμα: Για επιβεβαίωση, εάν το κουμπί Είσοδος υπάρχει στην αρχική σελίδα του Amazon.in (επιβεβαιώστε για την εμφάνιση του κουμπιού).
Assert.assertTrue(SignIn.isDisplayed());
Εδώ, επαληθεύει εάν η συνθήκη Boolean - Είσοδος. Εμφανίζεται () επιστρέφει ΑΛΗΘΕΙΑ.
Παράδειγμα: Για να επαληθεύσετε εάν υπάρχει κουμπί στην ιστοσελίδα.
@Test // Test cases for AssertTrue public void verifyAssertTrue(){ WebDriver driver = new FirefoxDriver(); driver.get('https://www.amazon.in');// Open browser and pass URL in address bar WebElement Navigation = driver.findElement(By.xpath('//*(@id='nav-link-yourAccount')')); WebElement SignInButton = driver.findElement(By.xpath('//span(text()='Sign in')')); Actions move = new Actions(driver); move.moveToElement(Navigation).build().perform(); Boolean checkButtonPresence = SignInButton.isDisplayed(); Assert.assertTrue(checkButtonPresence); System.out.println('Button is displayed'); }
Κονσόλα:
Εμφανίζεται το κουμπί
PASSED: verifikasiAssertTrue
# 4) assertFalse
Το assertFalse χρησιμοποιείται για να επιβεβαιώσει εάν μια δεδομένη συνθήκη Boolean είναι ψευδής. Με άλλα λόγια, ο τύπος επιστροφής της δεδομένης συνθήκης Boolean θα πρέπει να είναι Ψευδής. Αυτός ο ισχυρισμός περνά εάν η καθορισμένη συνθήκη έχει έναν τύπο επιστροφής FALSE εάν όχι, εμφανίζεται ένα σφάλμα ισχυρισμού.
Σύνταξη:
Assert.assertFlase(BooleanCondition);
Παράμετροι :
BooleanCondition - Προϋπόθεση για να ελέγξετε εάν ο τύπος επιστροφής του είναι ψευδής.
Χρήση : Ένα σενάριο όπου μπορεί να χρησιμοποιηθεί είναι να επαληθεύσει εάν ένα στοιχείο δεν υπάρχει σε μια ιστοσελίδα μετά από μια συγκεκριμένη ενέργεια.
Παράδειγμα 1: Το κουμπί σύνδεσης δεν πρέπει να εμφανίζεται μετά τη σύνδεση.
Assert.assertFalse(SignIn.isDisplayed());
Αυτό επιβεβαιώνει εάν η συνθήκη Boolean - Είσοδος. Εμφανίζεται () επιστρέφει FALSE.
Παράδειγμα 2:
Για να επαληθεύσετε εάν ένα div εξαφανίζεται μετά από μια συγκεκριμένη ενέργεια. Έτσι, εδώ επαληθεύουμε ότι το div δεν εμφανίζεται, ή με άλλα λόγια, Assert για μια λανθασμένη κατάσταση σε ένα div που εμφανίζεται.
@Test // Test case for AssertFalse public void verifyAssertFalse() throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); WebElement CaptchaDiv = driver.findElement(By.xpath('//div(contains(@id,'ImgContainer'))')); WebElement CheckBox = driver.findElement(By.xpath('//*(@id='otpId')')); CheckBox.click(); Assert.assertFalse(CaptchaDiv.isDisplayed()); System.out.println('Captcha div dimmed out of screen'); }
Κονσόλα:
Το Captcha div εξασθενίζει έξω από την οθόνη
ΠΑΡΕΛΘΕΙ:verifikasiAssertFalse
# 5) assertNull
Αυτός ο ισχυρισμός χρησιμοποιείται για να επαληθεύσει εάν ένα αντικείμενο έχει τιμή μηδενικής επιστροφής. Με άλλα λόγια, ελέγχει εάν το αποτέλεσμα είναι μηδενικό. Όταν το αντικείμενο είναι Null, ο ισχυρισμός περνά χωρίς καμία εξαίρεση.
Σύνταξη:
AssertNull(Object)
Παράμετροι :
Αντικείμενο - Οποιαδήποτε τιμή δεδομένων που έχει μηδενική τιμή.
Χρήση:
Παράδειγμα 1:
Βεβαιωθείτε ότι μια συμβολοσειρά είναι μηδενική.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNull(str1); // asserts if str1 holds null value System.out.println('String holds null value – Assert passed'); }
Παράδειγμα 2:
Βεβαιωθείτε ότι η τιμή του προγράμματος οδήγησης είναι μηδενική πριν ξεκινήσετε το πρόγραμμα οδήγησης chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Εδώ, το αντικείμενο προγράμματος οδήγησης είναι μηδενικό, καθώς δεν έχει ξεκινήσει. Ως εκ τούτου, το AssertNull (πρόγραμμα οδήγησης) θα έχει επιτυχία καθώς επαληθεύει εάν το αντικείμενο 'πρόγραμμα οδήγησης' έχει τιμή null
# 6) assertNotNull
Αυτός ο ισχυρισμός αναμένει έναν έγκυρο τύπο επιστροφής, εκτός από την τιμή Null. Με άλλα λόγια, ελέγχει για ένα αντικείμενο εάν δεν είναι Null. Ο τύπος επιστροφής μπορεί να είναι Boolean, string, integer, list κ.λπ. Όταν το αντικείμενο δεν είναι null, το Assertion περνά, εάν όχι, ρίχνεται ένα AssertionError.
Σύνταξη:
AssertNotNull(Object)
Παράμετροι :
Αντικείμενο - Οποιαδήποτε τιμή δεδομένων που περιέχει οποιαδήποτε τιμή δεδομένων.
πώς να ανοίξετε 7z σε mac
Χρήση:
Παράδειγμα 1: Το Assert είναι μια συμβολοσειρά που περιέχει ορισμένα δεδομένα. Δηλαδή, δεν είναι μηδενικό.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNotNull(str2); // asserts if str2 holds some value System.out.println('String holds null value – Assert passed'); }
Παράδειγμα 2: Βεβαιωθείτε ότι το αντικείμενο προγράμματος οδήγησης δεν είναι μηδενικό, μετά την εκκίνηση του FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Εδώ, το αντικείμενο προγράμματος οδήγησης ξεκινάει στον οδηγό του firefox και ως εκ τούτου το αντικείμενο του προγράμματος οδήγησης έχει κάποια αξία, καθώς δεν έχει ξεκινήσει. Ως εκ τούτου, το AssertNotNull (πρόγραμμα οδήγησης) θα είναι επιτυχία καθώς επαληθεύτηκε εάν το αντικείμενο 'πρόγραμμα οδήγησης' δεν έχει τιμή null
Κάντε κλικ εδώ για περιπτώσεις δοκιμής δείγματος.
Δείγματα προγραμμάτων για ισχυρισμούς
Ισχύει Ισχύς:
package Demo; import org.junit.Assert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionDemo { public static void main(String() args) throws InterruptedException{ String sValue = 'Assert Equals Test'; Assert.assertEquals('Assert Equals Test', sValue); System.out.println('Test Passed'); } }
Επεξήγηση κώδικα:
Ο παραπάνω κώδικας δείχνει τη χρήση της μεθόδου AssertEquals με απλούς όρους.
- Όπως αναφέρθηκε προηγουμένως, το assert ισούται με δύο παραμέτρους, δηλαδή το αναμενόμενο αποτέλεσμα και το πραγματικό αποτέλεσμα. Εάν το αναμενόμενο αποτέλεσμα δεν ταιριάζει με αυτό του πραγματικού αποτελέσματος, τότε θα εμφανιστεί ένα σφάλμα επιβεβαίωσης και η εκτέλεση του προγράμματος θα τερματιστεί με τη μέθοδο assert ίσες.
- Ο παραπάνω κώδικας συγκρίνει την τιμή συμβολοσειράς που καθορίζεται από τον χρήστη με την αναμενόμενη τιμή συμβολοσειράς.
- Λάβετε υπόψη ότι σε πραγματικό χρόνο, το πραγματικό αποτέλεσμα θα είναι μια καθορισμένη από τον χρήστη λειτουργία για την οποία η τιμή θα ανακτηθεί κατά το χρόνο εκτέλεσης και θα περάσει ως παράμετρος στη μέθοδο Ισχύος Ισχύος.
Επιβεβαίωση True:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Επεξήγηση κώδικα:
Ο παραπάνω κώδικας δείχνει τη χρήση της μεθόδου assertTrue.
- Αρχικά περνάμε τον αναμενόμενο τίτλο σελίδας σε μια μεταβλητή. Στη συνέχεια, δημιουργούμε ένα αντικείμενο ενός προγράμματος οδήγησης του firefox και το μεταβαίνουμε στην ιστοσελίδα - https://www.google.com
- Αργότερα, χρησιμοποιώντας τη μέθοδο assertsTrue συγκρίνουμε τον τίτλο της ανοιχτής σελίδας με αυτόν του αναμενόμενου τίτλου σελίδας. Εάν ο τίτλος της ανοιχτής σελίδας δεν ταιριάζει με αυτόν του αναμενόμενου τίτλου, τότε θα εμφανιστεί ένα σφάλμα επιβεβαίωσης και η εκτέλεση του προγράμματος θα τερματιστεί με τη μέθοδο assertTrue.
- Ο παραπάνω κώδικας θα εκτελεστεί επιτυχώς μόνο όταν ο πραγματικός τίτλος σελίδας ταιριάζει με αυτόν του αναμενόμενου τίτλου σελίδας.
Επιβεβαίωση Λάθος:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google1'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Επεξήγηση κώδικα:
Ο παραπάνω κώδικας δείχνει τη χρήση της μεθόδου assertfalse.
- Αρχικά μεταβιβάζουμε τον αναμενόμενο τίτλο σελίδας σε μια μεταβλητή και στη συνέχεια δημιουργούμε ένα αντικείμενο του προγράμματος οδήγησης του firefox και μεταβαίνουμε στην ιστοσελίδα - https://www.google.com
- Αργότερα, χρησιμοποιώντας τη μέθοδο assertfalse συγκρίνουμε τον τίτλο της ανοιχτής σελίδας με αυτόν του αναμενόμενου τίτλου σελίδας. Εάν ο τίτλος της ανοιχτής σελίδας ταιριάζει με αυτόν του αναμενόμενου τίτλου, τότε θα εμφανιστεί ένα σφάλμα επιβεβαίωσης και η εκτέλεση του προγράμματος θα τερματιστεί με τη μέθοδο assert false.
- Ο παραπάνω κώδικας θα εκτελεστεί επιτυχώς μόνο όταν ο πραγματικός τίτλος σελίδας δεν ταιριάζει με αυτόν του αναμενόμενου τίτλου σελίδας.
Κωδικός End to End για ισχυρισμούς
Δίνεται παρακάτω ένα δείγμα κώδικα από άκρο σε άκρο για Assertions. Χρησιμοποιήσαμε το ακόλουθο σενάριο για λόγους απλότητας.
Σενάριο:
- Ανοίξτε την ιστοσελίδα: https://www.google.com στο πρόγραμμα περιήγησης Firefox.
- Επαληθεύστε εάν ο τίτλος της ανοιχτής σελίδας είναι ισοδύναμος με αυτόν του αναμενόμενου τίτλου σελίδας χρησιμοποιώντας τη μέθοδο asserttrue.
- Στο πλαίσιο κειμένου αναζήτησης, εισαγάγετε τη λέξη-κλειδί αναζήτησης: Σελήνιο.
- Πατήστε το κουμπί Enter στο πληκτρολόγιο.
- Επαληθεύστε εάν ο τίτλος της ανοιχτής σελίδας στη σελίδα αποτελεσμάτων αναζήτησης είναι ισοδύναμος με αυτόν του αναμενόμενου τίτλου σελίδας χρησιμοποιώντας τη μέθοδο assertequals και τη μέθοδο assertfalse.
- Κλείστε το πρόγραμμα περιήγησης.
Δείγμα κώδικα:
packageDemo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo { public static void main(String args()) throws InterruptedException { String expectedTitle = 'Google'; String expectedText = 'selenium - Google Search'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); // Open the web page https://www.google.com using firefox browser WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); // Validate if actual web page title matches with that of expected title using assert true method System.out.println('Assert true method validation'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); // Enter the keyword selenium on the search textbox WebElementsearchBox = driver.findElement(By.xpath('//*(@name='q')')); searchBox.sendKeys('selenium'); searchBox.sendKeys(Keys.ENTER); Thread.sleep(8000); // Validate the actual page title with expected page title using assert equals method System.out.println('Assert equals method validation'); Assert.assertEquals(expectedText, driver.getTitle()); // Page title validation using assert false method System.out.println('Assert false method validation'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); // Close the current browser driver.close(); } }
Έξοδος κώδικα:
Αρχικά, το παράθυρο του προγράμματος περιήγησης Firefox θα ανοίξει με την ιστοσελίδα: https://www.google.com. Η μέθοδος Asserttrue θα επαληθεύσει εάν ο τίτλος της ανοιχτής σελίδας ταιριάζει με αυτόν του αναμενόμενου τίτλου σελίδας - Google.
Το σενάριο θα εισαγάγει τη λέξη-κλειδί αναζήτησης ως Σελήνιο και θα πατήσει το κουμπί enter.
Οι μέθοδοι Assertfalse και assertequals συγκρίνονται εάν ο πραγματικός τίτλος σελίδας της οθόνης αποτελεσμάτων αναζήτησης ταιριάζει με αυτόν του αναμενόμενου τίτλου - «σελήνιο - Αναζήτηση Google». Στη συνέχεια, το πρόγραμμα περιήγησης θα κλείσει μέσω της μεθόδου driver.close.
Έξοδος κονσόλας:
Το κείμενο που δίνεται παρακάτω θα είναι η έξοδος της κονσόλας στο Eclipse IDE
Αποφύγετε κοινά λάθη κατά τη χρήση κατηγορίας Assert
1. Ας υποθέσουμε ότι το έργο σας έχει διαμορφώσει βιβλιοθήκες JUnit, TestNG και python
δύο . Αλλά στο σενάριό σας, χρησιμοποιείτε σχολιασμό TestNG και κατά λάθος, επιλέγετε Junit Assertion, τότε η τάξη Assert θα καταργηθεί. Ανατρέξτε στο παρακάτω στιγμιότυπο οθόνης
3. Επομένως, είναι πολύ σημαντικό να επιλέξετε την κατάλληλη κατηγορία Assert, για το TestNg επιλέξτε τον μόνο οργανισμό. TestNG Assert class
Τέσσερις. Για τον Junit επιλέξτε το org.junit.Asert class και ούτω καθεξής.
5. Για να εκτελέσουμε το Soft Assertion πρέπει να καλέσουμε τη μέθοδο assertAll () υποχρεωτικά
6. Όταν ένας ισχυρισμός αποτύχει, θα ρίξει το σφάλμα ισχυρισμού όχι την εξαίρεση
συμπέρασμα
Μπορούμε να ολοκληρώσουμε αυτό το άρθρο σχετικά με τους ισχυρισμούς στο Σελήνιο με τους παρακάτω δείκτες:
- Ένας ισχυρισμός χρησιμοποιείται για τη σύγκριση του πραγματικού αποτελέσματος μιας εφαρμογής με το αναμενόμενο αποτέλεσμα.
- Μια δοκιμαστική υπόθεση θεωρείται ότι έχει περάσει μόνο εάν έχουν ικανοποιηθεί όλοι οι ισχυρισμοί.
- Η μέθοδος AssertEquals συγκρίνει το αναμενόμενο αποτέλεσμα με αυτό του πραγματικού αποτελέσματος. Ρίχνει ένα AssertionError εάν το αναμενόμενο αποτέλεσμα δεν ταιριάζει με αυτό του πραγματικού αποτελέσματος και τερματίζει την εκτέλεση του προγράμματος με τη μέθοδο assertequals.
- Η μέθοδος AssertTrue υποστηρίζει ότι μια συγκεκριμένη συνθήκη είναι αληθής. Ρίχνει ένα AssertionError εάν η συνθήκη που πέρασε στη μέθοδο asserttrue δεν ικανοποιείται.
- Η μέθοδος AssertFalse υποστηρίζει ότι μια καθορισμένη συνθήκη είναι λανθασμένη. Ρίχνει ένα AssertionError εάν η συνθήκη που πέρασε για να επιβεβαιώσει τη λανθασμένη μέθοδο δεν ικανοποιείται.
- Οι μέθοδοι AssertEquals, AssertTrue και AssertFalse είναι οι πιο συχνά χρησιμοποιούμενοι ισχυρισμοί στο Σελήνιο.
Στο επερχόμενο σεμινάριο , θα συζητήσουμε διάφορα παραδείγματα που χρησιμοποιούνται σε σενάρια έργων σε πραγματικό χρόνο και θα κατανοήσουμε πώς χρησιμοποιούνται οι ισχυρισμοί ανάλογα με το σκοπό.
Ελπίζουμε αυτό το άρθρο να εμπλουτίσει τις γνώσεις σας σχετικά με τους ισχυρισμούς στο Σελήνιο !!
=> Διαβάστε τη σειρά προπόνησης Easy Selenium.
Συνιστώμενη ανάγνωση
- Εισαγωγή στο JUnit Framework και τη χρήση του στο Σελήνιο Σενάριο - Σελήνιο Tutorial # 11
- Πώς να χρησιμοποιήσετε το TestNG Framework για τη δημιουργία σεναρίων σεληνίου - TestNG Selenium Tutorial # 12
- Μάθετε πώς να χρησιμοποιείτε σχολιασμούς TestNG στο Σελήνιο (με παραδείγματα)
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Ενσωμάτωση σεληνίου με JMeter
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Πιο δημοφιλή πλαίσια δοκιμής αυτοματοποίησης με πλεονεκτήματα και μειονεκτήματα του καθενός - Selenium Tutorial # 20
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα