assertions selenium using junit
Ta vadnica o trditvah o selenu pojasnjuje, kaj so trditve v selenu in različne vrste trditev in metod uveljavljanja z uporabo okvirov Junit in TestNG:
kaj je testiranje črne škatle in testiranje bele škatle s primerom
Trditve se uporabljajo za potrjevanje testnega primera in nam pomagajo razumeti, ali je testni primer uspešen ali neuspešen. Trditev se šteje za izpolnjeno, če se dejanski rezultat aplikacije ujema z rezultatom pričakovanega rezultata.
Medtem ko avtomatiziramo spletne aplikacije s pomočjo selena, moramo potrditi svoje teste in preveriti, ali delujejo po pričakovanjih ali ne(to pomeni, če je rezultat preizkusa uspešno / neuspešno).
=> Tukaj si oglejte Vodnik za začetnike selena.
Šteje se, da je testni primer opravljen le, če so bile izpolnjene vse trditve. Trditve v seleniju je mogoče obravnavati s predhodno določenimi metodami okvirov Junit in TestNG, ki bodo podrobno razložene v tem članku.
Kaj se boste naučili:
- Trditve v selenu
- Vrste trditev v selenu
- Metode uveljavljanja Junit
- Metode uveljavljanja TestNG
- Vzorčni programi za trditve
- Zaključek
Trditve v selenu
Trditve se uporabljajo za izvajanje različnih vrst validacij v testnih primerih, kar pa nam pomaga pri odločitvi, ali je testni primer uspešen ali neuspešen. WTest se šteje za uspešnega, če se izvaja brez izjeme.
Video vadnica o trditvah
Vrste trditev v selenu
V programu Selenium obstajata dve vrsti trditev in kategorizacija je odvisna od tega, kako se trditev obnaša po prenosu ali neuspehu pogoja.
Tu bi razpravljali o dveh vrstah trditev v Selen :
- Trde trditve
- Mehke trditve
Kliknite tukaj za vzorec testni primeri za preizkušanje trditev.
# 1) Trde trditve (ali preprosto trditve)
Trda trditev se ne nadaljuje z izvajanjem, dokler ni izpolnjen pogoj trditve.
Trde trditve običajno vržejo napako trditve, kadar pogoj trditve ni izpolnjen. Preskusni primer bo takoj označen kot neuspešen, če trdi pogoj trditve ne uspe.
Scenarij za uporabo tovrstne trditve je, da če želite preveriti, ali ste se pravilno prijavili, in če niste uspešno izvedli prijave, ne boste mogli nadaljevati, saj ni smiselno nadaljevati, če je predpogoj ( prijava) sama ne uspe.
Vzemimo še en primer, ponazorjen tukaj:
Razmislite o testnem primeru za uveljavitev naslova spletne strani.
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(); }
V primeru bo spremenljivka ‘ActualTitle’ vsebovala naslovno besedilo iz avtomatizacije. ‘ExpectedTitle’ vsebuje pričakovane nizne podatke. Assert.assertEquals () preveri, ali sta besedili enaki. Zgornji testni primer se bo nadaljeval in nadaljeval v naslednjo izvedbeno vrstico, saj sta dejansko besedilo in pričakovano besedilo enaka.
Konzola:
Trditev je bila sprejeta.
MENJENO: VerifyTitle
Isti preskusni primer, ko ne bo uspel, bo povzročil izjemo in ustavil izvajanje na tem primerku.
Zdaj pa spremenimo pričakovani naslov na napačnega.
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(); }
Konzola:
java.lang.AssertionError:pričakovano [Dobrodošli v Amazonu]ampaknašel [Amazon.com: Spletno nakupovanje za elektroniko, oblačila, računalnike, knjige, DVD-je in drugo]
V konzoli lahko vidimo, da je bil stavek za tiskanje preskočen (System.out.println), ker je bila v izjavi Assert odkrita napaka in je povzročila izjemo.
# 2) Mehke trditve
Mehka trditev se nadaljuje z naslednjim korakom izvedbe preizkusa, tudi če pogoj trditve ni izpolnjen.
Mehke trditve so vrsta trditev, ki ne vržejo izjeme samodejno, kadar trditev ne uspe, razen če je zahtevano. To je koristno, če izvajate več validacij v obliki, od katerih le nekaj validacij neposredno vpliva na odločanje o stanju testnega primera.
Tu uporabljamo razred, imenovan SoftAssert, metoda assertAll () pa se pokliče, da vrže vse izjeme, ujete med izvajanjem. Ko je uporabljen softAssert, uveljavi trditev in če je izjema najdena, se ne vrže takoj, temveč se nadaljuje, dokler ne pokličemo metode assertAll (), da vrže vse ujete izjeme.
Za vsak testni primer je pametno uporabiti različne predmete razreda ‘SoftAssert’.
Razmislite o testnem primeru, da uveljavite naslov strani
V spodnjem primeru sta ustvarjena dva predmeta razreda ‘SoftAssert’ za uporabo v dveh različnih testnih primerih.
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 } }
Konzola:
Dejanski naslov: Amazon.com: Spletno nakupovanje za elektroniko, oblačila, računalnike, knjige, DVD-je in drugo
Trditev 1 je izvršena
Prikaže se ikona
Trditev 2 je izvršena
java.lang.AssertionError: Naslednje trditve niso uspele:
pričakovano [Dobrodošli v Amazonu], vendar našli [Amazon.com: Spletno nakupovanje za elektroniko, oblačila, računalnike, knjige, DVD-je in drugo]
Iz konzole lahko razberemo, da čeprav je bila trditev v prvem testnem primeru (verifyTitle) neuspešna, se je izvajanje nadaljevalo do naslednje vrstice, v kateri je bila natisnjena izjava - 'Trditev 1 je izvršena' in šele po klicu softAssert, vrgla se je izjema.
Kdaj uporabiti trdo in mehko trditev?
Če morate izvesti vse korake testnega primera, ki se izvedejo tudi po tem, ko trditev ne uspe, in želite prijaviti tudi izjemo trditve, se odločite za uporabo mehkih trditev. Uporaba mehkih trditev v testnih skriptah je dobra praksa in učinkovit način za izvajanje preizkusa
Če želite, da se izvajanje testnega primera nadaljuje šele potem, ko je trditev sprejeta ( Na primer, Če želite preveriti veljavno prijavo in šele nato izvesti druge korake), nato uporabite Hard Assertions.
Metode uveljavljanja Junit
V nadaljevanju so podrobno razložene različne vrste metod Junit Assert.
# 1) assertEquals
metoda assertequals primerja pričakovani rezultat z dejanskim rezultatom. Vrne AssertionError, če se pričakovani rezultat ne ujema z rezultatom dejanskega rezultata in zaključi izvajanje programa po metodi assert equals.
Sintaksa:
public static void assertEquals(String expected, String actual)
Primer:
Pričakovan niz = “https://www.google.com”;
String currentURL = “https://www.google.com”;
Assert.assertEquals (pričakovano, dejansko URL);
# 2) assertTrue
metoda asserttrue trdi, da je določen pogoj resničen.
Zajema dva parametra, tj. Eden je sporočilo, drugi pa pogoj, na podlagi katerega je treba uveljaviti trditev. Vrne AssertionError, če pogoj, poslan v metodo asserttrue, ni izpolnjen.
Sintaksa:
public static void assertTrue(java.lang.String message, boolean condition)
sporočilo - sporočilo, ki se prikaže v primeru napake pri trditvi.
pogoj - Pogoj, za katerega je treba uveljaviti trditev.
Primer:
Assert.assertTrue (»Testno sporočilo» Uveljavi resnično «, resnično);
# 3) assertFalse
assert false metoda trdi, da je določen pogoj napačen.
Zajema dva parametra, tj. Eden je sporočilo, drugi pa pogoj, na podlagi katerega je treba uveljaviti trditev. Vrne AssertionError, če pogoj, poslan v metodo assertfalse, ni izpolnjen.
Sintaksa:
public static void assertFalse(java.lang.String message, boolean condition)
sporočilo - sporočilo, ki se prikaže v primeru napake pri trditvi.
pogoj - Pogoj, za katerega je treba uveljaviti trditev.
Primer:
Assert.assertFalse (»Uveljavi lažno testno sporočilo« false);
# 4) assertNull
assert null se uporablja za preverjanje, ali podani objekt vsebuje ničelno vrednost. Kot parameter vzame objekt in vrže AssertionError, če podani objekt ne vsebuje ničelne vrednosti.
Sintaksa:
public static void assertNull(Object object)
Primer:
DemoClass demo = nov DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
Uveljavi ne null se uporablja za preverjanje, ali podani objekt nima null vrednosti. Kot parameter vzame objekt in vrže AssertionError, če podani objekt ne vsebuje ničelne vrednosti.
Sintaksa:
public static void assertNotNull(Object object)
Primer:
DemoClass demo = nov DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
uveljavi isto metodo preveri, ali se dva predmeta, navedena kot parametra, nanašata na isti predmet. Vrne AssertionError, če se navedeni predmeti ne nanašajo na isti objekt s priloženim sporočilom.
Upoštevajte, da Assert same primerja samo sklice predmetov, ne pa tudi dejanskih vrednosti.
Sintaksa:
public static void assertSame(String message, Object expected,Object actual)
Primer:
DemoClass1 demo1 = nov DemoClass1 ();
DemoClass2 demo2 = nov DemoClass2 ();
Assert.assertSame (»Dva predmeta sta enaka«, demo1, demo2);
# 7) assertNotSame
Uveljavi ni isto preveri, da dva predmeta nista enaka. Če se dva predmeta nanašata na isti predmet, bo vržena AssertionError.
kako dodati element v matriko
Upoštevajte, da metoda утверjevanja ne uporablja primerjave referenc predmetov in ne vrednosti, ki so prisotne v objektih.
Sintaksa:
public static void assertNotSame(String message, Object expected, Object actual)
Primer:
DemoClass1 demo1 = nov DemoClass1 ();
DemoClass2 demo2 = nov DemoClass2 ();
Assert.assertNotSame (“Dva predmeta nista enaka”, demo1, demo2);
# 8) assertArrayEquals
assert equals preveri, ali sta dve matriki objektov enaki. Če oba polja vsebujeta ničelni vrednosti, potem veljata za enaki. Ta metoda vrne AssertionError s priloženim sporočilom, če se obe vrsti objektov ne štejeta za enaki.
Sintaksa:
public static void assertArrayEquals(String message, Object[] expected, Object[] actual)
sporočilo - sporočilo, ki se prikaže v primeru napake pri trditvi.
pričakovano - Niz predmetov.
dejansko - niz predmetov.
Primer:
Niz [] pričakovano = {“Mango”, “Apple”, “Banana”}
String [] dejanski = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (pričakovano, dejansko);
Metode uveljavljanja TestNG
Metode preizkušanja TestNG bodo enake metodam uveljavljanja Junit, ki so obravnavane zgoraj. Major razlika med Junitom in TestNG metode uveljavljanja ovirajo ravnanje s trditvami.
TestNG ponuja naprednejše tehnike obdelave trditev, kot so odvisni razredi, skupinski testi, parametrizirani testi itd.
Video vaje o metodah preizkušanja TestNG
I. del
2. del
III. Del
# 1) assertEquals
Ta metoda se uporablja za uveljavljanje, če sta dve podatkovni vrednosti enaki. Lahko primerjamo vrednosti različnih podatkovnih vrst, kot so niz, logična vrednost, celo število. itd. Kadar sta pričakovani in dejanski vrednosti enaki, potem trditev brez izjeme mine. Če niso, se vrže AssertionError.
Uporaba : Tovrstna trditev se uporablja za preverjanje primera, ko so podatki, prikazani na spletni strani, pričakovani ali v skladu z zahtevami.
Sintaksa:
Assert.assertEquals(actual,expected)
Parametri:
Trenutni - Dejanska vrednost, ki jo pričakujemo od avtomatizacije.
Pričakovano –Pričakovana vrednost.
Primer: Če želite preveriti, če ima naslov na Amazonovi domači strani naslov, 'Amazon.com: Spletno nakupovanje elektronike, oblačil, računalnikov, knjig, DVD-jev in drugega “
@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”); }
Konzola:
Trditev je bila sprejeta.
MENJENO: VerifyTitle
V zgornjem primeru sta bila preverjena dva niza za enake vrednosti. Prav tako je mogoče preveriti enakost drugih podatkovnih vrst, kot so celo število, logična vrednost itd.
# 2) assertNotEquals
assertNotEquals se uporablja za preverjanje, ali dve podatkovni vrednosti nista enaki. Je ravno nasprotno od delovanja assertEquals Assertion. Kadar se pričakovane in dejanske vrednosti ujemajo, trditev z izjemo ne uspe in testni primer označi kot »neuspešnega«.
Uporaba : Uporablja se v primerih, ko želimo preveriti, ali so vsi podatki na spletni strani unikatni. Na primer , telefonski imenik, pri katerem nobeni telefonski številki nista enaki.
Sintaksa:
Assert.assertNotEquals(actual,expected)
Parametri:
Trenutni - Dejanska vrednost, ki jo pričakujemo od avtomatizacije.
Pričakovano - pričakovana vrednost.
Primer: Če želite preveriti, ali sta PIN kodi dveh različnih področij edinstveni / ne enaki.
@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”); }
Konzola:
Dve unikatni PIN kodi sta: 600012 && 600001
Trditev je bila sprejeta.
MENJENO: verifyAssertNotEqual
# 3) assertTrue
assertTrue se uporablja za preverjanje, ali je dani logični pogoj resničen. Ta trditev vrne true, če podani pogoj mine, v nasprotnem primeru se vrže napaka trditve.
Sintaksa:
Assert.assertTrue(BooleanCondition);
Parametri :
BooleanCondition - Pogoj za preverjanje, ali je njegova vrnjena vrednost True.
Uporaba :
Primer: Če želite preveriti, ali je gumb za prijavo prisoten na domači strani Amazon.in (trditev za prikaz gumba).
Assert.assertTrue(SignIn.isDisplayed());
Tukaj preveri, ali je logični pogoj - SignIn.IsDisplayed () vrne TRUE.
Primer: Če želite preveriti, ali je na spletni strani prisoten gumb.
@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'); }
Konzola:
Prikaže se gumb
MENJENO: verifyAssertTrue
# 4) assertFalse
assertFalse se uporablja za preverjanje, ali je dani logični pogoj neresničen. Z drugimi besedami, vrsta vrnitve danega logičnega pogoja mora biti False. Ta trditev se opravi, če ima navedeni pogoj vrnitev FALSE, če ne, se vrne napaka trditve.
Sintaksa:
Assert.assertFlase(BooleanCondition);
Parametri :
BooleanCondition - Pogoj za preverjanje, ali je vrsta vrnitve napačna.
pl sql intervju vprašanje in odgovori za izkušene
Uporaba : Scenarij, v katerem ga je mogoče uporabiti, je preveriti, ali element po določenem dejanju ni prisoten na spletni strani.
Primer 1: Gumb za prijavo po prijavi ne sme biti prikazan.
Assert.assertFalse(SignIn.isDisplayed());
To trdi, ali je logični pogoj - SignIn.IsDisplayed () vrne FALSE.
2. primer:
Če želite preveriti, ali div po določenem dejanju izgine. Torej, tukaj preverjamo, da div ni prikazan, ali z drugimi besedami, uveljavljam napačno stanje na prikazanem divju.
@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'); }
Konzola:
Captcha div je zatemnil zaslon
MENJENO:verifyAssertFalse
# 5) assertNull
Ta trditev se uporablja za preverjanje, ali ima objekt ničelno vrnjeno vrednost. Z drugimi besedami, preveri, ali je rezultat ničen. Ko je objekt Null, se trditev prenese brez izjeme.
Sintaksa:
AssertNull(Object)
Parametri :
Predmet - katera koli vrednost podatkov, ki vsebuje ničelno vrednost.
Uporaba:
Primer 1:
Uveljavi, če je niz ničen.
@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. primer:
Pred zagonom gonilnika chrome ugotovite, ali je vrednost gonilnika nična.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Tu je objekt gonilnika ničen, ker ni sprožen. Zato bo AssertNull (voznik) uspešen, saj je preveril, ali ima objekt ‘driver’ null vrednost
# 6) assertNotNull
Ta trditev pričakuje veljaven tip vrnitve, ki ni vrednost Null. Z drugimi besedami, preveri, ali objekt ni Null. Vrsta vrnitve je lahko logična, niz, celo število, seznam itd. Če objekt ni nulen, se poda trditev, če ne, vrže se napaka AssertionError.
Sintaksa:
AssertNotNull(Object)
Parametri :
Predmet - Katera koli vrednost podatkov, ki vsebuje katero koli vrednost podatkov.
Uporaba:
Primer 1: Uveljavi je niz, ki vsebuje nekaj podatkov. To pomeni, da ni 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'); }
2. primer: Po zagonu FirefoxDriverja preverite, ali objekt gonilnika ni nič.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Tu se objekt voznika sproži v gonilnik firefox in ima torej objekt 'voznik' določeno vrednost, ker ni sprožen. Zato bo AssertNotNull (gonilnik) uspel, saj je preveril, ali objekt 'driver' nima null vrednosti
Kliknite tukaj za vzorčne testne primere.
Vzorčni programi za trditve
Uveljavi enako:
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'); } }
Razlaga kode:
Zgornja koda na preprost način prikazuje uporabo metode AssertEquals.
- Kot smo že omenili, trdi, da je enako, ima dva parametra, tj. Pričakovani rezultat in dejanski rezultat. Če se pričakovani rezultat ne ujema z rezultatom dejanskega rezultata, bo vržena napaka pri uveljavljanju in izvajanje programa se bo končalo po metodi assert equals.
- Zgornja koda primerja uporabniško določeno vrednost niza s pričakovano vrednostjo niza.
- Upoštevajte, da bo dejanski rezultat v realnem času uporabniško določena operacija, za katero bo vrednost pridobljena med izvajanjem in posredovana kot parameter v metodo uveljavljanja enakovrednosti.
Trdi, da je resnično:
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(); } }
Razlaga kode:
Zgornja koda prikazuje uporabo metode assertTrue.
- Pričakovani naslov strani sprva posredujemo spremenljivki. Nato ustvarimo primer gonilnika za Firefox in se pomaknemo na spletno stran - https://www.google.com
- Kasneje z metodo assertsTrue primerjamo naslov odprte strani z naslovom pričakovanega naslova strani. Če se naslov odprte strani ne ujema z naslovom pričakovanega naslova, bo vržena napaka trditve in izvajanje programa bo končano z metodo assertTrue.
- Zgornja koda bo uspešno izvedena le, če se dejanski naslov strani ujema z naslovom pričakovanega naslova strani.
Trdi, da je napačno:
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(); } }
Razlaga kode:
Zgornja koda prikazuje uporabo metode assertfalse.
- Sprva spremenljivki posredujemo pričakovani naslov strani, nato ustvarimo objekt gonilnika za Firefox in se pomaknemo na spletno stran - https://www.google.com
- Kasneje z uporabo metode assertfalse primerjamo naslov odprte strani z naslovom pričakovanega naslova strani. Če se naslov odprte strani ujema z naslovom pričakovanega naslova, bo prišlo do napake pri uveljavljanju in izvajanje programa bo prekinjeno s pomočjo metode false false.
- Zgornja koda se bo uspešno izvedla le, če se dejanski naslov strani ne ujema z naslovom pričakovanega naslova strani.
Koda od konca do konca za trditve
Spodaj je vzorčna koda od konca do konca za trditve. Za poenostavitev smo uporabili naslednji scenarij.
Scenarij:
- Odprite spletno stran: https://www.google.com v brskalniku Firefox.
- Z metodo asserttrue preverite, ali je naslov odprte strani enak naslovu pričakovanega naslova strani.
- V besedilno polje za iskanje vnesite ključno besedo za iskanje: Selen.
- Pritisnite tipko Enter na tipkovnici.
- Preverite, ali je odprt naslov strani na strani z rezultati iskanja enakovreden naslovu pričakovanega naslova strani z uporabo metode assertequals in assertfalse.
- Zaprite brskalnik.
Vzorčna koda:
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(); } }
Izpis kode:
Sprva se odpre okno brskalnika Firefox s spletno stranjo: https://www.google.com. Metoda Asserttrue bo preverila, ali se naslov odprte strani ujema z naslovom pričakovanega naslova strani - Google.
Skript bo ključno besedo za iskanje vnesel kot Selenium in pritisnil gumb za vnos.
Metodi Assertfalse in assertequals se primerjata, če se dejanski naslov strani zaslona z rezultati iskanja ujema z naslovom pričakovanega naslova - „selen - Iskanje Google“. Nato bo brskalnik zaprt s pomočjo metode driver.close.
Izhod konzole:
Spodnje besedilo bo izhod konzole na Eclipse IDE
Pri uporabi razreda Assert se izogibajte pogostim napakam
1. Recimo, da imajo vaš projekt konfigurirane knjižnice JUnit, TestNG in python
dva . Toda v svojem skriptu uporabljate pripis TestNG in po pomoti izberete Junit Assertion, nato pa bo vaš razred Assert opuščen. Glejte spodnji posnetek zaslona
3. Zato je zelo pomembno, da izberete ustrezen razred Assert, za TestNg izberite edini razred Org.TestNG Assert
Štiri. Za Junit izberite org.junit.Assert razred in tako naprej.
5. Za izvedbo mehke trditve moramo obvezno poklicati metodo assertAll ()
6. Ko trditev ne uspe, bo vrgla napaka trditve in ni izjema
Zaključek
Ta članek o trditvah v selenu lahko zaključimo s spodnjimi napotki:
- Trditev se uporablja za primerjavo dejanskega rezultata aplikacije s pričakovanim rezultatom.
- Šteje se, da je testni primer opravljen le, če so bile izpolnjene vse trditve.
- Metoda AssertEquals primerja pričakovani rezultat z dejanskim rezultatom. Vrne AssertionError, če se pričakovani rezultat ne ujema z rezultatom dejanskega rezultata in zaključi izvajanje programa pri metodi assertequals.
- Metoda AssertTrue trdi, da je določen pogoj resničen. Vrne AssertionError, če pogoj, poslan v metodo asserttrue, ni izpolnjen.
- Metoda AssertFalse trdi, da je določen pogoj napačen. Vrne AssertionError, če ni izpolnjen pogoj za uveljavitev false metode.
- Metode AssertEquals, AssertTrue in AssertFalse so najpogosteje uporabljene trditve v selenu.
V prihajajoča vadnica , bomo razpravljali o različnih primerih, ki se uporabljajo v projektnih scenarijih v realnem času, in razumeli, kako se trditve uporabljajo glede na namen.
Upamo, da je ta članek obogatil vaše znanje o trditvah v selenu !!
=> Preberite serijo Easy Selenium Training Series.
Priporočeno branje
- Uvod v JUnit Framework in njegovo uporabo v skriptu selena - Vadnica za selen # 11
- Kako uporabiti ogrodje TestNG za ustvarjanje skriptov za selen - Vadnica # 12 za TestNG Selenium
- Naučite se uporabljati pripombe TestNG v selenu (s primeri)
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Integracija selena z JMeter
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Najbolj priljubljeni okviri za avtomatizacijo preskusov z vsemi prednostmi in slabostmi - Vadnica za selen št. 20
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri