assertions selenium using junit
Този урок за селен за твърдения обяснява какво представляват твърдения в селен и различни видове твърдения и методи за твърдение, използващи рамки Junit и TestNG:
което не е пример за извличане на данни?
Твърденията се използват за валидиране на тестов случай и ни помага да разберем дали тестовият случай е преминал или не. Твърдението се счита за изпълнено, ако действителният резултат от приложението съвпада с този на очаквания резултат.
Докато автоматизираме уеб приложенията с помощта на Selenium, ние трябва да потвърдим нашите тестове, за да проверим дали те работят според очакванията или не(тоест, ако резултатът от тест е успешно / неуспешен).
=> Погледнете тук ръководството за начинаещи за селен.
Счита се, че тестът е приет само ако всички твърдения са изпълнени. Твърденията в Selenium могат да бъдат обработвани чрез предварително дефинирани методи на рамки Junit и TestNG, които ще бъдат обяснени подробно в тази статия.
Какво ще научите:
- Твърдения в селен
- Видове твърдения в селен
- Методи за потвърждаване на Junit
- Методи за потвърждаване на TestNG
- Примерни програми за твърдения
- Заключение
Твърдения в селен
Твърденията се използват за извършване на различни видове проверки в тестовите случаи, което от своя страна ни помага да решим дали тестовият случай е преминал или не. WСчитайте теста за успешен, ако се изпълнява без никакво изключение.
Видео урок за твърдения
Видове твърдения в селен
В Selenium има два вида твърдения и категоризацията зависи от това как се държи твърдението, след като условието е преминало или не.
Тук бихме обсъдили два вида твърдения в Селен :
- Твърди твърдения
- Меки твърдения
Щракнете тук за проба тестови случаи за тестване на твърдения.
# 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(); }
В примера променливата ‘ActualTitle’ ще съдържа текста на заглавието от автоматизация. ‘ExpectedTitle’ съдържа очакваните низови данни. Assert.assertEquals () проверява дали и двата текста са равни. Горният тест ще премине и ще продължи към следващия ред на изпълнение, тъй като действителният текст и очакваният текст са еднакви.
Конзола:
Утвърждаването премина.
ПРЕХОДЕН: VerifyTitle
Същият тестов случай, когато се провали, ще изведе изключение и ще спре изпълнението в този случай.
Сега нека променим Очакваното заглавие на грешното.
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(); }
Конзола:
java.lang.AssertionError:очаквано (Добре дошли в Amazon)нонамерено (Amazon.com: Онлайн пазаруване за електроника, облекло, компютри, книги, DVD и др)
От конзолата можем да видим, че операторът за печат е пропуснат (System.out.println), тъй като в оператора Assert е открит отказ и той е създал изключение.
# 2) Меки твърдения
Мекото твърдение продължава със следващата стъпка от изпълнението на теста, дори ако условието за твърдение не е изпълнено.
Меките твърдения са видът на твърдения, които не изпращат изключение автоматично, когато дадено твърдение се провали, освен ако не е поискано. Това е полезно, ако правите множество проверки във форма, от които само няколко проверки имат пряко влияние върху решаването на състоянието на тестовия случай.
Тук използваме клас, наречен SoftAssert и методът assertAll () се извиква, за да хвърли всички изключения, уловени по време на изпълнение. Когато се използва softAssert, той извършва твърдение и ако се намери изключение, то не се изхвърля веднага, а продължава, докато не извикаме метода assertAll (), за да хвърлим всички уловени изключения.
Разумно е да използвате различни обекти от клас ‘SoftAssert’ за всеки тестов случай.
Помислете за тестовия случай, за да утвърдите заглавието на страницата
В примера по-долу са създадени два обекта от клас „SoftAssert“, които да се използват в два различни тестови случая.
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 } }
Конзола:
Действително заглавие: Amazon.com: Онлайн пазаруване за електроника, облекло, компютри, книги, DVD и др
Твърдение 1 се изпълнява
Показва се икона
Твърдение 2 е изпълнено
java.lang.AssertionError: Следните твърдения са неуспешни:
очаквано (Добре дошли в Amazon), но намерено (Amazon.com: Онлайн пазаруване за електроника, облекло, компютри, книги, DVD и др.)
От конзолата можем да разберем, че въпреки че твърдението е неуспешно в първия тестов случай (verifyTitle), изпълнението продължава към следващия ред, в който е отпечатан изразът - „Изпълнение на твърдение 1“ и само след извикване на softAssert изключението беше хвърлено.
Кога да използвам твърдо и меко твърдение?
Ако трябва да изпълните всички стъпки от тестовия случай, които да бъдат изпълнени, дори след като дадено твърдение не успее и искате също да съобщите за изключение на твърдение, тогава изберете използването на Soft Assertions. Използването на Soft Assertions в тестовите скриптове е добра практика и ефективен начин за справяне с изпълнението на теста
Ако искате изпълнението на тестовия ви случай да продължи само след като е предадено твърдение ( Например, За да проверите валидното влизане и едва след това изпълнете останалите стъпки), след това използвайте твърди твърдения.
Методи за потвърждаване на Junit
Различните видове методи на Junit Assert са обяснени по-долу подробно.
# 1) assertEquals
методът assertequals сравнява очаквания резултат с този на действителния резултат. Той хвърля AssertionError, ако очакваният резултат не съвпада с този на действителния резултат и прекратява изпълнението на програмата по метода assert equals.
Синтаксис:
public static void assertEquals(String expected, String actual)
Пример:
Очаква се низ = “https://www.google.com”;
String actualURL = “https://www.google.com”;
Assert.assertEquals (очаквано, действителноURL);
# 2) assertTrue
Методът asserttrue твърди, че определено условие е вярно.
Той отнема два параметъра, т.е. единият е съобщението, а другият е условието, спрямо което трябва да се приложи твърдението. Изхвърля AssertionError, ако условието, предадено на метода asserttrue, не е изпълнено.
Синтаксис:
public static void assertTrue(java.lang.String message, boolean condition)
съобщение - Съобщение, което се показва в случай на грешка при твърдение.
условие - условие, спрямо което трябва да се приложи твърдението.
Пример:
Assert.assertTrue („Пробното съобщение за утвърждаване на истината“, вярно);
# 3) assertFalse
assert false метод твърди, че определено условие е false.
Той приема два параметъра, т.е. единият е съобщението, а другият е условието, спрямо което трябва да се приложи твърдението. Изхвърля AssertionError, ако условието, предадено на метода assertfalse, не е изпълнено.
Синтаксис:
public static void assertFalse(java.lang.String message, boolean condition)
съобщение - Съобщение, което се показва в случай на грешка при твърдение.
условие - условие, спрямо което трябва да се приложи твърдението.
Пример:
Assert.assertFalse („Асертиране на фалшиво тестово съобщение“ false);
# 4) assertNull
assert null се използва за проверка дали предоставеният обект съдържа нулева стойност. Той взема обект като параметър и изхвърля AssertionError, ако предоставеният обект не съдържа нулева стойност.
Синтаксис:
public static void assertNull(Object object)
Пример:
DemoClass demo = нов DemoClass ();
Assert.assertNull (демо);
# 5) assertNotNull
assert not null се използва за проверка, че предоставеният обект не съдържа нулева стойност. Той взема обект като параметър и изхвърля AssertionError, ако предоставеният обект не съдържа нулева стойност.
Синтаксис:
public static void assertNotNull(Object object)
Пример:
DemoClass demo = нов DemoClass ();
Assert.assertNotNull (демо);
# 6) assertSame
утвърждаване на същия метод проверява дали два обекта, предоставени като параметри, се отнасят за един и същ обект. Той хвърля AssertionError, ако предоставените обекти не се отнасят до същия обект с предоставеното съобщение.
Моля, имайте предвид, че Assert съпоставя само препратките на обекти, но не и действителните стойности.
Синтаксис:
public static void assertSame(String message, Object expected,Object actual)
Пример:
DemoClass1 demo1 = нов DemoClass1 ();
DemoClass2 demo2 = нов DemoClass2 ();
Assert.assertSame („Двата обекта са равни“, demo1, demo2);
# 7) assertNotSame
утвърждаване не същото проверява, че два обекта не са равни. Ако два обекта се отнасят към един и същ обект, тогава ще бъде хвърлена AssertionError.
Моля, обърнете внимание, че методът assert not same сравнява препратките на обекти, а не стойностите, присъстващи в обектите.
Синтаксис:
конвертирате YouTube в mp3 по-дълго от 20 минути
public static void assertNotSame(String message, Object expected, Object actual)
Пример:
DemoClass1 demo1 = нов DemoClass1 ();
DemoClass2 demo2 = нов DemoClass2 ();
Assert.assertNotSame („Двата обекта не са равни“, demo1, demo2);
# 8) assertArrayEquals
assert equals проверява дали два обектни масива са равни. Ако и двата масива съдържат нулеви стойности, тогава те се считат за равни. Този метод изхвърля AssertionError с предоставеното съобщение, ако и двата масива на обекта не се считат за равни.
Синтаксис:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
съобщение - Съобщение, което се показва в случай на грешка в твърдението.
очаквано - масив от обекти.
действително - масив от обекти.
Пример:
Низ () се очаква = {„Манго“, „Ябълка“, „Банан“}
Низ () действителен = {„Манго“, „Ябълка“, „Банан“}
Assert.assertArrayEquals (очаквано, действително);
Методи за потвърждаване на TestNG
Методите TestNG Assert ще бъдат същите като методите за твърдение на Junit, които са разгледани по-горе. Майорът разлика между Junit и TestNG методите за твърдение се затрудняват при обработката на твърдения.
TestNG предоставя по-усъвършенствани техники за обработка на твърдения като зависими класове, групови тестове, параметризирани тестове и др.
Видео уроци за методите за потвърждаване на TestNG
Част I
Част II
Част III
# 1) assertEquals
Този метод се използва за твърдение, ако две стойности на данни са равни. Можем да сравним стойностите на различни типове данни като низ, булево, цяло число. и т.н. Винаги, когато очакваните и действителните стойности са еднакви, тогава твърдението преминава без изключение. Ако не са, тогава се хвърля AssertionError.
Употреба : Този вид твърдение се използва за проверка на случая, когато данните, показани на уеб страницата, са според очакванията или според посоченото изискване.
Синтаксис:
Assert.assertEquals(actual,expected)
Параметри:
Текущ - Действителната стойност, която очакваме от автоматизацията.
Очакван –Очаквана стойност.
Пример: За да проверите това, ако началната страница на Amazon има заглавие, казващо „Amazon.com: Онлайн пазаруване за електроника, облекло, компютри, книги, DVD и др. “
@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”); }
Конзола:
Утвърждаването премина.
ПРЕХОДЕН: VerifyTitle
В горния пример бяха проверени два низа за равни стойности. По същия начин може да се провери равенството на други типове данни като цяло число, булево и т.н.
# 2) assertNotEquals
assertNotEquals се използва за проверка дали две стойности на данни не са равни. То е точно обратното на функционирането на assertEquals Assertion. Винаги, когато очакваните и действителните стойности съвпадат, твърдението се проваля с изключение и маркира тестовия случай като „неуспешен“.
Употреба : Това се използва в случаите, когато искаме да проверим дали всяка информация е уникална на уеб страница. Например , телефонен указател, където няма 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
Утвърждаването премина.
ПРИЛОЖЕН: verifyAssertNotEqual
# 3) assertTrue
assertTrue се използва за проверка дали дадено булево условие е вярно. Това твърдение връща вярно, ако посоченото условие премине, ако не, тогава се извежда грешка в твърдение.
Синтаксис:
Assert.assertTrue(BooleanCondition);
Параметри :
BooleanCondition - Условие да се провери дали неговият тип на връщане е True.
Употреба :
Пример: За да проверите дали бутонът Вход е наличен на началната страница на Amazon.in (заявете за показване на бутона).
Assert.assertTrue(SignIn.isDisplayed());
Тук той проверява дали булевото условие - Вход. Показва се () връща TRUE.
Пример: За да проверите дали на уеб страницата има бутон.
@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'); }
Конзола:
Бутонът се показва
ПРИЛОЖЕН: verifyAssertTrue
# 4) assertFalse
assertFalse се използва за проверка дали дадено булево условие е невярно. С други думи, типът на връщане на даденото булево условие трябва да е False. Това твърдение преминава, ако посоченото условие има FALSE тип на връщане, ако не, се появява грешка в твърдението.
Синтаксис:
Assert.assertFlase(BooleanCondition);
Параметри :
BooleanCondition - Условие да се провери дали неговият тип на връщане е False.
Употреба : Сценарий, при който може да се използва, е да се провери дали елемент не присъства на уеб страница след определено действие.
Пример 1: Бутонът за вход не трябва да се показва след влизане.
Assert.assertFalse(SignIn.isDisplayed());
Това твърди дали булевото условие - Вход. Показва се () връща FALSE.
Пример 2:
За да проверите дали div изчезва след определено действие. И така, тук проверяваме, че div не се показва, или с други думи, твърдим за фалшиво състояние на показания div.
@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'); }
Конзола:
Captcha div затъмнява от екрана
ПРЕМИНАЛ:verifyAssertFalse
# 5) assertNull
Това твърдение се използва, за да се провери дали обектът има нулева върната стойност. С други думи, той проверява дали резултатът е нулев. Когато обектът е Null, твърдението се предава без никакво изключение.
Синтаксис:
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'); }
Тук обектът на драйвера е нулев, тъй като не е иницииран. Следователно AssertNull (драйвер) ще бъде успешен, тъй като е проверил дали обектът ‘driver’ съдържа нулева стойност
# 6) assertNotNull
Това твърдение очаква валиден тип на връщане, различен от стойността Null. С други думи, той проверява за обект, ако не е Null. Типът на връщане може да бъде Boolean, низ, цяло число, списък и т.н. Когато обектът не е нулев, Assertion се подава, ако не, се изхвърля AssertionError.
Синтаксис:
AssertNotNull(Object)
Параметри :
Обект - Всяка стойност на данните, която съдържа някаква стойност на данните.
Употреба:
Пример 1: Assert е низ, съдържащ някои данни. Тоест не е 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: Проверете дали обектът на драйвера не е нулев, след като стартирате FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Тук обектът драйвер се инициира към драйвер на firefox и следователно обектът „драйвер“ съдържа някаква стойност, тъй като не е иницииран. Следователно AssertNotNull (драйвер) ще бъде успешен, тъй като е проверил дали обектът ‘driver’ няма нулева стойност
Щракнете тук за примерни тестови случаи.
Примерни програми за твърдения
Утвърждаване на равни:
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'); } }
Обяснение на кода:
Горният код демонстрира използването на метода AssertEquals с прости думи.
- Както беше обсъдено по-рано, утвърждаването е равно на два параметъра, т.е.очакван резултат и действителен резултат. Ако очакваният резултат не съвпада с този на действителния резултат, тогава ще бъде хвърлена грешка в твърдението и изпълнението на програмата ще бъде прекратено по метода на твърдение за равно.
- Горният код сравнява дефинираната от потребителя стойност на низа с очакваната стойност на низа.
- Моля, обърнете внимание, че в реално време действителният резултат ще бъде дефинирана от потребителя операция, за която стойността ще бъде извлечена по време на изпълнение и предадена като параметър на метода за твърдение за равно.
Потвърдете вярно:
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(); } }
Обяснение на кода:
Горният код демонстрира използването на метода assertTrue.
- Първоначално предаваме заглавието на очакваната страница на променлива. След това създаваме екземпляр на обект на драйвер за Firefox и го навигираме до уеб страницата - https://www.google.com
- По-късно, използвайки метода assertsTrue, ние сравняваме заглавието на отворената страница с това на очакваното заглавие на страницата. Ако заглавието на отворената страница не съвпада с това на очакваното заглавие, тогава ще бъде хвърлена грешка в твърдението и изпълнението на програмата ще бъде прекратено по метода assertTrue.
- Горният код ще бъде изпълнен успешно само когато действителното заглавие на страницата съвпада с това на очакваното заглавие на страницата.
Потвърждавам невярно:
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(); } }
Обяснение на кода:
Горният код демонстрира използването на метода assertfalse.
- Първоначално предаваме заглавието на очакваната страница на променлива и след това създаваме екземпляр на обект от драйвера на firefox и навигираме до уеб страницата - https://www.google.com
- По-късно, използвайки метода assertfalse, сравняваме заглавието на отворената страница с това на очакваното заглавие на страницата. Ако отвореното заглавие на страницата съвпада с това на очакваното заглавие, тогава ще бъде изведена грешка в твърдението и изпълнението на програмата ще бъде прекратено с метода за твърдение false.
- Горният код ще бъде изпълнен успешно само когато действителното заглавие на страницата не съвпада с това на очакваното заглавие на страницата.
Код от край до край за твърдения
По-долу е даден примерен код от край до край за твърдения. Използвахме следния сценарий за целите на простотата.
Сценарий:
- Отворете уеб страницата: https://www.google.com в браузъра Firefox.
- Проверете дали заглавието на отворената страница е еквивалентно на това на очакваното заглавие на страницата, като използвате метода asserttrue.
- В текстовото поле за търсене въведете ключовата дума за търсене: Селен.
- Натиснете бутона Enter на клавиатурата.
- Проверете дали заглавието на отворената страница на страницата с резултати от търсенето е еквивалентно на това на очакваното заглавие на страницата, използвайки метода assertequals и метода assertfalse.
- Затворете браузъра.
Примерен код:
вмъкване сортиране c ++ код
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(); } }
Изход на код:
Първоначално ще се отвори прозорецът на браузъра Firefox с уеб страницата: https://www.google.com. Методът Asserttrue ще провери дали отвореното заглавие на страницата съвпада с това на очакваното заглавие на страницата - Google.
Скриптът ще въведе ключовата дума за търсене като Селен и натисне бутона за въвеждане.
Методите Assertfalse и assertequals се сравняват, ако действителното заглавие на страницата на екрана с резултати от търсенето съвпада с това на очакваното заглавие - „селен - Google Търсене“. След това браузърът ще бъде затворен чрез метода driver.close.
Конзолен изход:
Текстът, даден по-долу, ще бъде изходът на конзолата на Eclipse IDE
Избягвайте често срещани грешки, докато използвате Assert Class
1. Да предположим, че вашият проект има конфигурирани библиотеки JUnit, TestNG и python
две . Но във вашия скрипт използвате анотация TestNG и по погрешка избирате Junit Assertion, а след това вашият клас Assert ще бъде остарял. Вижте по-долу екранна снимка
3. Така че е много важно да изберете правилния клас за уведомяване, за TestNg изберете единствения клас за проверка на одобрение
Четири. За Junit изберете org.junit.Assert клас и така нататък.
5. За да извършим Soft Assertion, трябва да извикаме задължително метода assertAll ()
6. Когато дадено твърдение не успее, то ще хвърли грешка в твърдението, не е изключение
Заключение
Можем да завършим тази статия за Утвърждения в Селен със следните указатели:
- Твърдение се използва за сравняване на действителния резултат на приложение с очаквания резултат.
- Счита се, че тестът е приет само ако всички твърдения са изпълнени.
- Методът AssertEquals сравнява очаквания резултат с този на действителния резултат. Той хвърля AssertionError, ако очакваният резултат не съвпада с този на действителния резултат и прекратява изпълнението на програмата по метода assertequals.
- Методът AssertTrue твърди, че определено условие е вярно. Изхвърля AssertionError, ако условието, предадено на метода asserttrue, не е изпълнено.
- Методът AssertFalse твърди, че определено условие е невярно. Изхвърля AssertionError, ако условието, предадено за утвърждаване на false метод, не е изпълнено.
- Методите AssertEquals, AssertTrue и AssertFalse са най-често използваните твърдения в Селен.
В предстоящ урок , ще обсъдим различни примери, използвани в сценарии на проекти в реално време и ще разберем как се използват твърденията според целта.
Надяваме се, че тази статия е обогатила вашите познания за твърдения в селен !!
=> Прочетете серията Easy Training Training.
Препоръчително четене
- Въведение в JUnit Framework и нейното използване в Selenium Script - Селен Урок # 11
- Как да използвам TestNG Framework за създаване на селенови скриптове - TestNG Selenium Tutorial # 12
- Научете как да използвате TestNG анотации в селен (с примери)
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Интеграция на селен с JMeter
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Най-популярните рамки за автоматизация на тестове с плюсове и минуси на всеки - Урок № 20 за селен
- 30+ най-добри урока за селен: Научете селен с реални примери