assertions selenium using junit
Dieses Selen-Tutorial zu Assertions erklärt, was Assertions in Selen und verschiedene Arten von Assertions und Assertionsmethoden unter Verwendung von Junit- und TestNG-Frameworks sind:
Was ist ein Bin-Dateityp?
Assertions werden zur Validierung eines Testfalls verwendet und helfen uns zu verstehen, ob ein Testfall bestanden wurde oder nicht. Die Behauptung gilt als erfüllt, wenn das tatsächliche Ergebnis einer Anwendung mit dem des erwarteten Ergebnisses übereinstimmt.
Bei der Automatisierung von Webanwendungen mit Selen müssen wir unsere Tests validieren, um zu überprüfen, ob sie wie erwartet funktionieren oder nicht(das heißt, wenn ein Testergebnis bestanden / nicht bestanden ist).
=> Schauen Sie sich hier den Selenium Beginners Guide an.
Ein Testfall gilt nur dann als bestanden, wenn alle Aussagen erfüllt sind. Behauptungen in Selen können mit vordefinierten Methoden von Junit- und TestNG-Frameworks behandelt werden, die in diesem Artikel ausführlich erläutert werden.
Was du lernen wirst:
- Behauptungen in Selen
- Arten von Behauptungen in Selen
- Junit Assert-Methoden
- TestNG Assert-Methoden
- Beispielprogramme für Zusicherungen
- Fazit
Behauptungen in Selen
Assertions werden verwendet, um verschiedene Arten von Validierungen in den Testfällen durchzuführen, was uns wiederum bei der Entscheidung hilft, ob der Testfall bestanden wurde oder nicht. W.Ein Test wird als erfolgreich angesehen, wenn er ausnahmslos ausgeführt wird.
Video-Tutorial zu Behauptungen
Arten von Behauptungen in Selen
Es gibt zwei Arten von Behauptungen in Selen und die Kategorisierung hängt davon ab, wie sich die Behauptung verhält, nachdem eine Bedingung bestanden oder nicht bestanden wurde.
Hier würden wir zwei Arten von Behauptungen in diskutieren Selen ::
- Harte Behauptungen
- Weiche Behauptungen
Klicken Sie hier für ein Beispiel Testfälle zum Testen von Behauptungen.
# 1) Harte Behauptungen (oder einfach Behauptungen)
Eine harte Zusicherung wird erst mit der Ausführung fortgesetzt, wenn die Zusicherungsbedingung erfüllt ist.
Harte Assertions lösen normalerweise einen Assertionsfehler aus, wenn eine Assertionsbedingung nicht erfüllt ist. Der Testfall wird sofort als fehlgeschlagen markiert, wenn eine harte Bestätigungsbedingung fehlschlägt.
Ein Szenario für die Verwendung dieser Art von Behauptung besteht darin, dass Sie überprüfen möchten, ob Sie sich korrekt angemeldet haben, und den Test nicht bestehen möchten, wenn Sie sich nicht erfolgreich angemeldet haben, da es keinen Sinn macht, mit der Vorbedingung fortzufahren ( Login) selbst schlägt fehl.
Nehmen wir ein weiteres hier dargestelltes Beispiel:
Betrachten Sie einen Testfall, um den Titel einer Webseite zu bestätigen.
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(); }
In diesem Beispiel enthält die Variable 'ActualTitle' den Titeltext aus der Automatisierung. 'ExpectedTitle' enthält die erwarteten Zeichenfolgendaten. Assert.assertEquals () überprüft, ob beide Texte gleich sind. Der obige Testfall wird bestanden und mit der nächsten Ausführungszeile fortgesetzt, da der tatsächliche Text und der erwartete Text identisch sind.
Konsole:
Behauptung bestanden.
PASSED: VerifyTitle
Wenn derselbe Testfall fehlschlägt, wird eine Ausnahme ausgelöst und die Ausführung an dieser Instanz angehalten.
Lassen Sie uns nun den erwarteten Titel in den falschen ändern.
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(); }
Konsole:
java.lang.AssertionError:erwartet (Willkommen bei Amazon)abergefunden (Amazon.com: Online-Shopping für Elektronik, Bekleidung, Computer, Bücher, DVDs & mehr))
An der Konsole können wir sehen, dass die print-Anweisung übersprungen wurde (System.out.println), da in der Assert-Anweisung ein Fehler aufgetreten ist und eine Ausnahme ausgelöst wurde.
# 2) Weiche Behauptungen
Eine weiche Zusicherung wird mit dem nächsten Schritt der Testausführung fortgesetzt, auch wenn die Zusicherungsbedingung nicht erfüllt ist.
Weiche Zusicherungen sind die Art von Zusicherungen, die eine Ausnahme nicht automatisch auslösen, wenn eine Zusicherung fehlschlägt, es sei denn, sie wird angefordert. Dies ist nützlich, wenn Sie mehrere Validierungen in einem Formular durchführen, von denen nur wenige Validierungen einen direkten Einfluss auf die Entscheidung über den Testfallstatus haben.
Hier verwenden wir eine Klasse namens SoftAssert und die Methode assertAll () wird aufgerufen, um alle Ausnahmen auszulösen, die während der Ausführung abgefangen wurden. Wenn softAssert verwendet wird, führt es eine Assertion durch. Wenn eine Ausnahme gefunden wird, wird sie nicht sofort ausgelöst, sondern fortgesetzt, bis die Methode assertAll () aufgerufen wird, um alle abgefangenen Ausnahmen auszulösen.
Es ist ratsam, für jeden Testfall unterschiedliche Objekte der Klasse 'SoftAssert' zu verwenden.
Betrachten Sie den Testfall, um den Titel der Seite zu bestätigen
Im folgenden Beispiel werden zwei Objekte der Klasse 'SoftAssert' erstellt, die in zwei verschiedenen Testfällen verwendet werden sollen.
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 } }
Konsole:
Aktueller Titel: Amazon.com: Online-Shopping für Elektronik, Bekleidung, Computer, Bücher, DVDs und mehr
Behauptung 1 wird ausgeführt
Das Symbol wird angezeigt
Behauptung 2 wird ausgeführt
java.lang.AssertionError: Die folgenden Asserts sind fehlgeschlagen:
erwartet (Willkommen bei Amazon) aber gefunden (Amazon.com: Online-Shopping für Elektronik, Bekleidung, Computer, Bücher, DVDs & mehr)
An der Konsole können wir nachvollziehen, dass die Ausführung, obwohl die Zusicherung im ersten Testfall (verifyTitle) ein Fehler war, in der nächsten Zeile fortgesetzt wurde, in der die Anweisung 'Zusicherung 1 wird ausgeführt' gedruckt wurde und erst nach dem Aufruf von softAssert. Die Ausnahme wurde ausgelöst.
Wann sollte man harte und weiche Behauptung verwenden?
Wenn Sie alle Schritte eines Testfalls ausführen müssen, um auch nach dem Fehlschlagen einer Zusicherung ausgeführt zu werden, und Sie auch eine Zusicherungsausnahme melden möchten, entscheiden Sie sich für die Verwendung von Soft Assertions. Die Verwendung von Soft Assertions in Ihren Testskripten ist eine gute Vorgehensweise und eine effektive Methode zur Handhabung Ihrer Testausführung
Wenn Sie möchten, dass die Ausführung Ihres Testfalls erst fortgesetzt wird, nachdem eine Zusicherung bestanden wurde ( Zum Beispiel, Um eine gültige Anmeldung zu überprüfen und erst dann die anderen Schritte auszuführen, verwenden Sie Hard Assertions.
Junit Assert-Methoden
Die verschiedenen Arten von Junit Assert-Methoden werden nachstehend ausführlich erläutert.
# 1) assertEquals
Die Methode assertequals vergleicht das erwartete Ergebnis mit dem tatsächlichen Ergebnis. Es löst einen AssertionError aus, wenn das erwartete Ergebnis nicht mit dem des tatsächlichen Ergebnisses übereinstimmt, und beendet die Programmausführung bei der Methode assert equals.
Syntax:
public static void assertEquals(String expected, String actual)
Beispiel:
Zeichenfolge erwartet = 'https://www.google.com';
String actualURL = 'https://www.google.com';
Assert.assertEquals (erwartet, tatsächliche URL);
# 2) assertTrue
Die asserttrue-Methode bestätigt, dass eine angegebene Bedingung erfüllt ist.
Es nimmt zwei Parameter auf, d. H. Einer ist die Nachricht und der andere ist die Bedingung, gegen die die Behauptung angewendet werden muss. Es wird ein AssertionError ausgelöst, wenn die an die asserttrue-Methode übergebene Bedingung nicht erfüllt ist.
Syntax:
public static void assertTrue(java.lang.String message, boolean condition)
message - Nachricht, die im Falle eines Assertion-Fehlers angezeigt werden soll.
Bedingung - Bedingung, gegen die die Behauptung angewendet werden muss.
Beispiel:
Assert.assertTrue ('Assert True Test Message', true);
# 3) assertFalse
Die Methode assert false bestätigt, dass eine angegebene Bedingung falsch ist.
Es nimmt zwei Parameter auf, d. H. Einer ist die Nachricht und der andere ist die Bedingung, gegen die die Behauptung angewendet werden muss. Es wird ein AssertionError ausgelöst, wenn die an die assertfalse-Methode übergebene Bedingung nicht erfüllt ist.
Syntax:
public static void assertFalse(java.lang.String message, boolean condition)
message - Nachricht, die im Falle eines Assertion-Fehlers angezeigt werden soll.
Bedingung - Bedingung, gegen die die Behauptung angewendet werden muss.
Beispiel:
Assert.assertFalse ('Assert false test message' false);
# 4) assertNull
assert null wird verwendet, um zu überprüfen, ob das angegebene Objekt einen Nullwert enthält. Es nimmt ein Objekt als Parameter und löst einen AssertionError aus, wenn das bereitgestellte Objekt keinen Nullwert enthält.
Syntax:
public static void assertNull(Object object)
Beispiel:
DemoClass demo = new DemoClass ();
Assert.assertNull (Demo);
# 5) assertNotNull
assert not null wird verwendet, um zu überprüfen, ob ein bereitgestelltes Objekt keinen Nullwert enthält. Es nimmt ein Objekt als Parameter und löst einen AssertionError aus, wenn das bereitgestellte Objekt keinen Nullwert enthält.
Syntax:
public static void assertNotNull(Object object)
Beispiel:
DemoClass demo = new DemoClass ();
Assert.assertNotNull (Demo);
# 6) assertSame
Die gleiche Methode überprüft, ob zwei als Parameter bereitgestellte Objekte auf dasselbe Objekt verweisen. Es wird ein AssertionError ausgelöst, wenn die bereitgestellten Objekte nicht auf dasselbe Objekt mit der bereitgestellten Nachricht verweisen.
Bitte beachten Sie, dass Assert same nur die Referenzen von Objekten vergleicht, nicht jedoch die tatsächlichen Werte.
Syntax:
public static void assertSame(String message, Object expected,Object actual)
Beispiel:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertSame ('Zwei Objekte sind gleich', demo1, demo2);
# 7) assertNotSame
assert not same bestätigt, dass zwei Objekte nicht gleich sind. Wenn zwei Objekte auf dasselbe Objekt verweisen, wird ein AssertionError ausgelöst.
Bitte beachten Sie, dass die Methode assert not same die Referenzen von Objekten und nicht die in den Objekten vorhandenen Werte vergleicht.
Syntax:
public static void assertNotSame(String message, Object expected, Object actual)
Beispiel:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertNotSame ('Zwei Objekte sind nicht gleich', demo1, demo2);
# 8) assertArrayEquals
assert equals überprüft, ob zwei Objektarrays gleich sind. Wenn beide Arrays Nullwerte enthalten, werden sie als gleich betrachtet. Diese Methode löst einen AssertionError mit der bereitgestellten Nachricht aus, wenn beide Objektarrays nicht als gleich angesehen werden.
Syntax:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
message - Nachricht, die im Falle eines Assertionsfehlers angezeigt werden soll.
erwartet - Array von Objekten.
actual - Array von Objekten.
Beispiel:
String () expected = {'Mango', 'Apple', 'Banana'}
String () actual = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (erwartet, tatsächlich);
was zum Öffnen von XML-Dateien verwendet werden soll
TestNG Assert-Methoden
Die TestNG-Assert-Methoden entsprechen den oben beschriebenen Junit-Assertion-Methoden. Der Bürgermeister Unterschied zwischen Junit und TestNG Assertionsmethoden behindern den Umgang mit Assertions.
TestNG bietet erweiterte Techniken zur Behandlung von Zusicherungen wie abhängige Klassen, Gruppentests, parametrisierte Tests usw.
Video-Tutorials zu TestNG-Assert-Methoden
Teil I.
Teil II
Teil III
# 1) assertEquals
Diese Methode wird verwendet, um festzustellen, ob zwei Datenwerte gleich sind. Wir können die Werte verschiedener Datentypen wie String, Boolean, Integer vergleichen. usw. Immer wenn der erwartete und der tatsächliche Wert gleich sind, wird die Zusicherung ohne Ausnahme bestanden. Ist dies nicht der Fall, wird ein AssertionError ausgelöst.
Verwendung : Diese Art der Behauptung wird verwendet, um den Fall zu überprüfen, in dem die auf der Webseite angezeigten Daten den Erwartungen oder den angegebenen Anforderungen entsprechen.
Syntax:
Assert.assertEquals(actual,expected)
Parameter:
Strom - Der tatsächliche Wert, den wir von der Automatisierung erwarten.
Erwartet –Der erwartete Wert.
Beispiel: Um dies zu überprüfen, wenn die Amazon-Startseite einen Titel mit der Aufschrift „Amazon.com: Online-Shopping für Elektronik, Bekleidung, Computer, Bücher, DVDs und mehr
@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”); }
Konsole:
Behauptung bestanden.
PASSED: VerifyTitle
Im obigen Beispiel wurden zwei Zeichenfolgen auf gleiche Werte überprüft. Ebenso kann die Gleichheit anderer Datentypen wie Ganzzahl, Boolescher Wert usw. überprüft werden.
# 2) assertNotEquals
assertNotEquals wird verwendet, um zu überprüfen, ob zwei Datenwerte nicht gleich sind. Es ist genau das Gegenteil von der Funktionsweise von assertEquals Assertion. Immer wenn die erwarteten und tatsächlichen Werte übereinstimmen, schlägt die Zusicherung mit einer Ausnahme fehl und markiert den Testfall als 'fehlgeschlagen'.
Verwendung : Dies wird in Fällen verwendet, in denen überprüft werden soll, ob alle Daten auf einer Webseite eindeutig sind. Zum Beispiel , ein Telefonverzeichnis, in dem keine 2 Telefonnummern gleich sind.
Syntax:
Assert.assertNotEquals(actual,expected)
Parameter:
Strom - Der tatsächliche Wert, den wir von der Automatisierung erwarten.
Erwartet - Der erwartete Wert.
Beispiel: Um zu überprüfen, ob die PIN-Codes von zwei verschiedenen Bereichen eindeutig / nicht gleich sind.
@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”); }
Konsole:
Zwei eindeutige Pincodes sind: 600012 && 600001
Behauptung bestanden.
PASSED: verifyAssertNotEqual
# 3) assertTrue
assertTrue wird verwendet, um zu überprüfen, ob eine bestimmte boolesche Bedingung erfüllt ist. Diese Zusicherung gibt true zurück, wenn die angegebene Bedingung erfüllt ist. Wenn nicht, wird ein Zusicherungsfehler ausgelöst.
Syntax:
Assert.assertTrue(BooleanCondition);
Parameter ::
BooleanCondition - Bedingung, um zu überprüfen, ob der Rückgabetyp True ist.
Verwendung ::
Beispiel: Um zu überprüfen, ob die SignIn-Schaltfläche auf der Homepage von Amazon.in vorhanden ist (für die Anzeige der Schaltfläche bestätigen).
Assert.assertTrue(SignIn.isDisplayed());
Hier wird überprüft, ob die Boolesche Bedingung - SignIn.IsDisplayed () gibt TRUE zurück.
Beispiel: So überprüfen Sie, ob auf der Webseite eine Schaltfläche vorhanden ist.
@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'); }
Konsole:
Schaltfläche wird angezeigt
PASSED: verifyAssertTrue
# 4) assertFalse
assertFalse wird verwendet, um zu überprüfen, ob eine bestimmte boolesche Bedingung falsch ist. Mit anderen Worten, der Rückgabetyp der angegebenen Booleschen Bedingung sollte False sein. Diese Zusicherung wird bestanden, wenn die angegebene Bedingung den Rückgabetyp FALSE hat. Andernfalls wird ein Zusicherungsfehler ausgelöst.
Syntax:
Assert.assertFlase(BooleanCondition);
Parameter ::
BooleanCondition - Bedingung, um zu überprüfen, ob der Rückgabetyp False ist.
Verwendung : Ein Szenario, in dem es verwendet werden kann, besteht darin, zu überprüfen, ob ein Element nach einer bestimmten Aktion nicht auf einer Webseite vorhanden ist.
Beispiel 1: Die Anmeldeschaltfläche sollte nach der Anmeldung nicht angezeigt werden.
Assert.assertFalse(SignIn.isDisplayed());
Dies bestätigt, ob die Boolesche Bedingung - SignIn.IsDisplayed () gibt FALSE zurück.
Beispiel 2:
Um zu überprüfen, ob ein Div nach einer bestimmten Aktion verschwindet. Hier überprüfen wir also, ob das Div nicht angezeigt wird, oder mit anderen Worten, für eine falsche Bedingung auf einem angezeigten Div bestätigen.
@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'); }
Konsole:
Captcha div wurde vom Bildschirm gedimmt
BESTANDEN:verifyAssertFalse
# 5) assertNull
Diese Zusicherung wird verwendet, um zu überprüfen, ob ein Objekt einen Null-Rückgabewert hat. Mit anderen Worten, es wird geprüft, ob das Ergebnis null ist. Wenn das Objekt Null ist, wird die Zusicherung ausnahmslos übergeben.
Syntax:
AssertNull(Object)
Parameter ::
Objekt - Jeder Datenwert, der einen Nullwert enthält.
Verwendung:
Beispiel 1:
Bestätigen Sie, ob eine Zeichenfolge null ist.
@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'); }
Beispiel 2:
Stellen Sie sicher, dass der Treiberwert null ist, bevor Sie den Chrome-Treiber starten.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Hier ist das Treiberobjekt null, da es nicht initiiert wurde. Daher ist AssertNull (Treiber) ein Erfolg, da überprüft wird, ob das Objekt 'Treiber' einen Nullwert enthält
# 6) assertNotNull
Diese Zusicherung erwartet einen anderen gültigen Rückgabetyp als den Nullwert. Mit anderen Worten, es wird nach einem Objekt gesucht, wenn es nicht Null ist. Der Rückgabetyp kann Boolescher Wert, Zeichenfolge, Ganzzahl, Liste usw. sein. Wenn das Objekt nicht null ist, wird Assertion übergeben. Wenn nicht, wird ein AssertionError ausgelöst.
Syntax:
AssertNotNull(Object)
Parameter ::
Objekt - Jeder Datenwert, der einen beliebigen Datenwert enthält.
Verwendung:
Beispiel 1: Assert ist eine Zeichenfolge, die einige Daten enthält. Das heißt, es ist nicht Null.
@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'); }
Beispiel 2: Stellen Sie sicher, dass das Treiberobjekt nach dem Starten des FirefoxDriver nicht null ist.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Hier wird das Treiberobjekt für den Firefox-Treiber initiiert, und daher hat das Treiberobjekt einen gewissen Wert, da es nicht initiiert wird. Daher ist AssertNotNull (Treiber) ein Erfolg, da überprüft wird, ob das Objekt 'Treiber' keinen Nullwert enthält
Klicken Hier für Beispieltestfälle.
Beispielprogramme für Zusicherungen
Assert Equals:
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'); } }
Code Erläuterung:
Der obige Code demonstriert die Verwendung der AssertEquals-Methode in einfachen Worten.
- Wie bereits erwähnt, nimmt assert equals zwei Parameter an, d. H. Das erwartete Ergebnis und das tatsächliche Ergebnis. Wenn das erwartete Ergebnis nicht mit dem des tatsächlichen Ergebnisses übereinstimmt, wird ein Assertionsfehler ausgelöst und die Programmausführung wird mit der Methode assert equals beendet.
- Der obige Code vergleicht den benutzerdefinierten Zeichenfolgenwert mit dem erwarteten Zeichenfolgenwert.
- Bitte beachten Sie, dass das tatsächliche Ergebnis in Echtzeit eine benutzerdefinierte Operation ist, für die der Wert zur Laufzeit abgerufen und als Parameter an die Methode assert equals übergeben wird.
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(); } }
Code Erläuterung:
Der obige Code demonstriert die Verwendung der assertTrue-Methode.
- Wir übergeben zunächst den erwarteten Seitentitel an eine Variable. Wir instanziieren dann ein Objekt des Firefox-Treibers und navigieren es zur Webseite - https://www.google.com
- Später vergleichen wir mit der Methode assertsTrue den Titel der geöffneten Seite mit dem des erwarteten Seitentitels. Wenn der Titel der geöffneten Seite nicht mit dem des erwarteten Titels übereinstimmt, wird ein Assertionsfehler ausgelöst und die Programmausführung mit der assertTrue-Methode beendet.
- Der obige Code wird nur dann erfolgreich ausgeführt, wenn der tatsächliche Seitentitel mit dem des erwarteten Seitentitels übereinstimmt.
Falsch behaupten:
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(); } }
Code Erläuterung:
Der obige Code demonstriert die Verwendung der assertfalse-Methode.
- Wir übergeben zunächst den erwarteten Seitentitel an eine Variable, instanziieren dann ein Objekt des Firefox-Treibers und navigieren zur Webseite - https://www.google.com
- Später vergleichen wir mit der assertfalse-Methode den geöffneten Seitentitel mit dem des erwarteten Seitentitels. Wenn der Titel der geöffneten Seite mit dem des erwarteten Titels übereinstimmt, wird ein Assertionsfehler ausgelöst und die Programmausführung wird mit der Assert-False-Methode beendet.
- Der obige Code wird nur dann erfolgreich ausgeführt, wenn der tatsächliche Seitentitel nicht mit dem des erwarteten Seitentitels übereinstimmt.
End-to-End-Code für Zusicherungen
Im Folgenden finden Sie ein Beispiel für einen End-to-End-Code für Zusicherungen. Der Einfachheit halber haben wir das folgende Szenario verwendet.
Szenario:
- Öffnen Sie die Webseite: https://www.google.com im Firefox-Browser.
- Überprüfen Sie mithilfe der asserttrue-Methode, ob der geöffnete Seitentitel dem erwarteten Seitentitel entspricht.
- Geben Sie im Suchtextfeld das Suchwort ein: Selen.
- Drücken Sie die Eingabetaste auf der Tastatur.
- Überprüfen Sie mithilfe der Methode assertequals und assertfalse, ob der geöffnete Seitentitel auf der Suchergebnisseite dem erwarteten Seitentitel entspricht.
- Schließen Sie den Browser.
Beispielcode:
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(); } }
Code-Ausgabe:
Zunächst wird das Firefox-Browserfenster mit der folgenden Webseite geöffnet: https://www.google.com. Die Asserttrue-Methode überprüft, ob der Titel der geöffneten Seite mit dem des erwarteten Seitentitels übereinstimmt - Google.
Das Skript gibt das Suchwort als Selenium ein und drückt die Eingabetaste.
Assertfalse- und Assertequals-Methoden vergleichen, ob der tatsächliche Seitentitel des Suchergebnisbildschirms mit dem des erwarteten Titels 'Selen - Google-Suche' übereinstimmt. Der Browser wird dann über die driver.close-Methode geschlossen.
Konsolenausgabe:
Der unten angegebene Text ist die Konsolenausgabe in der Eclipse-IDE
wie man eine Torrent-Datei verwendet
Vermeiden Sie häufige Fehler bei der Verwendung der Assert-Klasse
1. Angenommen, für Ihr Projekt sind JUnit-, TestNG- und Python-Bibliotheken konfiguriert
zwei . In Ihrem Skript verwenden Sie jedoch die TestNG-Annotation. Wählen Sie versehentlich Junit Assertion aus, und Ihre Assert-Klasse wird nicht mehr unterstützt. Siehe unten Screenshot
3. Daher ist es sehr wichtig, die richtige Assert-Klasse auszuwählen. Wählen Sie für TestNg die einzige org.TestNG-Assert-Klasse
Vier. Wählen Sie für Junit die Klasse org.junit.Assert und so weiter.
5. Um Soft Assertion auszuführen, müssen wir die Methode assertAll () zwangsweise aufrufen
6. Wenn eine Zusicherung fehlschlägt, wird ein Zusicherungsfehler ausgelöst, nicht die Ausnahme
Fazit
Wir können diesen Artikel über Behauptungen in Selen mit den folgenden Hinweisen abschließen:
- Eine Zusicherung wird verwendet, um das tatsächliche Ergebnis einer Anwendung mit dem erwarteten Ergebnis zu vergleichen.
- Ein Testfall gilt nur dann als bestanden, wenn alle Aussagen erfüllt sind.
- Die AssertEquals-Methode vergleicht das erwartete Ergebnis mit dem tatsächlichen Ergebnis. Es löst einen AssertionError aus, wenn das erwartete Ergebnis nicht mit dem des tatsächlichen Ergebnisses übereinstimmt, und beendet die Programmausführung mit der Methode assertequals.
- Die AssertTrue-Methode bestätigt, dass eine angegebene Bedingung erfüllt ist. Es wird ein AssertionError ausgelöst, wenn die an die asserttrue-Methode übergebene Bedingung nicht erfüllt ist.
- Die AssertFalse-Methode bestätigt, dass eine angegebene Bedingung falsch ist. Es wird ein AssertionError ausgelöst, wenn die zur Bestätigung der falschen Methode übergebene Bedingung nicht erfüllt ist.
- AssertEquals-, AssertTrue- und AssertFalse-Methoden sind die am häufigsten verwendeten Assertions in Selenium.
In dem bevorstehendes Tutorial Wir werden verschiedene Beispiele diskutieren, die in Echtzeit-Projektszenarien verwendet werden, und verstehen, wie Behauptungen entsprechend dem Zweck verwendet werden.
Wir hoffen, dass dieser Artikel Ihr Wissen über Behauptungen in Selen bereichert hat !!
=> Lesen Sie die Easy Selenium Training Series durch.
Literatur-Empfehlungen
- Einführung in JUnit Framework und seine Verwendung in Selenium Script - Selenium Tutorial # 11
- Verwendung des TestNG-Frameworks zum Erstellen von Selenium-Skripten - TestNG Selenium Tutorial # 12
- Erfahren Sie, wie Sie TestNG-Anmerkungen in Selen verwenden (mit Beispielen)
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Integration von Selen mit JMeter
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Die beliebtesten Testautomatisierungs-Frameworks mit Vor- und Nachteilen - Selenium Tutorial # 20
- 30+ beste Selen-Tutorials: Lernen Sie Selen anhand realer Beispiele