assertions selenium using junit
Acest tutorial Selenium despre afirmații explică ce sunt afirmațiile în seleniu și diferitele tipuri de afirmații și metode de afirmare folosind cadrele Junit și TestNG:
de ce am nevoie pentru a rula un fișier jar
Afirmațiile sunt folosite pentru validarea unui caz de testare și ne ajută să înțelegem dacă un caz de testare a trecut sau nu. Afirmația este considerată îndeplinită dacă rezultatul real al unei cereri se potrivește cu cel al rezultatului așteptat.
În timp ce automatizăm aplicațiile web folosind Selenium, trebuie să ne validăm testele pentru a verifica dacă acestea funcționează conform așteptărilor sau nu(adică, dacă rezultatul unui caz de testare este trecut / eșuează).
=> Aruncați o privire la Ghidul pentru începători Selenium aici.
Un caz de testare este considerat a fi trecut doar dacă toate afirmațiile au fost îndeplinite. Afirmațiile din seleniu pot fi tratate prin metode predefinite ale cadrelor Junit și TestNG, care vor fi explicate în detaliu în acest articol.
Ce veți învăța:
- Afirmații în seleniu
- Tipuri de afirmații în seleniu
- Metode Junit Assert
- Metode TestNG Assert
- Exemple de programe pentru afirmații
- Concluzie
Afirmații în seleniu
Afirmațiile sunt utilizate pentru a efectua diferite tipuri de validări în cazurile de testare, ceea ce la rândul nostru ne ajută să decidem dacă cazul testului a trecut sau nu. WConsider un test ca reușit dacă rulează fără nicio excepție.
Tutorial video despre afirmații
Tipuri de afirmații în seleniu
Există două tipuri de afirmații în seleniu și clasificarea depinde de modul în care se comportă afirmația după ce o condiție este trecută sau eșuată.
Aici, am discuta două tipuri de afirmații în Seleniu :
- Afirmații grele
- Afirmații ușoare
Faceți clic aici pentru eșantion cazuri de testare pentru testarea afirmațiilor.
# 1) Afirmații dure (sau pur și simplu afirmații)
O afirmație dură nu continuă cu execuția până când nu este îndeplinită condiția de afirmare.
Afirmațiile dure generează de obicei o eroare de afirmare ori de câte ori nu a fost îndeplinită o condiție de afirmare. Cazul de testare va fi marcat imediat ca Eșuat atunci când o condiție de afirmare dificilă eșuează.
Un scenariu pentru a utiliza acest tip de afirmație este acela că, atunci când doriți să verificați dacă v-ați conectat corect și eșuați testul dacă nu ați făcut o autentificare reușită, deoarece nu are rost să continuați dacă condiția prealabilă ( autentificare) în sine nu reușește.
Să luăm un alt exemplu ilustrat aici:
Luați în considerare un caz de testare pentru a afirma titlul unei pagini web.
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(); }
În exemplu, variabila „ActualTitle” va conține textul titlului din automatizare. „ExpectedTitle” conține datele șirului așteptate. Assert.assertEquals () verifică dacă ambele texte sunt egale. Cazul de test de mai sus va trece și va continua la următoarea linie de execuție, deoarece textul real și textul așteptat sunt aceleași.
Consolă:
Asert a trecut.
TRECUT: VerifyTitle
Același caz de testare atunci când eșuează va arunca o excepție și va opri execuția la acea instanță.
Acum, să schimbăm titlul așteptat cu unul greșit.
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(); }
Consolă:
java.lang.AssertionError:așteptat (Bun venit pe Amazon)dargăsit (Amazon.com: Cumpărături online pentru electronice, îmbrăcăminte, computere, cărți, DVD-uri și multe altele)
Din consolă, putem vedea că instrucțiunea de tipărire a fost omisă (System.out.println), deoarece a apărut o eroare în instrucțiunea Assert și a aruncat o excepție.
# 2) Afirmații ușoare
O afirmare ușoară continuă cu pasul următor al execuției testului, chiar dacă nu este îndeplinită condiția de afirmare.
Aserțiile ușoare sunt tipul de afirmații care nu aruncă o excepție în mod automat atunci când o afirmație nu reușește decât dacă este solicitată. Acest lucru este util dacă efectuați mai multe validări într-un formular, dintre care doar câteva validări au un impact direct asupra deciziei stării cazului de testare.
Aici, folosim o clasă numită SoftAssert și metoda assertAll () este chemată pentru a arunca toate excepțiile surprinse în timpul execuției. Când se folosește softAssert, acesta efectuează afirmarea și, dacă se găsește o excepție, nu este aruncată imediat, mai degrabă continuă până când apelăm metoda assertAll () pentru a arunca toate excepțiile prinse.
Este înțelept să folosiți diferite obiecte din clasa „SoftAssert” pentru fiecare caz de testare.
Luați în considerare cazul de testare pentru a afirma titlul paginii
În exemplul de mai jos, sunt create două obiecte din clasa „SoftAssert” pentru a fi utilizate în două cazuri de testare diferite.
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 } }
Consolă:
Titlu actual: Amazon.com: Cumpărături online pentru electronice, îmbrăcăminte, computere, cărți, DVD-uri și multe altele
Afirmația 1 este executată
Pictograma este afișată
Afirmația 2 este executată
java.lang.AssertionError: Următoarele afirmări nu au reușit:
așteptat (Bun venit pe Amazon) dar găsit (Amazon.com: Cumpărături online pentru electronice, îmbrăcăminte, computere, cărți, DVD-uri și multe altele)
Din consolă, putem înțelege că, deși afirmația a fost un eșec în primul caz de testare (verifyTitle), execuția a continuat până la următoarea linie în care a fost tipărită declarația - „Aserțiunea 1 este executată” și numai după ce softAssert a fost apelat, excepția a fost aruncată.
Când se folosește afirmarea dură și ușoară?
Dacă trebuie să executați toți pașii unui caz de testare pentru a fi executat chiar și după ce o afirmație eșuează și doriți, de asemenea, să raportați excepția de afirmație, atunci optați pentru utilizarea Soft Assertions. Utilizarea Soft Assertions în scripturile de testare este o bună practică și un mod eficient de gestionare a execuției testului
Dacă doriți ca execuția cazului de testare să continue doar după ce o afirmație este trecută ( De exemplu, Pentru a verifica datele de autentificare valabile și abia apoi executați ceilalți pași), apoi folosiți Hard Assertions.
Metode Junit Assert
Diferitele tipuri de metode Junit Assert sunt explicate mai jos în detaliu.
# 1) assertEquals
metoda assertequals compară rezultatul așteptat cu cel al rezultatului real. Aruncă un AssertionError dacă rezultatul așteptat nu se potrivește cu cel al rezultatului real și încetează execuția programului la metoda assert egal.
Sintaxă:
public static void assertEquals(String expected, String actual)
Exemplu:
Șirul așteptat = „https://www.google.com”;
String actualURL = „https://www.google.com”;
Assert.assertEquals (așteptat, actualURL);
# 2) asertTrue
metoda asserttrue afirmă că o condiție specificată este adevărată.
Are doi parametri, adică unul este mesajul și celălalt este condiția împotriva căreia trebuie să se aplice afirmația. Aruncă un AssertionError dacă condiția transmisă metodei asserttrue nu este îndeplinită.
Sintaxă:
public static void assertTrue(java.lang.String message, boolean condition)
mesaj - Mesaj care va fi afișat în cazul unei erori de afirmare.
condiție - Condiție împotriva căreia trebuie să se aplice afirmația.
Exemplu:
Assert.assertTrue („Afirmați mesajul de testare adevărat”, adevărat);
# 3) asertFalse
metoda afirmă fals afirmă că o condiție specificată este falsă.
Are doi parametri, adică unul este mesajul și celălalt este condiția împotriva căreia trebuie să se aplice afirmația. Aruncă un AssertionError dacă condiția transmisă metodei assertfalse nu este îndeplinită.
Sintaxă:
public static void assertFalse(java.lang.String message, boolean condition)
mesaj - Mesaj care va fi afișat în cazul unei erori de afirmare.
condiție - Condiție împotriva căreia trebuie să se aplice afirmația.
Exemplu:
Assert.assertFalse („Afirmați mesajul de test fals” fals);
# 4) assertNull
asert null este utilizat pentru a verifica dacă obiectul furnizat conține o valoare nulă. Acesta ia un obiect ca parametru și aruncă un AssertionError dacă obiectul furnizat nu deține o valoare nulă.
Sintaxă:
public static void assertNull(Object object)
Exemplu:
DemoClass demo = new DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
asert not nul este utilizat pentru a verifica dacă un obiect furnizat nu deține o valoare nulă. Acesta ia un obiect ca parametru și aruncă un AssertionError dacă obiectul furnizat nu conține o valoare nulă.
Sintaxă:
public static void assertNotNull(Object object)
Exemplu:
DemoClass demo = new DemoClass ();
Assert.assertNotNull (demo);
# 6) asertSame
afirmă aceeași metodă verifică dacă două obiecte furnizate ca parametri se referă la același obiect. Aruncă o AssertionError dacă obiectele furnizate nu se referă la același obiect cu mesajul furnizat.
Vă rugăm să rețineți că Assert same compară doar referințele obiectelor, dar nu și valorile reale.
Sintaxă:
public static void assertSame(String message, Object expected,Object actual)
Exemplu:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertSame („Două obiecte sunt egale”, demo1, demo2);
# 7) assertNotSame
afirmă că nu același lucru verifică faptul că două obiecte nu sunt egale. Dacă două obiecte se referă la același obiect, atunci va fi aruncat un AssertionError.
Vă rugăm să rețineți că metoda afirmă că nu aceeași metodă compară referințele obiectelor și nu valorile prezente în obiecte.
Sintaxă:
public static void assertNotSame(String message, Object expected, Object actual)
Exemplu:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertNotSame („Două obiecte nu sunt egale”, demo1, demo2);
# 8) assertArrayEquals
afirmă egal verifică dacă două matrice de obiecte sunt egale. Dacă ambele matrice dețin valori nule, atunci acestea sunt considerate egale. Această metodă aruncă un AssertionError cu mesajul furnizat dacă ambele matrice de obiecte nu sunt considerate egale.
Sintaxă:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
mesaj - Mesaj care va fi afișat în cazul unei erori de afirmare.
așteptat - Matrice de obiecte.
actual - Matrice de obiecte.
Exemplu:
Șirul () așteptat = {„Mango”, „Apple”, „Banana”}
Șirul () actual = {„Mango”, „Apple”, „Banana”}
Assert.assertArrayEquals (așteptat, real);
Metode TestNG Assert
Metodele TestNG Assert vor fi aceleași cu metodele de afirmare Junit care sunt discutate mai sus. Maiorul diferența dintre Junit și TestNG metodele de afirmare vin în calea gestionării afirmațiilor.
TestNG oferă tehnici mai avansate de manipulare a afirmațiilor, cum ar fi clase dependente, teste de grup, teste parametrizate etc.
Tutoriale video despre metodele de afirmare TestNG
Partea I
Part II
Partea a III-a
# 1) assertEquals
Această metodă este utilizată pentru a afirma dacă două valori ale datelor sunt egale. Putem compara valorile diferitelor tipuri de date, cum ar fi șir, boolean, întreg. etc. Ori de câte ori valorile așteptate și reale sunt aceleași, atunci afirmația trece fără nicio excepție. Dacă nu sunt, atunci se aruncă o AssertionError.
Utilizare : Acest tip de afirmație este utilizat pentru a verifica cazul când datele afișate pe pagina web sunt conform așteptărilor sau conform cerințelor specificate.
Sintaxă:
Assert.assertEquals(actual,expected)
Parametri:
Actual - Valoarea reală pe care o așteptăm de la automatizare.
Așteptat –Valoarea așteptată.
Exemplu: Pentru a verifica acest lucru, dacă pagina de pornire Amazon are un titlu care spune: „Amazon.com: Cumpărături online pentru electronice, îmbrăcăminte, computere, cărți, DVD-uri și multe altele ”
@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”); }
Consolă:
Asert a trecut.
TRECUT: VerifyTitle
În exemplul de mai sus, două șiruri au fost verificate pentru valori egale. De asemenea, poate fi verificată egalitatea altor tipuri de date, cum ar fi număr întreg, boolean etc.
# 2) assertNotEquals
assertNotEquals este utilizat pentru a verifica dacă două valori ale datelor nu sunt egale. Este exact opusul funcționării afirmației assertEquals. Ori de câte ori valorile așteptate și reale se potrivesc, afirmația eșuează cu o excepție și marchează cazul de testare ca „eșuat”.
Utilizare : Acesta este utilizat în cazurile în care am dori să verificăm dacă fiecare dată este unică pe o pagină web. De exemplu , un director telefonic, unde nu există 2 numere de telefon identice.
Sintaxă:
software de descărcare video YouTube descărcare gratuită
Assert.assertNotEquals(actual,expected)
Parametri:
Actual - Valoarea reală pe care o așteptăm de la automatizare.
Așteptat - Valoarea așteptată.
Exemplu: Pentru a verifica dacă codurile PIN din două zone diferite sunt unice / nu sunt aceleași.
@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”); }
Consolă:
Două coduri PIN unice sunt: 600012 && 600001
Asert a trecut.
TRECUT: verifyAssertNotEqual
# 3) asertTrue
assertTrue este utilizat pentru a verifica dacă o anumită condiție booleană este adevărată. Această afirmație returnează adevărat dacă condiția specificată trece, dacă nu, atunci se aruncă o eroare de afirmație.
Sintaxă:
Assert.assertTrue(BooleanCondition);
Parametrii :
BooleanCondition - Condiție pentru a verifica dacă tipul său de returnare este adevărat.
Utilizare :
Exemplu: Pentru a verifica, dacă butonul Conectare este prezent pe pagina de pornire a Amazon.in (afirmați pentru afișarea butonului).
Assert.assertTrue(SignIn.isDisplayed());
Aici, verifică dacă condiția booleană - SignIn.IsDisplayed () returnează ADEVĂRAT.
Exemplu: Pentru a verifica dacă un buton este prezent pe pagina web.
@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'); }
Consolă:
Butonul este afișat
TRECUT: verifyAssertTrue
# 4) asertFalse
assertFalse este utilizat pentru a verifica dacă o anumită condiție booleană este falsă. Cu alte cuvinte, tipul returnat al condiției booleene date ar trebui să fie False. Această afirmație trece dacă condiția specificată are un tip de returnare FALS, dacă nu, se aruncă o eroare de afirmație.
Sintaxă:
Assert.assertFlase(BooleanCondition);
Parametrii :
BooleanCondition - Condiție pentru a verifica dacă tipul său de returnare este fals.
Utilizare : Un scenariu în care poate fi utilizat este de a verifica dacă un element nu este prezent pe o pagină web după o anumită acțiune.
Exemplul 1: Butonul de conectare nu trebuie afișat după autentificare.
Assert.assertFalse(SignIn.isDisplayed());
Aceasta afirmă dacă condiția booleană - SignIn.IsDisplayed () returnează FALS.
odihnitoare servicii web java întrebări de interviu
Exemplul 2:
Pentru a verifica dacă un div dispare după o anumită acțiune. Deci, aici verificăm dacă div nu este afișat sau, cu alte cuvinte, afirmăm pentru o condiție falsă pe un div afișat.
@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'); }
Consolă:
Captcha div s-a estompat din ecran
A TRECUT:verifyAssertFalse
# 5) asertNull
Această afirmație este utilizată pentru a verifica dacă un obiect are o valoare de returnare nulă. Cu alte cuvinte, verifică dacă rezultatul este nul. Când obiectul este nul, afirmația este transmisă fără nicio excepție.
Sintaxă:
AssertNull(Object)
Parametrii :
Obiect - Orice valoare de date care deține o valoare nulă.
Utilizare:
Exemplul 1:
Afirmați dacă un șir este 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'); }
Exemplul 2:
Afirmați dacă valoarea driverului este nulă înainte de a iniția driverul Chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Aici, obiectul driverului este nul deoarece nu este inițiat. Prin urmare, AssertNull (driver) va fi un succes, deoarece a verificat dacă obiectul „driver” deține o valoare nulă
# 6) assertNotNull
Această afirmație așteaptă un tip de returnare valid, altul decât valoarea Null. Cu alte cuvinte, verifică dacă un obiect nu este nul. Tipul de întoarcere poate fi boolean, șir, întreg, listă etc. Când obiectul nu este nul, se transmite Assertion, dacă nu, se aruncă un AssertionError.
Sintaxă:
AssertNotNull(Object)
Parametrii :
Obiect - Orice valoare de date care deține orice valoare de date.
Utilizare:
Exemplul 1: Assert este un șir care conține unele date. Adică nu este nul.
@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'); }
Exemplul 2: Verificați dacă obiectul driverului nu este nul, după inițierea FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Aici, obiectul driver este inițiat pentru driverul Firefox și, prin urmare, obiectul „driver” are o anumită valoare, deoarece nu este inițiat. Prin urmare, AssertNotNull (driver) va fi un succes, deoarece a verificat dacă obiectul „driver” nu deține o valoare nulă
Clic Aici pentru eșantioane de teste.
Exemple de programe pentru afirmații
Afirmați egal:
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'); } }
Explicatie cod:
Codul de mai sus demonstrează utilizarea metodei AssertEquals în termeni simpli.
- Așa cum s-a discutat mai sus, afirmarea egală ia doi parametri, adică rezultatul așteptat și rezultatul real. Dacă rezultatul așteptat nu se potrivește cu cel al rezultatului real, atunci va fi aruncată o eroare de afirmare și executarea programului se va termina la metoda asert egal.
- Codul de mai sus compară valoarea șirului definită de utilizator cu valoarea șirului așteptată.
- Vă rugăm să rețineți că, în timp real, rezultatul real va fi o operațiune definită de utilizator pentru care valoarea va fi preluată la timpul de rulare și transmisă ca parametru la metoda asert egal.
Afirmați adevărat:
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(); } }
Explicatie cod:
Codul de mai sus demonstrează utilizarea metodei assertTrue.
- Trecem inițial titlul așteptat al paginii pe o variabilă. Apoi, instantăm un obiect al driverului Firefox și îl navigăm către pagina web - https://www.google.com
- Mai târziu, folosind metoda assertsTrue, comparăm titlul paginii deschise cu cel al titlului așteptat al paginii. Dacă titlul paginii deschise nu se potrivește cu cel al titlului așteptat, atunci va fi aruncată o eroare de afirmare și executarea programului va fi încheiată la metoda assertTrue.
- Codul de mai sus va fi executat cu succes numai atunci când titlul paginii reale se potrivește cu cel al titlului așteptat al paginii.
Afirmați fals:
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(); } }
Explicatie cod:
Codul de mai sus demonstrează utilizarea metodei assertfalse.
- Trecem inițial titlul așteptat al paginii pe o variabilă și apoi instanțiem un obiect al driverului firefox și navigăm la pagina web - https://www.google.com
- Mai târziu, folosind metoda assertfalse comparăm titlul paginii deschise cu cel al titlului așteptat al paginii. Dacă titlul paginii deschise se potrivește cu cel al titlului așteptat, atunci va fi aruncată o eroare de afirmare și executarea programului va fi încheiată la metoda asert fals.
- Codul de mai sus va fi executat cu succes numai atunci când titlul paginii reale nu se potrivește cu cel al titlului așteptat al paginii.
Cod End to End pentru afirmații
Dat mai jos este un exemplu de cod de la un capăt la altul pentru afirmații. Am folosit următorul scenariu în scopuri de simplitate.
Scenariu:
- Deschideți pagina web: https://www.google.com pe browserul Firefox.
- Verificați dacă titlul paginii deschise este echivalent cu cel al titlului așteptat al paginii folosind metoda aserttrue.
- În caseta de text de căutare, introduceți cuvântul cheie de căutare: Seleniu.
- Apăsați butonul Enter de pe tastatură.
- Verificați dacă titlul paginii deschise în pagina cu rezultatele căutării este echivalent cu cel al titlului așteptat al paginii folosind metoda assertequals și metoda assertfalse.
- Închideți browserul.
Cod simplu:
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(); } }
Ieșire cod:
Inițial, fereastra browserului Firefox va fi deschisă cu pagina web: https://www.google.com. Metoda Asserttrue va verifica dacă titlul paginii deschise se potrivește cu cel al titlului așteptat al paginii - Google.
Scriptul va introduce cuvântul cheie de căutare ca Selenium și va apăsa pe butonul Enter.
Metodele Assertfalse și Assertequals se compară dacă titlul paginii reale a ecranului cu rezultatele căutării se potrivește cu cel al titlului așteptat - „seleniu - Căutare Google”. Browserul va fi apoi închis prin metoda driver.close.
Ieșire consolă:
Textul de mai jos va fi ieșirea consolei pe Eclipse IDE
Evitați greșelile obișnuite în timp ce utilizați Class Assert
1. Să presupunem că proiectul dvs. are configurate bibliotecile JUnit, TestNG și python
Două . Dar în scriptul dvs., utilizați adnotarea TestNG și, din greșeală, alegeți Junit Assertion, apoi clasa Assert va fi depreciată. Consultați mai jos captura de ecran
3. Deci, este foarte important să alegeți clasa Assert adecvată, pentru TestNg alegeți singura clasă org.TestNG Assert
Patru. Pentru Junit alegeți clasa org.junit.Assert și așa mai departe.
5. Pentru a efectua Soft Assertion trebuie să apelăm în mod obligatoriu metoda assertAll ()
6. Când o afirmație eșuează, aceasta va arunca o eroare de afirmare, nu excepția
Concluzie
Putem încheia acest articol despre afirmații în seleniu cu indicațiile de mai jos:
- O afirmație este utilizată pentru a compara rezultatul real al unei aplicații cu rezultatul așteptat.
- Un caz de testare este considerat a fi trecut doar dacă toate afirmațiile au fost îndeplinite.
- Metoda AssertEquals compară rezultatul așteptat cu cel al rezultatului real. Aruncă un AssertionError dacă rezultatul așteptat nu se potrivește cu cel al rezultatului real și încetează executarea programului la metoda assertequals.
- Metoda AssertTrue afirmă că o condiție specificată este adevărată. Aruncă un AssertionError dacă condiția transmisă metodei asserttrue nu este îndeplinită.
- Metoda AssertFalse afirmă că o condiție specificată este falsă. Aruncă un AssertionError dacă condiția transmisă pentru afirmarea metodei false nu este îndeplinită.
- Metodele AssertEquals, AssertTrue și AssertFalse sunt cele mai frecvent utilizate afirmații în Seleniu.
În următorul tutorial , vom discuta diverse exemple utilizate în scenarii de proiect în timp real și vom înțelege modul în care afirmațiile sunt utilizate în funcție de scop.
Sperăm că acest articol vă va îmbogăți cunoștințele despre afirmații în seleniu !!
=> Citiți seria Easy Training Selenium.
Lectură recomandată
- Introducere în JUnit Framework și utilizarea sa în Selenium Script - Selenium Tutorial # 11
- Cum se utilizează cadrul TestNG pentru crearea de scripturi Selenium - TestNG Selenium Tutorial # 12
- Aflați cum să utilizați adnotările TestNG în seleniu (cu exemple)
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Integrarea seleniului cu JMeter
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Cele mai populare cadre de automatizare a testelor cu argumente pro și contra ale fiecăruia - Selenium Tutorial # 20
- 30+ Cele mai bune tutoriale despre seleniu: învățați seleniul cu exemple reale