assertions selenium using junit
Овај туторијал о тврдњама о селену објашњава шта су тврдње у селену и различите врсте тврдњи и метода за утврђивање помоћу Јунит и ТестНГ оквира:
најпопуларнији алати за аналитику великих података
Тврдње се користе за валидацију тест случаја и помажу нам да разумемо да ли је тест случај прошао или није успео. Сматра се да је тврдња испуњена ако се стварни резултат апликације подудара са очекиваним резултатом.
Док аутоматизујемо веб апликације помоћу селена, морамо да потврдимо тестове да бисмо проверили да ли раде како се очекује или не(то јест, ако је резултат теста пролазан / неуспешан).
=> Овде погледајте водич за почетнике селена.
Сматра се да је тест случај положен само ако су испуњене све тврдње. Тврдње у селенијуму могу се решавати унапред дефинисаним методама Јунит и ТестНГ оквира, што ће бити детаљно објашњено у овом чланку.
Шта ћете научити:
- Тврдње у селену
- Врсте тврдњи у селену
- Јунит Ассерт методе
- ТестНГ методе потврђивања
- Пример програма за тврдње
- Закључак
Тврдње у селену
Тврдње се користе за вршење различитих врста валидација у тест случајевима, што нам заузврат помаже да одлучимо да ли је тест случај прошао или није. ВСматрамо тест успешним ако се изводи без икаквог изузетка.
Видео водич за тврдње
Врсте тврдњи у селену
У селенијуму постоје две врсте тврдњи и категоризација зависи од тога како се тврдња понаша након услова проласка или неуспеха.
Овде бисмо разговарали о две врсте тврдњи у Селен :
- Тешке тврдње
- Меке тврдње
Кликните овде за узорак тест случајева за тестирање тврдњи.
# 1) Тврде тврдње (или једноставно тврдње)
Чврста тврдња се не наставља са извршењем све док се не испуни услов тврдње.
Тврде тврдње обично избацују грешку у тврдњи кад год услов за тврдњу није испуњен. Тест случај ће бити одмах означен као Неуспешан када затаји тврдо стање.
Сценарио да се користи оваква тврдња је да када желите да проверите да ли сте се правилно пријавили и не успете на тесту ако нисте успешно извршили пријаву, јер нема смисла даље поступати ако је предуслов ( пријава) сама не успева.
Узмимо још један пример илустрован овде:
Размотрите тест случај да бисте потврдили наслов веб странице.
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(); }
У примеру, променљива ‘АцтуалТитле’ ће задржати текст наслова из аутоматизације. „ЕкпецтедТитле“ садржи очекиване податке о низу. Ассерт.ассертЕкуалс () проверава да ли су оба текста једнака. Горњи тест ће проћи и наставити се до следећег реда извршавања, јер су стварни текст и очекивани текст исти.
Конзола:
Тврдња је положена.
ПРОШЛО: ВерифиТитле
Исти тест случај када не успе, избациће изузетак и зауставити извршење у том случају.
Сада, променимо очекивани наслов у погрешан.
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(); }
Конзола:
јава.ланг.АссертионЕррор:очекује се (добродошли на Амазон)алипронађено (Амазон.цом: Интернет куповина електронике, одеће, рачунара, књига, ДВД-а и још много тога)
Из конзоле можемо видети да је исказ за прескакање прескочен (Систем.оут.принтлн) јер је у наредби Ассерт нађен квар и избацио је изузетак.
# 2) Меке тврдње
Мека тврдња се наставља са следећим кораком извођења теста, чак и ако услов тврдње није испуњен.
Меке тврдње су врста тврдњи које не избацују изузетак аутоматски када нека тврдња не успе, осим ако се за то затражи. Ово је корисно ако радите више валидација у облику, од којих само неколико валидација директно утиче на одлучивање о статусу тест случаја.
Овде користимо класу која се зове СофтАссерт и метода ассертАлл () је позвана да баци све изузетке ухваћене током извршавања. Када се користи софтАссерт, он изводи тврдњу и ако се пронађе изузетак, он се не баца одмах, већ се наставља све док не позовемо методу ассертАлл () да баци све ухваћене изузетке.
Паметно је користити различите објекте класе ‘СофтАссерт’ за сваки тест случај.
Размотрите тест случај да бисте потврдили наслов странице
У примеру испод, креирана су два објекта класе ‘СофтАссерт’ за употребу у два различита тест случаја.
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 } }
Конзола:
Стварни наслов: Амазон.цом: Интернет куповина електронике, одеће, рачунара, књига, ДВД-а и још много тога
Тврдња 1 се извршава
Приказује се икона
Тврдња 2 је извршена
јава.ланг.АссертионЕррор: Следеће тврдње нису успеле:
очекивано (Добродошли у Амазон), али пронађено (Амазон.цом: Интернет куповина електронике, одеће, рачунара, књига, ДВД-а и још много тога)
Из конзоле можемо да схватимо да, иако је тврдња била неуспешна у првом тест случају (верифиТитле), извршење се наставило до следећег реда у коме је исписана изјава „Извршена је тврдња 1“ и тек након што је позван софтАссерт, изузетак је бачен.
Када користити тврду и меку тврдњу?
Ако требате извршити све кораке тест случаја који ће се извршити чак и након што тврдња не успије, а такође желите пријавити изузетак тврдње, онда се одлучите за употребу софтверских тврдњи. Коришћење софтверских тврдњи у тест скриптама је добра пракса и ефикасан начин руковања извршењем теста
Ако желите да се извршавање вашег тест случаја настави тек након што се донесе тврдња ( На пример, Да бисте верификовали исправну пријаву и тек онда извршили остале кораке), затим користите Хард Ассертионс.
Јунит Ассерт методе
У наставку су детаљно објашњени различити типови метода Јунит Ассерт.
# 1) ассертЕкуалс
метода ассертекуалс упоређује очекивани резултат са стварним резултатом. Баца АссертионЕррор ако се очекивани резултат не подудара са резултатом стварног резултата и прекида извршење програма методом ассерт екуалс.
Синтакса:
public static void assertEquals(String expected, String actual)
Пример:
Стринг очекује = “хттпс://ввв.гоогле.цом”;
Стринг ацтуалУРЛ = „хттпс://ввв.гоогле.цом“;
Ассерт.ассертЕкуалс (очекивано, стварноУРЛ);
# 2) ассертТруе
ассерттруе метода тврди да је наведени услов тачан.
Потребна су два параметра, тј. Један је порука, а други је услов на који треба применити тврдњу. Баца АссертионЕррор ако услов прослеђен методи ассерттруе није задовољен.
Синтакса:
public static void assertTrue(java.lang.String message, boolean condition)
порука - Порука која ће се приказати у случају грешке у тврдњи.
услов - Услов против којег треба применити тврдњу.
Пример:
Ассерт.ассертТруе („Испитати истиниту тест поруку“, тачно);
# 3) ассертФалсе
ассерт фалсе метода тврди да је наведени услов нетачан.
Потребна су два параметра, тј. Један је порука, а други је услов на који треба применити тврдњу. Баца АссертионЕррор ако услов прослеђен методи ассертфалсе није задовољен.
Синтакса:
public static void assertFalse(java.lang.String message, boolean condition)
порука - Порука која ће се приказати у случају грешке у тврдњи.
услов - Услов против којег треба применити тврдњу.
Пример:
Ассерт.ассертФалсе (нетачно „Утврдити лажну тест поруку“);
# 4) ассертНулл
ассерт нулл се користи за проверу садржи ли наведени објект нулл вредност. Узима објекат као параметар и баца АссертионЕррор ако наведени објекат не садржи нулл вредност.
Синтакса:
public static void assertNull(Object object)
Пример:
ДемоЦласс демо = нови ДемоЦласс ();
Ассерт.ассертНулл (демо);
# 5) ассертНотНулл
Утврдите да није нуло користи се за потврду да наведени објект не садржи нулл вриједност. Узима објекат као параметар и баца АссертионЕррор ако наведени објекат не садржи нулл вредност.
Синтакса:
public static void assertNotNull(Object object)
Пример:
ДемоЦласс демо = нови ДемоЦласс ();
Ассерт.ассертНотНулл (демо);
# 6) ассертСаме
потврдити исти метод проверава да ли се два објекта наведена као параметри односе на исти објекат. Баца АссертионЕррор ако се наведени објекти не односе на исти објекат са приложеном поруком.
Имајте на уму да Ассерт исти упоређује само референце објеката, али не и стварне вредности.
Синтакса:
public static void assertSame(String message, Object expected,Object actual)
Пример:
ДемоЦласс1 демо1 = нови ДемоЦласс1 ();
ДемоЦласс2 демо2 = нови ДемоЦласс2 ();
Ассерт.ассертСаме („Два објекта су једнака“, демо1, демо2);
# 7) ассертНотСаме
потврдити да није исто проверава да два објекта нису једнака. Ако се два објекта односе на исти објекат, тада ће се појавити АссертионЕррор.
Имајте на уму да метода ассерт нот исти упоређује референце објеката, а не вредности присутне у објектима.
Синтакса:
public static void assertNotSame(String message, Object expected, Object actual)
Пример:
ДемоЦласс1 демо1 = нови ДемоЦласс1 ();
ДемоЦласс2 демо2 = нови ДемоЦласс2 ();
Ассерт.ассертНотСаме („Два објекта нису једнака“, демо1, демо2);
# 8) ассертАрраиЕкуалс
ассерт екуалс потврђује да су два низа објеката једнака. Ако оба нива садрже нулл вредности, тада се сматрају једнаким. Овај метод баца АссертионЕррор са приложеном поруком ако се оба низа објеката не сматрају једнаким.
Синтакса:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
порука - Порука која се приказује у случају грешке у тврдњи.
очекивано - Низ објеката.
стварни - Низ објеката.
Пример:
Стринг () очекује се = {„Манго“, „Аппле“, „Банана“}
Стринг () стварни = {„Манго“, „Аппле“, „Банана“}
Ассерт.ассертАрраиЕкуалс (очекивано, стварно);
ТестНГ методе потврђивања
ТестНГ методе потврде биће исте као методе утврђивања Јунит-а о којима је раније било речи. Главни разлика између Јунита и ТестНГ-а методе тврђења долазе на пут руковања тврдњама.
ТестНГ пружа напредније технике руковања тврдњама попут зависних класа, групних тестова, параметарских тестова итд.
Видео водичи о методама потврђивања ТестНГ
И део
ИИ део
Део ИИИ
# 1) ассертЕкуалс
Овом методом се тврди да ли су две вредности података једнаке. Можемо упоређивати вредности различитих типова података као што су стринг, боолеан, интегер. итд. Кад год су очекиване и стварне вредности исте, тада тврдња пролази без изузетка. Ако нису, баца се АссертионЕррор.
Употреба : Ова врста тврдње користи се за верификацију случаја када су подаци приказани на веб страници очекивани или према наведеном захтеву.
Синтакса:
Assert.assertEquals(actual,expected)
Параметри:
Тренутни - Стварна вредност коју очекујемо од аутоматизације.
Очекиван –Очекивана вредност.
Пример: Да бисмо то верификовали, ако Амазон почетна страница има наслов који каже: „Амазон.цом: Интернет куповина електронике, одеће, рачунара, књига, ДВД-а и осталог ’
@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”); }
Конзола:
Тврдња је положена.
ПРОШЛО: ВерифиТитле
У горњем примеру, два низа су верификована за једнаке вредности. Исто тако, може се проверити једнакост осталих типова података попут целих бројева, логичких вредности итд.
# 2) ассертНотЕкуалс
ассертНотЕкуалс се користи за проверу да ли су две вредности података једнаке. Супротно је функционисању ассертЕкуалс Ассертион. Кад год се подударају очекиване и стварне вредности, тврдња не успева са изузетком и означава тест случај као „неуспешан“.
Употреба : Ово се користи у случајевима када желимо да верификујемо да ли су сви подаци јединствени на веб страници. На пример , телефонски именик, где не постоје два иста броја телефона.
Синтакса:
Assert.assertNotEquals(actual,expected)
Параметри:
Тренутни - Стварна вредност коју очекујемо од аутоматизације.
Очекиван - Очекивана вредност.
Пример: Да бисте проверили да ли су пин кодови два различита подручја јединствени / нису исти.
@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”); }
Конзола:
Два јединствена пин кодова су: 600012 && 600001
Тврдња је положена.
ПРОШЛО: верифиАссертНотЕкуал
# 3) ассертТруе
ассертТруе се користи за проверу да ли је дати логички услов тачан. Ова тврдња враћа труе ако наведени услов прође, ако не, онда се избацује грешка у тврдњи.
Синтакса:
Assert.assertTrue(BooleanCondition);
Параметри :
БоолеанЦондитион - Услов за проверу да ли је његов тип враћања тачан.
Употреба :
Пример: Да бисте проверили да ли је дугме Пријава присутно на почетној страници Амазон.ин (заложите се за приказ дугмета).
Assert.assertTrue(SignIn.isDisplayed());
Овде проверава да ли је логички услов - СигнИн.ИсДисплаиед () враћа ТАЧНО.
Пример: Да бисте проверили да ли је дугме присутно на веб страници.
унутрашњи спој леви спој десни спој
@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'); }
Конзола:
Приказује се дугме
ПРОШЛО: верифиАссертТруе
# 4) ассертФалсе
ассертФалсе се користи за проверу да ли је дати логички услов нетачан. Другим речима, тип повратка датог логичког услова требао би бити Фалсе. Ова тврдња пролази ако наведени услов има ФАЛСЕ тип повратка, ако не, избациће се грешка тврдње.
Синтакса:
Assert.assertFlase(BooleanCondition);
Параметри :
БоолеанЦондитион - Услов за проверу да ли је његов тип повратка нетачан.
Употреба : Сценарио где се може користити је верификација да ли елемент није присутан на веб страници након одређене радње.
Пример 1: Дугме за пријаву не би требало да се приказује након пријављивања.
Assert.assertFalse(SignIn.isDisplayed());
Ово тврди да ли је логичко стање - СигнИн.ИсДисплаиед () враћа ФАЛСЕ.
Пример 2:
Да бисте проверили да ли див нестаје након одређене радње. Дакле, овде проверавамо да див није приказан, или другим речима, потврђујемо да је на приказаном див стању нетачно стање.
@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'); }
Конзола:
Цаптцха див је пригушен са екрана
ПРОШЛО ЈЕ:верифиАссертФалсе
# 5) ассертНулл
Ова тврдња се користи за проверу да ли објекат има нулту повратну вредност. Другим речима, проверава се да ли је резултат нула. Када је објекат Нулл, тврдња се преноси без икаквог изузетка.
Синтакса:
AssertNull(Object)
Параметри :
Предмет - Било која вредност података која садржи нулу вредност.
Употреба:
Пример 1:
Тврдите ако је низ нулл.
@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:
Уверите се да ли је вредност покретачког програма нула пре покретања цхроме управљачког програма.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Овде је објекат управљачког програма ништаван јер није покренут. Отуда ће АссертНулл (дривер) бити успешан јер је верификовао да ли објект „дривер“ има нулл вредност
како отворити дат датотеку
# 6) ассертНотНулл
Ова тврдња очекује ваљан тип повратка, осим вредности Нулл. Другим речима, проверава да ли објекат није Нулл. Тип повратка може бити логички, низ, цео број, листа итд. Када објекат није нулл, прослеђује се тврдња, ако не, баца се АссертионЕррор.
Синтакса:
AssertNotNull(Object)
Параметри :
Предмет - Било која вредност података која садржи било коју вредност података.
Употреба:
Пример 1: Ассерт је низ који садржи неке податке. Односно, није Нулл.
@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: Уверите се да објекат управљачког програма није ништаван након покретања ФирефокДривер-а.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Овде се објекат дривер покреће за фирефок дривер и стога објект „дривер“ има неку вредност пошто није покренут. Отуда ће АссертНотНулл (дривер) успети јер је верификовао да ли објект „дривер“ нема нулл вредност
Кликните овде за узорке тест случајева.
Пример програма за тврдње
Утврдити једнако:
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'); } }
Објашњење кода:
Горњи код демонстрира употребу методе АссертЕкуалс једноставним терминима.
- Као што је раније речено, потврђивање једнакости узима два параметра, тј. Очекивани резултат и стварни резултат. Ако се очекивани резултат не подудара са резултатом стварног резултата, избациће се грешка у тврдњи и извршење програма ће се завршити методом ассерт екуалс.
- Горњи код упоређује кориснички дефинисану вредност низа са очекиваном вредношћу низа.
- Имајте на уму да ће у стварном времену стварни резултат бити кориснички дефинисана операција за коју ће се вредност дохваћати током извођења и преносити као параметар у методу ассерт екуалс.
Тврдите тачно:
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(); } }
Објашњење кода:
Горњи код показује употребу методе ассертТруе.
- У почетку преносимо очекивани наслов странице на променљиву. Затим инстанцирамо објекат управљачког програма за Фирефок и преусмеримо га на веб страницу - хттпс://ввв.гоогле.цом
- Касније, користећи методу ассертсТруе упоређујемо наслов отворене странице са насловом очекиваног наслова странице. Ако се наслов отворене странице не подудара са насловом очекиваног наслова, бациће се грешка у тврдњи и извршавање програма ће се прекинути методом ассертТруе.
- Горњи код ће се успешно извршити само када се стварни наслов странице подудара са насловом очекиваног наслова странице.
Утврди нетачно:
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(); } }
Објашњење кода:
Горњи код показује употребу методе ассертфалсе.
- У почетку прослеђујемо очекивани наслов странице променљивој, а затим инстанцирамо објекат управљачког програма за Фирефок и прелазимо на веб страницу - хттпс://ввв.гоогле.цом
- Касније, користећи методу ассертфалсе, упоређујемо наслов отворене странице са насловом очекиваног наслова странице. Ако се наслов отворене странице подудара са насловом очекиваног наслова, тада ће се избацити грешка у тврдњи и извршавање програма ће се прекинути методом ассерт фалсе.
- Горњи код ће се успешно извршити само када се стварни наслов странице не подудара са насловом очекиваног наслова странице.
Крај до краја код за тврдње
Доље је дат примерак кода за крај за тврдње. Следећи сценарио користили смо ради једноставности.
Сценарио:
- Отворите веб страницу: хттпс://ввв.гоогле.цом у прегледачу Фирефок.
- Проверите да ли је отворени наслов странице еквивалентан очекиваном наслову странице помоћу методе ассерттруе.
- У оквир за претрагу унесите кључну реч за претрагу: Селен.
- Притисните тастер Ентер на тастатури.
- Проверите да ли је отворени наслов странице на страници резултата претраживања еквивалентан називу очекиваног наслова странице помоћу методе ассертекуалс и ассертфалсе.
- Затворите прегледач.
Пример кода:
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(); } }
Излаз кода:
У почетку ће се отворити прозор прегледача Фирефок са веб страницом: хттпс://ввв.гоогле.цом. Метод Ассерттруе ће проверити да ли се отворени наслов странице подудара са насловом очекиваног наслова странице - Гоогле.
Скрипта ће унети кључну реч за претрагу као Селениум и притиснути дугме ентер.
Методе Ассертфалсе и ассертекуалс упоређују се ако се стварни наслов странице екрана резултата претраживања подудара са насловом очекиваног наслова - „селен - Гоогле претрага“. Тада ће се прегледач затворити методом дривер.цлосе.
Излаз конзоле:
Текст дат у наставку биће излаз конзоле на Ецлипсе ИДЕ
Избегавајте уобичајене грешке док користите Ассерт Цласс
1. Претпоставимо да су у вашем пројекту конфигурисане библиотеке ЈУнит, ТестНГ и питхон
два . Али у својој скрипти користите анотацију ТестНГ и грешком одабирете Јунит Ассертион, тада ће ваша класа Ассерт бити застарела. Погледајте доњи снимак екрана
3 Стога је веома важно одабрати одговарајућу класу Ассерт, за ТестНг одаберите једину организациону класу Ассерт класе
Четири. За Јунит одаберите орг.јунит.Ассерт класу и тако даље.
5. Да бисмо извршили Софт Ассертион, морамо обавезно позвати методу ассертАлл ()
6. Када тврдња не успе, бациће грешку у тврдњи, а не изузетак
Закључак
Овај чланак о Тврдњама у селенију можемо закључити следећим упутама:
- Тврдња се користи за поређење стварног резултата апликације са очекиваним резултатом.
- Сматра се да је тест случај положен само ако су испуњене све тврдње.
- Метод АссертЕкуалс упоређује очекивани резултат са стварним резултатом. Баца АссертионЕррор ако се очекивани резултат не подудара са резултатом стварног резултата и прекида извршење програма методом ассертекуалс.
- Метод АссертТруе тврди да је наведени услов тачан. Баца АссертионЕррор ако услов прослеђен методи ассерттруе није задовољен.
- АссертФалсе метода тврди да је наведени услов нетачан. Баца АссертионЕррор ако није испуњен услов прослеђен за потврђивање лажне методе.
- Методе АссертЕкуалс, АссертТруе и АссертФалсе су најчешће коришћене тврдње у селенијуму.
У предстојећи водич , разговараћемо о различитим примерима који се користе у пројектним сценаријима у реалном времену и разумећемо како се тврдње користе у складу са сврхом.
Надамо се да је овај чланак обогатио ваше знање о тврдњама у селену !!
=> Прочитајте серију Еаси Траининг за селен.
Препоручено читање
- Увод у ЈУнит Фрамеворк и његову употребу у сценаријуму Селениум - Водич за селен # 11
- Како се користи ТестНГ Фрамеворк за креирање скрипта за селен - ТестНГ Селениум Туториал # 12
- Научите како да користите напомене ТестНГ у селену (са примерима)
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- Интеграција селена са ЈМетером
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Најпопуларнији оквири за аутоматизацију тестова са разлозима за и против - Селен Туториал # 20
- 30+ најбољих водича за селен: научите селен на стварним примерима