assertions selenium using junit
Tento výukový program selenu k tvrzením vysvětluje, co jsou tvrzení v selenu a různé typy tvrzení a metody uplatnění pomocí rámců Junit a TestNG:
klasifikace chyb v testování softwaru
Tvrzení se používají k ověření testovacího případu a pomáhají nám pochopit, zda testovací případ prošel nebo selhal. Tvrzení se považuje za splněné, pokud se skutečný výsledek aplikace shoduje s výsledkem očekávaného výsledku.
Při automatizaci webových aplikací pomocí selenu musíme ověřit naše testy, abychom ověřili, zda fungují podle očekávání nebo ne(to znamená, že pokud je výsledek testovacího případu vyhovující / neúspěšný).
=> Prohlédněte si průvodce pro začátečníky selenem zde.
Testovací případ se považuje za splněný, pouze pokud byla splněna všechna tvrzení. Tvrzení v selenu lze zpracovat předdefinovanými metodami rámců Junit a TestNG, které budou podrobně vysvětleny v tomto článku.
Co se naučíte:
- Tvrzení v selenu
- Druhy tvrzení v selenu
- Metody Junit Assert
- TestNG Assert Methods
- Ukázkové programy pro tvrzení
- Závěr
Tvrzení v selenu
Tvrzení se používají k provádění různých druhů ověřování v testovacích případech, což nám zase pomáhá rozhodnout, zda testovací případ prošel nebo selhal. ŽPovažujeme test za úspěšný, pokud běží bez jakékoli výjimky.
Výukový program o tvrzeních
Druhy tvrzení v selenu
V selenu existují dva typy tvrzení a kategorizace závisí na tom, jak se chová tvrzení po splnění nebo nesplnění podmínky.
Zde bychom diskutovali o dvou typech tvrzení Selen :
- Tvrdá tvrzení
- Měkká tvrzení
Klepnutím sem zobrazíte ukázku testovací případy pro testování tvrzení.
# 1) Tvrdá tvrzení (nebo jednoduše tvrzení)
Tvrdé tvrzení nebude pokračovat v provádění, dokud nebude splněna podmínka tvrzení.
Tvrdá tvrzení obvykle vyvolají chybu tvrzení, kdykoli nebyla splněna podmínka tvrzení. Testovací případ bude okamžitě označen jako Selhal, když selže podmínka tvrdého tvrzení.
Scénář pro použití tohoto druhu tvrzení spočívá v tom, že pokud chcete ověřit, zda jste se správně přihlásili, a pokud jste neprovedli úspěšné přihlášení, neprospějí testem, protože nemá smysl pokračovat dále, pokud je splněna předběžná podmínka ( samotné přihlášení) selže.
Vezměme si další ilustrovaný příklad zde:
Zvažte testovací případ k uplatnění názvu webové stránky.
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 příkladu bude proměnná „ActualTitle“ obsahovat text nadpisu z automatizace. ‚ExpectedTitle 'obsahuje očekávaná data řetězce. Assert.assertEquals () ověří, zda jsou oba texty stejné. Výše uvedený testovací případ projde a pokračuje na další řádek provedení, protože skutečný text a očekávaný text jsou stejné.
Řídicí panel :
Assert prošel.
PŘEDÁNO: VerifyTitle
Stejný testovací případ, když selhal, vyvolá výjimku a zastaví provádění v dané instanci.
Nyní změňme očekávaný název na nesprávný.
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(); }
Řídicí panel:
Chyba Java.lang.AssertionError:očekávané [Vítejte na Amazonu]alefound [Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs and more]
Z konzoly vidíme, že příkaz tisku byl přeskočen (System.out.println), protože v příkazu Assert došlo k chybě a došlo k výjimce.
# 2) Měkká tvrzení
Měkké tvrzení pokračuje dalším krokem provádění testu, i když podmínka tvrzení není splněna.
Měkká tvrzení jsou typem tvrzení, která nevyvolávají výjimku automaticky, když se tvrzení nezdaří, pokud o to nebude požádáno. To je užitečné, pokud provádíte více ověřování ve formuláři, z nichž pouze několik ověřování má přímý dopad na rozhodování o stavu testovacího případu.
Zde používáme třídu nazvanou SoftAssert a metoda assertAll () je volána k vyvolání všech výjimek zachycených během provádění. Když se používá softAssert, provádí tvrzení a pokud je nalezena výjimka, není okamžitě vyvolána, spíše pokračuje, dokud nezavoláme metodu assertAll (), která vyvolá všechny zachycené výjimky.
Je rozumné použít pro každý testovací případ různé objekty třídy „SoftAssert“.
Zvažte testovací případ, abyste uplatnili název stránky
V níže uvedeném příkladu jsou vytvořeny dva objekty třídy „SoftAssert“ pro použití ve dvou různých testovacích případech.
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 } }
Řídicí panel:
Aktuální název: Amazon.com: Online nakupování elektroniky, oděvů, počítačů, knih, DVD a dalších
Tvrzení 1 je provedeno
Zobrazí se ikona
Tvrzení 2 je provedeno
java.lang.AssertionError: Následující tvrzení selhala:
očekávané [Vítejte na Amazonu], ale nalezeno [Amazon.com: Online nakupování elektroniky, oděvů, počítačů, knih, DVD a dalších]
Z konzoly můžeme pochopit, že i když bylo tvrzení neúspěšné v prvním testovacím případě (verifyTitle), provádění pokračovalo na další řádek, kde byl vytištěn příkaz - „Assertion 1 is executed“ a teprve po zavolání softAssert, výjimka byla vyvolána.
Kdy použít tvrdé a měkké tvrzení?
Pokud potřebujete provést všechny kroky testovacího případu, který se má provést i po selhání tvrzení, a chcete také nahlásit výjimku tvrzení, rozhodněte se pro použití měkkých tvrzení. Používání softwarových výrazů ve zkušebních skriptech je dobrou praxí a účinným způsobem zpracování testu
Pokud chcete, aby spuštění testovacího případu pokračovalo až po předání tvrzení ( Například, Chcete-li ověřit platné přihlašovací údaje a teprve poté provést další kroky), použijte Hard Assertions.
Metody Junit Assert
Níže jsou podrobně vysvětleny různé typy metod Junit Assert.
# 1) assertEquals
metoda assertequals porovnává očekávaný výsledek s výsledkem skutečného výsledku. Vyvolá AssertionError, pokud se očekávaný výsledek neshoduje s výsledkem skutečného výsledku a ukončí provádění programu metodou assert equals.
Syntax:
public static void assertEquals(String expected, String actual)
Příklad:
Očekávaný řetězec = „https://www.google.com“;
String actualURL = “https://www.google.com”;
Assert.assertEquals (očekává se, skutečná URL);
# 2) assertTrue
metoda asserttrue tvrdí, že zadaná podmínka je pravdivá.
Trvá ve dvou parametrech, tj. Jeden je zpráva a druhý je podmínka, proti které je třeba uplatnit tvrzení. Vyvolá AssertionError, pokud není splněna podmínka předaná metodě asserttrue.
Syntax:
public static void assertTrue(java.lang.String message, boolean condition)
message - Zpráva, která se zobrazí v případě chyby tvrzení.
podmínka - Podmínka, proti které je třeba uplatnit tvrzení.
Příklad:
Assert.assertTrue („Assert True test message“, true);
# 3) assertFalse
metoda assert false tvrdí, že zadaná podmínka je nepravdivá.
Trvá ve dvou parametrech, tj. Jeden je zpráva a druhý je podmínka, proti které je třeba uplatnit tvrzení. Vyvolá AssertionError, pokud není splněna podmínka předaná metodě assertfalse.
Syntax:
public static void assertFalse(java.lang.String message, boolean condition)
message - Zpráva, která se zobrazí v případě chyby tvrzení.
podmínka - Podmínka, proti které je třeba uplatnit tvrzení.
Příklad:
Assert.assertFalse („Assert false test message“ false);
# 4) assertNull
assert null se používá k ověření, zda poskytnutý objekt obsahuje hodnotu null. Vezme objekt jako parametr a hodí AssertionError, pokud zadaný objekt neobsahuje hodnotu null.
Syntax:
public static void assertNull(Object object)
Příklad:
DemoClass demo = nová DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null se používá k ověření, že poskytnutý objekt neobsahuje hodnotu null. Vezme objekt jako parametr a vyvolá AssertionError, pokud poskytnutý objekt neobsahuje hodnotu null.
Syntax:
public static void assertNotNull(Object object)
Příklad:
DemoClass demo = nová DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
tvrdit stejnou metodu zkontroluje, zda dva objekty poskytnuté jako parametry odkazují na stejný objekt. Vyvolá AssertionError, pokud poskytnuté objekty neodkazují na stejný objekt s poskytnutou zprávou.
Vezměte prosím na vědomí, že Assert same porovnává pouze odkazy na objekty, ale ne skutečné hodnoty.
Syntax:
public static void assertSame(String message, Object expected,Object actual)
Příklad:
DemoClass1 demo1 = nová DemoClass1 ();
DemoClass2 demo2 = nová DemoClass2 ();
Assert.assertSame („Dva objekty jsou stejné“, demo1, demo2);
# 7) assertNotSame
assert not same ověří, že dva objekty nejsou stejné. Pokud dva objekty odkazují na stejný objekt, bude vyvolána AssertionError.
Vezměte prosím na vědomí, že metoda assert not same method porovnává odkazy na objekty a ne hodnoty přítomné v objektech.
Syntax:
public static void assertNotSame(String message, Object expected, Object actual)
Příklad:
DemoClass1 demo1 = nová DemoClass1 ();
DemoClass2 demo2 = nová DemoClass2 ();
Assert.assertNotSame („Dva objekty nejsou stejné“, demo1, demo2);
# 8) assertArrayEquals
assert equals ověří, že dvě pole objektů jsou stejná. Pokud obě pole obsahují nulové hodnoty, jsou považována za rovnocenná. Tato metoda vyvolá AssertionError se zprávou, pokud obě pole objektu nejsou považována za stejná.
Syntax:
public static void assertArrayEquals(String message, Object[] expected, Object[] actual)
message - Zpráva, která se zobrazí v případě chyby tvrzení.
očekává se - pole objektů.
aktuální - pole objektů.
Příklad:
Řetězec [] očekáván = {„Mango“, „Apple“, „Banana“}
Řetězec [] aktuální = {„Mango“, „Apple“, „Banán“}
výchozí brána není k dispozici Windows 10 WiFi
Assert.assertArrayEquals (očekávané, skutečné);
TestNG Assert Methods
Metody TestNG Assert budou stejné jako metody prosazování Junit, které jsou popsány výše. Hlavní rozdíl mezi Junit a TestNG metody vynucování vycházejí ze způsobu vyřizování tvrzení.
TestNG poskytuje pokročilejší techniky zpracování tvrzení, jako jsou závislé třídy, skupinové testy, parametrizované testy atd.
Videonávody k metodám prosazování TestNG
Část I.
Část II
Část III
# 1) assertEquals
Tato metoda se používá k ověření, zda jsou dvě hodnoty dat stejné. Můžeme porovnat hodnoty různých datových typů, jako jsou string, boolean, integer. atd. Kdykoli jsou očekávané a skutečné hodnoty stejné, pak tvrzení projde bez výjimky. Pokud nejsou, je vyvolána AssertionError.
Používání : Tento druh tvrzení se používá k ověření případu, kdy jsou data zobrazená na webové stránce podle očekávání nebo podle specifikovaného požadavku.
Syntax:
Assert.assertEquals(actual,expected)
Parametry:
Aktuální - Skutečná hodnota, kterou očekáváme od automatizace.
Očekávaný –Očekávaná hodnota.
Příklad: Chcete-li ověřit, že pokud má domovská stránka Amazonu název, který říká: „Amazon.com: Online nakupování elektroniky, oděvů, počítačů, knih, DVD a dalších “
@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”); }
Řídicí panel :
Assert prošel.
PŘEDÁNO: VerifyTitle
Ve výše uvedeném příkladu byly pro stejné hodnoty ověřeny dva řetězce. Rovněž lze ověřit rovnost jiných datových typů, jako je celé číslo, logická hodnota atd.
# 2) assertNotEquals
assertNotEquals se používá k ověření, zda dvě hodnoty dat nejsou stejné. Je to pravý opak fungování assertEquals Assertion. Kdykoli se očekávané a skutečné hodnoty shodují, tvrzení selže s výjimkou a označí testovací případ jako „selhal“.
Používání : Toto se používá v případech, kdy bychom chtěli ověřit, že jsou každá data na webové stránce jedinečná. Například , telefonní seznam, kde žádná 2 telefonní čísla nejsou stejná.
Syntax:
Assert.assertNotEquals(actual,expected)
Parametry:
Aktuální - Skutečná hodnota, kterou očekáváme od automatizace.
Očekávaný - Očekávaná hodnota.
Příklad: Chcete-li ověřit, zda jsou kódy PIN dvou různých oblastí jedinečné / ne stejné.
@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”); }
Řídicí panel :
Dva jedinečné kódy PIN: 600012 && 600001
Assert prošel.
PROVEDENO: verifyAssertNotEqual
# 3) assertTrue
assertTrue se používá k ověření, zda je daná booleovská podmínka pravdivá. Toto tvrzení vrací true, pokud zadaná podmínka projde, pokud ne, je vyvolána chyba tvrzení.
Syntax:
Assert.assertTrue(BooleanCondition);
Parametry :
BooleanCondition - Podmínka pro kontrolu, zda je jeho návratový typ True.
Používání :
Příklad: Chcete-li ověřit, zda je tlačítko Přihlásit na domovské stránce Amazon.in (prosadit zobrazení tlačítka).
Assert.assertTrue(SignIn.isDisplayed());
Zde ověří, zda booleovská podmínka - SignIn.IsDisplayed () vrací TRUE.
Příklad: Ověření, zda je na webové stránce tlačítko.
@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'); }
Řídicí panel :
Zobrazí se tlačítko
PROVEDENO: verifyAssertTrue
# 4) assertFalse
assertFalse se používá k ověření, zda je daná booleovská podmínka nepravdivá. Jinými slovy, návratový typ dané booleovské podmínky by měl být False. Toto tvrzení projde, pokud má zadaná podmínka FALSE návratový typ, pokud ne, je vyvolána chyba tvrzení.
Syntax:
Assert.assertFlase(BooleanCondition);
Parametry :
BooleanCondition - Podmínka ke kontrole, zda je jeho návratový typ False.
Používání : Scénář, kde jej lze použít, je ověřit, zda se prvek po určité akci na webové stránce nenachází.
Příklad 1: Tlačítko přihlášení by se po přihlášení nemělo zobrazovat.
Assert.assertFalse(SignIn.isDisplayed());
Toto tvrdí, že booleovská podmínka - SignIn.IsDisplayed () vrátí FALSE.
Příklad 2:
Ověření, zda div po určité akci zmizí. Zde tedy ověřujeme, že div se nezobrazí, nebo jinými slovy, potvrdit falešný stav na zobrazeném divu.
@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'); }
Řídicí panel :
Captcha div ztlumený z obrazovky
PROŠLO:verifyAssertFalse
# 5) assertNull
Toto tvrzení se používá k ověření, zda má objekt návratovou hodnotu null. Jinými slovy zkontroluje, zda je výsledek null. Když je objekt Null, je tvrzení předáno bez jakékoli výjimky.
Syntax:
AssertNull(Object)
Parametry :
Objekt - Jakákoli datová hodnota, která obsahuje nulovou hodnotu.
Používání:
Příklad 1:
Tvrdit, pokud je řetězec null.
@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'); }
Příklad 2:
Před spuštěním ovladače chrome zkontrolujte, zda je hodnota ovladače null.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Zde je objekt ovladače null, protože není zahájen. AssertNull (ovladač) bude tedy úspěšný, protože se ověřuje, zda objekt „ovladač“ obsahuje hodnotu null
# 6) assertNotNull
Toto tvrzení očekává platný návratový typ, jiný než hodnota Null. Jinými slovy zkontroluje objekt, pokud není Null. Návratový typ může být Boolean, řetězec, celé číslo, seznam atd. Když objekt nemá hodnotu null, předá se Assertion, pokud ne, vyvolá se AssertionError.
Syntax:
AssertNotNull(Object)
Parametry :
Objekt - Jakákoli datová hodnota, která obsahuje jakoukoli datovou hodnotu.
Používání:
Příklad 1: Assert je řetězec, který obsahuje některá data. To znamená, že to není 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'); }
Příklad 2: Po spuštění prohlížeče FirefoxDriver ověřte, že objekt ovladače není null.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Zde je objekt ovladače inicializován ovladači firefoxu, a proto má objekt „driver“ určitou hodnotu, protože není inicializován. AssertNotNull (ovladač) bude tedy úspěšný, protože bude ověřen, pokud objekt „ovladač“ nebude obsahovat hodnotu null
Klepněte na tady pro ukázkové testovací případy.
Ukázkové programy pro tvrzení
Uplatnit se rovná:
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'); } }
Vysvětlení kódu:
Výše uvedený kód demonstruje použití metody AssertEquals jednoduše.
- Jak již bylo zmíněno dříve, assert equals má dva parametry, tj. Očekávaný výsledek a skutečný výsledek. Pokud se očekávaný výsledek neshoduje s výsledkem skutečného výsledku, bude vyvolána chyba tvrzení a spuštění programu bude ukončeno metodou assert equals.
- Výše uvedený kód porovnává hodnotu řetězce definovanou uživatelem s očekávanou hodnotou řetězce.
- Vezměte prosím na vědomí, že v reálném čase bude skutečným výsledkem uživatelem definovaná operace, pro kterou bude hodnota načtena za běhu a předána jako parametr metodě assert equals.
Tvrdit pravdu:
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(); } }
Vysvětlení kódu:
Výše uvedený kód ukazuje použití metody assertTrue.
- Zpočátku předáváme očekávaný název stránky do proměnné. Poté vytvoříme instanci objektu ovladače Firefoxu a přejdeme na webovou stránku - https://www.google.com
- Později pomocí metody assertsTrue porovnáváme otevřený nadpis stránky s očekávaným nadpisem stránky. Pokud se otevřený nadpis stránky neshoduje s očekávaným nadpisem, bude vyvolána chyba tvrzení a spuštění programu bude ukončeno metodou assertTrue.
- Výše uvedený kód bude úspěšně proveden pouze v případě, že se skutečný název stránky shoduje s očekávaným názvem stránky.
Assert False:
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(); } }
Vysvětlení kódu:
Výše uvedený kód ukazuje použití metody assertfalse.
- Zpočátku předáváme očekávaný nadpis stránky do proměnné a poté vytvoříme instanci objektu ovladače Firefoxu a přejdeme na webovou stránku - https://www.google.com
- Později pomocí metody assertfalse porovnáme otevřený nadpis stránky s očekávaným nadpisem stránky. Pokud se otevřený nadpis stránky shoduje s očekávaným nadpisem, bude vyvolána chyba tvrzení a spuštění programu bude ukončeno metodou assert false.
- Výše uvedený kód bude úspěšně proveden pouze v případě, že skutečný název stránky neodpovídá očekávanému názvu stránky.
Úplný kód pro tvrzení
Níže je ukázkový ukázkový kód pro tvrzení. Následující scénář jsme použili pro zjednodušení.
Scénář:
- V prohlížeči Firefox otevřete webovou stránku: https://www.google.com.
- Pomocí metody asserttrue ověřte, zda je otevřený nadpis stránky ekvivalentní s očekávaným nadpisem stránky.
- Do textového pole pro vyhledávání zadejte klíčové slovo pro vyhledávání: Selenium.
- Stiskněte klávesu Enter na klávesnici.
- Pomocí metody assertequals a assertfalse ověřte, zda je otevřený nadpis stránky na stránce s výsledky vyhledávání ekvivalentní s očekávaným nadpisem stránky.
- Zavřete prohlížeč.
Ukázkový kód:
jak třídit pole java
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(); } }
Výstup kódu:
Zpočátku se otevře okno prohlížeče Firefox s webovou stránkou: https://www.google.com. Metoda Asserttrue ověří, zda se otevřený název stránky shoduje s názvem očekávaného názvu stránky - Google.
Skript zadá klíčové slovo pro vyhledávání jako Selenium a stiskne tlačítko Enter.
Metody Assertfalse a assertequals se srovnávají, pokud se skutečný název stránky na obrazovce s výsledky vyhledávání shoduje s očekávaným názvem - „selen - Vyhledávání Google“. Prohlížeč se poté zavře pomocí metody driver.close.
Výstup konzoly:
Níže uvedený text bude výstupem konzoly na Eclipse IDE
Při používání třídy Assert Class se vyvarujte běžných chyb
1. Předpokládejme, že váš projekt má nakonfigurované knihovny JUnit, TestNG a python
dva . Ale ve vašem skriptu používáte anotaci TestNG a omylem zvolíte Junit Assertion, pak bude vaše třída Assert zastaralá. Viz níže uvedený snímek obrazovky
3. Je tedy velmi důležité zvolit správnou třídu Assert, pro TestNg zvolit jedinou třídu org.TestNG Assert
Čtyři. Pro Junit zvolte třídu org.junit.Assert a tak dále.
5. K provedení Soft Assertion musíme povinně volat metodu assertAll ()
6. Když tvrzení selže, vyvolá chybu tvrzení, není výjimkou
Závěr
Tento článek o tvrzeních v selenu můžeme uzavřít níže uvedenými ukazateli:
- K porovnání skutečného výsledku aplikace s očekávaným výsledkem se používá tvrzení.
- Testovací případ se považuje za splněný, pouze pokud byla splněna všechna tvrzení.
- Metoda AssertEquals porovnává očekávaný výsledek s výsledkem skutečného. Vyvolá AssertionError, pokud se očekávaný výsledek neshoduje s výsledkem skutečného výsledku a ukončí provádění programu metodou assertequals.
- Metoda AssertTrue tvrdí, že zadaná podmínka je pravdivá. Vyvolá AssertionError, pokud není splněna podmínka předaná metodě asserttrue.
- Metoda AssertFalse tvrdí, že zadaná podmínka je nepravdivá. Vyvolá AssertionError, pokud není splněna podmínka předaná k prosazení falešné metody.
- AssertEquals, AssertTrue a AssertFalse metody jsou nejčastěji používanými tvrzeními v selenu.
V nadcházející výukový program , probereme různé příklady používané ve scénářích projektů v reálném čase a pochopíme, jak se tvrzení používají podle účelu.
Doufáme, že tento článek obohatil vaše znalosti o tvrzeních v selenu !!
=> Přečtěte si sérii Easy Selenium Training Series.
Doporučené čtení
- Úvod do rámce JUnit a jeho použití v Selenium Script - Selenium Tutorial # 11
- Jak používat rámec TestNG pro vytváření skriptů selenu - návod k testování selenu TestNG # 12
- Naučte se používat poznámky TestNG v selenu (s příklady)
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Integrace selenu s JMeter
- Úvod do Selenium WebDriver - Selenium Tutorial # 8
- Nejoblíbenější rámce automatizace testů s klady a zápory každého z nich - výuka selenu č. 20
- 30+ nejlepších návodů na selen: Naučte se selen se skutečnými příklady