assertions selenium using junit
Denne Selen-vejledning om påstande forklarer, hvad der er påstande i selen og forskellige typer påstande og påstandsmetoder ved hjælp af Junit- og TestNG-rammer:
bedste apps til spionage på nogen
Påstande bruges til validering af en testsag og hjælper os med at forstå, om en testsag er bestået eller mislykkedes. Påstanden anses for at være opfyldt, hvis det faktiske resultat af en ansøgning stemmer overens med det for det forventede resultat.
Mens vi automatiserer webapplikationer ved hjælp af Selenium, er vi nødt til at validere vores tests for at kontrollere, om de fungerer som forventet eller ej(det vil sige, hvis et testsagsresultat er bestået / mislykkes).
=> Se på Selenium Beginners Guide her.
En testsag anses kun for bestået, hvis alle påstandene er opfyldt. Påstande i selen kan håndteres ved hjælp af foruddefinerede metoder i Junit og TestNG rammer, som vil blive forklaret detaljeret i denne artikel.
Hvad du lærer:
- Påstande i selen
- Typer af påstande i selen
- Junit Assert Methods
- TestNG Assert Methods
- Eksempelprogrammer til påstande
- Konklusion
Påstande i selen
Påstande bruges til at udføre forskellige former for valideringer i testsagerne, hvilket igen hjælper os med at afgøre, om testsagen er bestået eller mislykkedes. We betragter en test som vellykket, hvis den kører uden nogen undtagelse.
Videovejledning om påstande
Typer af påstande i selen
Der er to typer påstande i selen, og kategoriseringen afhænger af, hvordan påstanden opfører sig, når en tilstand er bestået eller mislykket.
Her vil vi diskutere to typer påstande i Selen :
- Hårde påstande
- Bløde påstande
Klik her for prøve test tilfælde til test af påstande.
# 1) Hårde påstande (eller simpelthen påstande)
En hård påstand fortsætter ikke med udførelsen, før påstanden er opfyldt.
Harde påstande kaster normalt en påstandsfejl, når en påstandsbetingelse ikke er opfyldt. Testtilfælde markeres straks som Mislykket, når en hård påstandstilstand mislykkes.
Et scenarie for at bruge denne form for påstand er, at når du vil kontrollere, om du har logget ind korrekt og ikke har bestået testen, hvis du ikke har foretaget et vellykket login, da det ikke er nogen mening at gå videre, hvis forudsætningen ( login) i sig selv mislykkes.
Lad os tage et andet eksempel illustreret her:
Overvej en test sag for at hævde titlen på en webside.
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(); }
I eksemplet vil variablen 'ActualTitle' indeholde titleteksten fra automatisering. 'ExpectedTitle' indeholder de forventede strengdata. Assert.assertEquals () kontrollerer, om begge tekster er ens. Ovenstående testsag passerer og fortsætter til næste udførelseslinje, da den faktiske tekst og den forventede tekst er den samme.
Konsol:
Assert bestået.
PASSED: VerifyTitle
Den samme testtilfælde, når den mislykkedes, kaster en undtagelse og standser udførelsen i det tilfælde.
Lad os nu ændre den forventede titel til den forkerte.
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(); }
Konsol:
java.lang.AssertionError:forventet [Velkommen til Amazon]menfundet [Amazon.com: Online shopping for elektronik, tøj, computere, bøger, dvd'er og mere]
Fra konsollen kan vi se, at udskriftserklæringen blev sprunget over (System.out.println), da der opstod en fejl i Assert-erklæringen, og den kastede en undtagelse.
# 2) Bløde påstande
En blød påstand fortsætter med det næste trin i testudførelsen, selv om påstandsbetingelsen ikke er opfyldt.
Bløde påstande er den type påstande, der ikke automatisk kaster en undtagelse, når en påstand mislykkes, medmindre den bliver bedt om. Dette er nyttigt, hvis du laver flere valideringer i en form, hvoraf kun få valideringer direkte har indflydelse på at afgøre testsagens status.
Her bruger vi en klasse kaldet SoftAssert, og metoden assertAll () kaldes til at kaste alle undtagelser fanget under udførelse. Når softAssert bruges, udfører den påstand, og hvis der findes en undtagelse, kastes den ikke med det samme, snarere fortsætter den, indtil vi kalder metoden assertAll () for at kaste alle undtagelser, der er fanget.
Det er klogt at bruge forskellige objekter af 'SoftAssert' klasse til hver testtilfælde.
Overvej testsagen for at hævde titlen på siden
I nedenstående eksempel oprettes to objekter i klassen 'SoftAssert', der skal bruges i to forskellige testsager.
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 } }
Konsol:
Faktisk titel: Amazon.com: Online shopping for elektronik, tøj, computere, bøger, dvd'er og mere
Påstand 1 udføres
Ikonet vises
Påstand 2 udføres
java.lang.AssertionError: Følgende påstande mislykkedes:
forventet [Velkommen til Amazon] men fundet [Amazon.com: Online shopping for elektronik, tøj, computere, bøger, dvd'er og mere]
Fra konsollen kan vi forstå, at selvom påstanden var en fiasko i den første testtilfælde (verificere titel), fortsatte udførelsen til næste linje, hvor udsagnet - 'Påstand 1 udføres' blev udskrevet, og først efter softAssert blev kaldt, undtagelsen blev kastet.
Hvornår skal man bruge hård og blød påstand?
Hvis du har brug for at udføre alle trin i en testsag, der skal udføres, selv efter at en påstand mislykkes, og du også vil rapportere påstand om undtagelse, skal du vælge at bruge bløde påstande. Brug af bløde påstande i dine testskripter er en god praksis og en effektiv måde at håndtere din testudførelse på
Hvis du kun ønsker, at din eksekvering af testsagen fortsætter, når en påstand er bestået ( For eksempel, For at bekræfte gyldigt login og først derefter udføre de andre trin) skal du bruge Hard Assertions.
Junit Assert Methods
De forskellige typer Junit Assert-metoder forklares nedenfor detaljeret.
# 1) assertEquals
assertequals-metoden sammenligner det forventede resultat med det faktiske resultat. Det kaster en AssertionError, hvis det forventede resultat ikke stemmer overens med det faktiske resultat og afslutter programudførelsen ved assert-lig-metoden.
Syntaks:
public static void assertEquals(String expected, String actual)
Eksempel:
Streng forventet = “https://www.google.com”;
Streng actualURL = “https://www.google.com”;
Assert.assertEquals (forventet, actualURL);
# 2) hævder sandt
asserttrue-metoden hævder, at en bestemt tilstand er sand.
Det tager to parametre, dvs. den ene er meddelelsen, og den anden er den betingelse, som påstanden skal anvendes mod. Det kaster en AssertionError, hvis betingelsen, der overføres til assertrue-metoden, ikke er opfyldt.
Syntaks:
public static void assertTrue(java.lang.String message, boolean condition)
meddelelse - Meddelelse, der skal vises i tilfælde af en påstandsfejl.
betingelse - Betingelse, som påstanden skal anvendes til.
Eksempel:
Assert.assertTrue (“Assert True test message”, true);
# 3) hævder Falsk
assert false method hævder, at en bestemt tilstand er falsk.
Det tager to parametre, dvs. den ene er meddelelsen, og den anden er den betingelse, som påstanden skal anvendes mod. Det kaster en AssertionError, hvis betingelsen, der overføres til assertfalse-metoden, ikke er opfyldt.
Syntaks:
public static void assertFalse(java.lang.String message, boolean condition)
meddelelse - Meddelelse, der skal vises i tilfælde af en påstandsfejl.
betingelse - Betingelse, som påstanden skal anvendes til.
Eksempel:
Assert.assertFalse ('Assert false test message' false);
# 4) assertNull
assert null bruges til at kontrollere, om det angivne objekt indeholder en null-værdi. Det tager et objekt som parameter og kaster en AssertionError, hvis det angivne objekt ikke har en nulværdi.
Syntaks:
public static void assertNull(Object object)
Eksempel:
DemoClass demo = ny DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null bruges til at kontrollere, at et bestemt objekt ikke har en null-værdi. Det tager et objekt som parameter og kaster en AssertionError, hvis det angivne objekt ikke indeholder en nulværdi.
Syntaks:
public static void assertNotNull(Object object)
Eksempel:
DemoClass demo = ny DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
hævder samme metode kontrollerer, om to objekter, der er angivet som parametre, henviser til det samme objekt. Det kaster en AssertionError, hvis de leverede objekter ikke henviser til det samme objekt med den medfølgende meddelelse.
Bemærk, at Assert samme sammenligner kun referencer til objekter, men ikke de faktiske værdier.
Syntaks:
public static void assertSame(String message, Object expected,Object actual)
Eksempel:
DemoClass1 demo1 = ny DemoClass1 ();
DemoClass2 demo2 = ny DemoClass2 ();
Assert.assertSame (“To objekter er ens”, demo1, demo2);
# 7) assertNotSame
hævder ikke det samme verificerer, at to objekter ikke er ens. Hvis to objekter refererer til det samme objekt, kastes en AssertionError.
Bemærk, at påstanden ikke den samme metode sammenligner referencerne for objekter og ikke de værdier, der findes i objekterne.
Syntaks:
public static void assertNotSame(String message, Object expected, Object actual)
Eksempel:
DemoClass1 demo1 = ny DemoClass1 ();
DemoClass2 demo2 = ny DemoClass2 ();
Assert.assertNotSame (“To objekter er ikke ens”, demo1, demo2);
# 8) assertArrayEquals
assert equals verificerer, at to objektarrays er ens. Hvis begge arrays har nulværdier, betragtes de som lige. Denne metode kaster en AssertionError med den medfølgende meddelelse, hvis begge objektarrayerne ikke betragtes som ens.
Syntaks:
public static void assertArrayEquals(String message, Object[] expected, Object[] actual)
meddelelse - Meddelelse, der skal vises i tilfælde af en påstandsfejl.
forventet - Array of objects.
faktisk - Array af objekter.
Eksempel:
Streng [] forventet = {“Mango”, “Apple”, ”Banana”}
String [] actual = {“Mango”, “Apple”, ”Banana”}
Assert.assertArrayEquals (forventet, faktisk);
TestNG Assert Methods
TestNG Assert-metoder vil være de samme som Junit-påstandsmetoderne, der er diskuteret ovenfor. Majoren forskellen mellem Junit og TestNG påstandsmetoder kommer i vejen for håndtering af påstande.
TestNG leverer mere avancerede påstandehåndteringsteknikker såsom afhængige klasser, gruppetests, parametrerede tests osv.
Videotutorials om TestNG Assert Methods
Del I
Del II
Del III
# 1) assertEquals
Denne metode bruges til at hævde, om to dataværdier er ens. Vi kan sammenligne værdierne for forskellige datatyper som streng, boolsk, heltal. osv. Når de forventede og faktiske værdier er de samme, så går påstanden uden undtagelse. Hvis de ikke er det, kastes en AssertionError.
Anvendelse : Denne form for påstand bruges til at verificere sagen, når de data, der vises på websiden, er som forventet eller i henhold til det specificerede krav.
Syntaks:
Assert.assertEquals(actual,expected)
Parametre:
Nuværende - Den faktiske værdi, som vi forventer af automatisering.
Forventet –Den forventede værdi.
Eksempel: For at bekræfte det, hvis Amazon-hjemmesiden har en titel, der siger, 'Amazon.com: Online shopping for elektronik, tøj, computere, bøger, dvd'er og mere '
@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”); }
Konsol:
Assert bestået.
PASSED: VerifyTitle
I ovenstående eksempel blev to strenge verificeret for lige værdier. Ligeledes kan lighed med andre datatyper som heltal, boolsk osv. Verificeres.
# 2) assertNotEquals
assertNotEquals bruges til at kontrollere, om to dataværdier ikke er ens. Det er lige det modsatte af funktionen af assertEquals Assertion. Når de forventede og faktiske værdier stemmer overens, mislykkes påstanden med en undtagelse og markerer testsagen som 'mislykket'.
Anvendelse : Dette bruges i tilfælde, hvor vi gerne vil kontrollere, at hver data er unik på en webside. For eksempel , et telefonkatalog, hvor ingen 2 telefonnumre er ens.
Syntaks:
Assert.assertNotEquals(actual,expected)
Parametre:
Nuværende - Den faktiske værdi, som vi forventer af automatisering.
Forventet - Den forventede værdi.
Eksempel: For at kontrollere, at pinkoderne i to forskellige områder er unikke / ikke ens.
@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”); }
Konsol:
To unikke pinkoder er: 600012 && 600001
Assert bestået.
PASSED: verifyAssertNotEqual
# 3) assertTrue
assertTrue bruges til at kontrollere, om en given boolsk tilstand er sand. Denne påstand returnerer sand, hvis den angivne betingelse passerer, hvis ikke, så kastes en påstandsfejl.
Syntaks:
gratis video konvertering software til pc
Assert.assertTrue(BooleanCondition);
Parametre :
Boolsk tilstand - Betingelse for at kontrollere, om returtypen er sand.
Anvendelse :
Eksempel: For at kontrollere, om SignIn-knappen er til stede på hjemmesiden for Amazon.in (hævder for visning af knappen).
Assert.assertTrue(SignIn.isDisplayed());
Her bekræfter det, om den boolske tilstand - SignIn.IsDisplayed () returnerer SAND.
Eksempel: For at kontrollere, om der er en knap på websiden.
@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'); }
Konsol:
Knappen vises
PASSED: verifyAssertTrue
# 4) hævder Falsk
assertFalse bruges til at kontrollere, om en given boolsk tilstand er falsk. Med andre ord skal returtypen for den givne boolske tilstand være Falsk. Denne påstand overgår, hvis den angivne betingelse har en FALSK returtype, hvis ikke, kastes en påstandsfejl.
Syntaks:
Assert.assertFlase(BooleanCondition);
Parametre :
Boolsk tilstand - Betingelse for at kontrollere, om returtypen er falsk.
Anvendelse : Et scenarie, hvor det kan bruges, er at kontrollere, om et element ikke er til stede på en webside efter en bestemt handling.
Eksempel 1: Login-knappen skal ikke vises efter login.
Assert.assertFalse(SignIn.isDisplayed());
Dette hævder, om den boolske tilstand - SignIn.IsDisplayed () returnerer FALSE.
Eksempel 2:
For at kontrollere, om en div forsvinder efter en bestemt handling. Så her verificerer vi, at div ikke vises, eller med andre ord, hævder en falsk tilstand på en div, der vises.
@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'); }
Konsol:
Captcha div dæmpet ud af skærmen
PASSERET:verificereAssertFalske
# 5) assertNull
Denne påstand bruges til at kontrollere, om et objekt har en null-returværdi. Med andre ord kontrollerer den, om resultatet er nul. Når objektet er Null, videregives påstanden uden nogen undtagelse.
Syntaks:
AssertNull(Object)
Parametre :
Objekt - Enhver dataværdi, der har en nulværdi.
Anvendelse:
sql vs nosql fordele og ulemper
Eksempel 1:
Påstå, om en streng er nul.
@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'); }
Eksempel 2:
Gør opmærksom på, om driverværdien er nul, før chrome-driveren startes.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Her er driverobjektet nul, da det ikke er startet. Derfor bliver AssertNull (driver) en succes, da den bekræftes, hvis objektet 'driver' har en nulværdi
# 6) assertNotNull
Denne påstand forventer en gyldig returtype, bortset fra Null-værdien. Med andre ord kontrollerer den for et objekt, hvis det ikke er Null. Returtypen kan være boolsk, streng, heltal, liste osv. Når objektet ikke er null, sendes Assertion, hvis ikke, kastes en AssertionError.
Syntaks:
AssertNotNull(Object)
Parametre :
Objekt - Enhver dataværdi, der indeholder en hvilken som helst dataværdi.
Anvendelse:
Eksempel 1: Assert er en streng, der indeholder nogle data. Det vil sige, det er ikke 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'); }
Eksempel 2: Bekræft, at driverobjektet ikke er nul efter start af FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Her startes driverobjektet til firefox-driver, og derfor har 'driver'-objektet en vis værdi, da det ikke er startet. Derfor vil AssertNotNull (driver) være en succes, da den bekræftes, hvis objektet 'driver' ikke har en nulværdi
Klik på her til eksempler på prøvesager.
Eksempelprogrammer til påstande
Påstand svarer til:
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'); } }
Kode Forklaring:
Ovenstående kode viser brugen af AssertEquals-metoden i enkle vendinger.
- Som tidligere beskrevet, hævder lig at tage to parametre, dvs. forventet resultat og faktisk resultat. Hvis det forventede resultat ikke stemmer overens med det for det faktiske resultat, kastes en påstandsfejl, og programmets udførelse afsluttes efter metoden med hævder lig.
- Ovenstående kode sammenligner den brugerdefinerede strengværdi med den forventede strengværdi.
- Bemærk, at det faktiske resultat i realtid er en brugerdefineret operation, for hvilken værdien hentes ved kørselstidspunktet og sendes som en parameter til metoden assert equals.
Påstå sandt:
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(); } }
Kode Forklaring:
Ovenstående kode demonstrerer brugen af assertTrue-metoden.
- Vi videregiver oprindeligt den forventede sidetitel til en variabel. Vi instantierer derefter et objekt fra Firefox-chaufføren og navigerer det til websiden - https://www.google.com
- Senere sammenligner vi ved hjælp af assertsTrue-metoden den åbne sidetitel med den forventede sidetitel. Hvis den åbne sidetitel ikke stemmer overens med den forventede titel, kastes en påstandsfejl, og programudførelsen afsluttes ved assertTrue-metoden.
- Ovenstående kode udføres kun med succes, når den aktuelle sidetitel stemmer overens med den forventede sidetitel.
Påstå falsk:
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(); } }
Kode Forklaring:
Ovenstående kode demonstrerer brugen af assertfalse-metoden.
- Vi videregiver oprindeligt den forventede sidetitel til en variabel og derefter instantierer et objekt fra Firefox-driveren og navigerer til websiden - https://www.google.com
- Senere sammenligner vi den assertfalse metode ved at sammenligne den åbne sidetitel med den forventede sidetitel. Hvis titlen på den åbne side stemmer overens med den forventede titel, kastes en påstandsfejl, og programudførelsen afsluttes ved den falske metode assert.
- Ovenstående kode udføres kun med succes, når den aktuelle sidetitel ikke stemmer overens med den forventede sidetitel.
End-to-End-kode for påstande
Nedenfor er et eksempel på en ende til slut-kode for påstande. Vi har brugt følgende scenarie for enkelheds skyld.
Scenarie:
- Åbn websiden: https://www.google.com i Firefox-browseren.
- Kontroller, om den åbnede sidetitel svarer til den forventede sidetitel ved hjælp af asserttrue-metoden.
- Indtast søgeordet: Selen i søgetekstfeltet.
- Tryk på Enter-knappen på tastaturet.
- Kontroller, om den åbnede sidetitel på søgeresultatsiden svarer til den forventede sidetitel ved hjælp af assertequals-metoden og assertfalse-metoden.
- Luk browseren.
Prøvekode:
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(); } }
Kode output:
Oprindeligt åbnes Firefox-browservinduet med websiden: https://www.google.com. Asserttrue-metoden vil kontrollere, om den åbnede sidetitel matcher den for den forventede sidetitel - Google.
Scriptet vil indtaste søgeordet som Selenium og trykke på Enter-knappen.
Assertfalse og assertequals-metoder sammenlignes, hvis den aktuelle sidetitel på søgeresultatskærmen stemmer overens med den forventede titel - 'selen - Google-søgning'. Derefter lukkes browseren via driver.close-metoden.
Konsol output:
Teksten nedenfor er konsoloutput på Eclipse IDE
Undgå almindelige fejl, når du bruger Assert Class
1. Antag, at dit projekt har JUnit, TestNG og python-biblioteker konfigureret
to . Men i dit script bruger du TestNG-kommentar og ved en fejl vælger du Junit Assertion, så bliver din Assert-klasse udfaset. Se skærmbillede nedenfor
3. Så det er meget vigtigt at vælge den rette Assert-klasse, for TestNg skal du vælge den eneste org.TestNG Assert-klasse
Fire. For Junit skal du vælge org.junit.Assert-klasse og så videre.
5. For at udføre Soft Assertion er vi nødt til at kalde assertAll () -metoden obligatorisk
6. Når en påstand mislykkes, kaster den påstandsfejl ikke undtagelsen
Konklusion
Vi kan afslutte denne artikel om påstande i selen med nedenstående henvisninger:
- En påstand bruges til at sammenligne det faktiske resultat af en applikation med det forventede resultat.
- En testsag anses kun for bestået, hvis alle påstandene er opfyldt.
- AssertEquals-metoden sammenligner det forventede resultat med det faktiske resultat. Det kaster en AssertionError, hvis det forventede resultat ikke stemmer overens med det for det faktiske resultat og afslutter programudførelsen ved metoden assertequals.
- AssertTrue-metoden hævder, at en bestemt betingelse er sand. Det kaster en AssertionError, hvis betingelsen, der overføres til assertrue-metoden, ikke er opfyldt.
- AssertFalse-metoden hævder, at en bestemt tilstand er falsk. Det kaster en AssertionError, hvis den betingelse, der er overført til at hævde falsk metode, ikke er opfyldt.
- AssertEquals, AssertTrue og AssertFalse metoder er de mest anvendte påstande i selen.
I kommende tutorial , vil vi diskutere forskellige eksempler, der bruges i realtids-projektscenarier og forstå, hvordan påstande bruges i henhold til formålet.
Vi håber, at denne artikel beriget din viden om påstande i selen !!
=> Læs igennem Easy Selenium Training Series.
Anbefalet læsning
- Introduktion til JUnit Framework og dens anvendelse i Selenium Script - Selen Tutorial # 11
- Sådan bruges TestNG Framework til oprettelse af selen-scripts - TestNG Selen Tutorial # 12
- Lær hvordan du bruger TestNG-kommentarer i selen (med eksempler)
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Integration af selen med JMeter
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Mest populære testautomatiseringsrammer med fordele og ulemper ved hver - Selen-tutorial # 20
- 30+ bedste selen-tutorials: Lær selen med rigtige eksempler