assertions selenium using junit
Цей підручник із твердження про селен пояснює, що таке твердження в селені, а також різні типи тверджень та методи твердження за допомогою платформ Junit та TestNG:
найкраще програмне забезпечення для налаштування ПК 2019
Твердження використовуються для перевірки тестового випадку і допомагають нам зрозуміти, пройшов тестовий випадок чи не вдалося. Твердження вважається виконаним, якщо фактичний результат програми збігається з результатом очікуваного результату.
Під час автоматизації веб-додатків за допомогою Selenium нам потрібно перевірити наші тести, щоб перевірити, чи працюють вони належним чином(тобто, якщо результат тесту пройдений / невдалий).
=> Погляньте тут на керівництво для початківців селену.
Тестовий випадок вважається складеним, лише якщо всі твердження були дотримані. Твердження в Selenium можна обробляти заздалегідь визначеними методами фреймворків Junit та TestNG, що буде детально пояснено в цій статті.
Що ви дізнаєтесь:
- Твердження в селені
- Типи тверджень у селені
- Методи ствердження Junit
- Методи підтвердження TestNG
- Зразки програм для тверджень
- Висновок
Твердження в селені
Твердження використовуються для проведення різних видів перевірок у тестових випадках, що, у свою чергу, допомагає нам вирішити, пройшов тестовий випадок чи не. We вважати тест успішним, якщо він працює без будь-яких винятків.
Відео-посібник із тверджень
Типи тверджень у селені
У 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’ буде містити текст заголовка від автоматизації. „Очікуваний заголовок” містить очікувані рядкові дані. 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-дисками тощо)
З консолі ми бачимо, що оператор print був пропущений (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, було викинуто виняток.
Коли використовувати тверде і м'яке твердження?
Якщо вам потрібно виконати всі кроки тестового кейсу, який буде виконано навіть після того, як твердження не вдасться, і ви також хочете повідомити про виключення твердження, тоді виберіть для використання м’які твердження. Використання «м’яких тверджень» у тестових сценаріях - хороша практика та ефективний спосіб керування виконанням тесту
Якщо ви хочете, щоб виконання тестового випадку продовжувалось лише після того, як твердження передано ( Наприклад, Щоб перевірити дійсний логін і лише потім виконати інші дії), тоді використовуйте тверді твердження.
Методи ствердження Junit
Різні типи методів Junit Assert детально пояснюються нижче.
# 1) assertEquals
метод assertequals порівнює очікуваний результат із результатом фактичного результату. Він викидає AssertionError, якщо очікуваний результат не збігається з результатом фактичного результату, і завершує виконання програми методом assert equals.
Синтаксис:
public static void assertEquals(String expected, String actual)
Приклад:
Очікуваний рядок = “https://www.google.com”;
Рядок 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 (“Тестове повідомлення Assert True”, true);
# 3) assertFalse
assert 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
assert not same перевіряє, що два об'єкти не рівні. Якщо два об'єкти посилаються на один і той же об'єкт, буде викинуто AssertionError.
Зверніть увагу, що метод утвердження не того самого методу порівнює посилання на об'єкти, а не значення, наявні в об'єктах.
Синтаксис:
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 Assert
Частина І
Частина ІІ
Частина 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. Всякий раз, коли очікуване та фактичне значення збігаються, твердження не вдається з винятком і відзначає тест-кейс як 'невдалий'.
Використання : Це використовується у випадках, коли ми хочемо перевірити, чи є кожна інформація унікальною на веб-сторінці. Наприклад , телефонний довідник, де немає 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 використовується для перевірки того, чи задана логічна умова відповідає дійсності. Це твердження повертає істину, якщо зазначена умова проходить, якщо ні, то виникає помилка твердження.
Синтаксис:
Як переглянути файли DAT у Windows - -
Assert.assertTrue(BooleanCondition);
Параметри :
BooleanCondition - Умова перевірити, чи тип його повернення справжній.
Використання :
Приклад: Щоб перевірити, чи є кнопка «Вхід» присутньою на домашній сторінці Amazon.in (заявляйте про відображення кнопки).
Assert.assertTrue(SignIn.isDisplayed());
Тут він перевіряє, чи логічна умова - 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 - умова перевірити, що тип його повернення хибний.
Використання : Сценарієм, коли його можна використовувати, є перевірка відсутності елемента на веб-сторінці після певної дії.
Приклад 1: Кнопка входу не повинна відображатися після входу.
Assert.assertFalse(SignIn.isDisplayed());
Це стверджує, що якщо логічна умова - 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. Іншими словами, він перевіряє, чи є результат нульовим. Коли об'єкт має значення 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:
Переконайтеся, що значення драйвера є нульовим, перш ніж запускати драйвер chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Тут об’єкт драйвера є нульовим, оскільки він не ініційований. Отже, AssertNull (драйвер) матиме успіх, оскільки перевірено, чи має об’єкт ‘драйвер’ нульове значення
# 6) assertNotNull
Це твердження передбачає дійсний тип повернення, відмінний від значення Null. Іншими словами, він перевіряє наявність об’єкта, якщо він не має значення Null. Тип повернення може бути логічним, рядковим, цілим числом, списком і т. Д. Коли об’єкт не має значення null, передається твердження, якщо ні, то виникає помилка AssertionError.
Синтаксис:
AssertNotNull(Object)
Параметри :
Об'єкт - Будь-яке значення даних, яке містить будь-яке значення даних.
Використання:
Приклад 1: Assert - рядок містить деякі дані. Тобто це не нуль.
@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 (драйвер) матиме успіх, оскільки перевірено, якщо об’єкт ‘драйвер’ не містить нульового значення
Клацніть тут для зразків тестових кейсів.
Зразки програм для тверджень
Затверджувати дорівнює:
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 простими словами.
- Як обговорювалося раніше, твердження дорівнює приймає два параметри, тобто очікуваний результат та фактичний результат. Якщо очікуваний результат не збігається з результатом фактичного результату, тоді буде видано помилку твердження, і виконання програми завершиться за методом assert equals.
- Наведений вище код порівнює визначене користувачем значення рядка із очікуваним значенням рядка.
- Зверніть увагу, що в реальному часі фактичним результатом буде визначена користувачем операція, для якої значення буде отримано під час виконання та передано як параметр методу assert equals.
Стверджувати True:
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, ми порівнюємо заголовок відкритої сторінки з заголовком очікуваної сторінки. Якщо заголовок відкритої сторінки збігається із заголовком очікуваного заголовка, буде видано помилку твердження, а виконання програми буде припинено методом assert false.
- Вищезазначений код буде успішно виконаний лише тоді, коли фактичний заголовок сторінки не збігається з тим, що очікуваний заголовок сторінки.
Код до кінця для тверджень
Нижче наведено зразок наскрізного коду для тверджень. Для простоти ми використали наступний сценарій.
Сценарій:
- Відкрийте веб-сторінку: https://www.google.com у браузері Firefox.
- Переконайтеся, що відкрита назва сторінки еквівалентна заголовку очікуваної сторінки, використовуючи метод asserttrue.
- У текстовому полі пошуку введіть ключове слово пошуку: селен.
- Натисніть кнопку Enter на клавіатурі.
- Переконайтеся, що відкрита заголовок сторінки на сторінці результатів пошуку еквівалентна заголовку очікуваної сторінки, використовуючи метод assertequals та метод assertfalse.
- Закрийте браузер.
Зразок коду:
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.
Вихід консолі:
Наведений нижче текст буде висновком консолі в IDE Eclipse
Уникайте поширених помилок під час використання класу Assert
1. Припустимо, у вашому проекті налаштовані бібліотеки JUnit, TestNG та python
два . Але у своєму сценарії ви використовуєте анотацію TestNG і помилково ви вибираєте Junit Assertion, тоді ваш клас Assert буде застарілим. Зверніться до знімка екрана
3. Тому дуже важливо вибрати правильний клас Assert, для TestNg виберіть єдиний орг.TestNG клас Assert
Чотири. Для Junit виберіть клас org.junit.Assert тощо.
5. Для виконання Soft Assertion нам потрібно обов'язково викликати метод assertAll ()
6. Коли твердження не вдається, воно видасть помилку твердження не винятком
Висновок
Ми можемо завершити цю статтю про твердження в селені наступними вказівками:
- Твердження використовується для порівняння фактичного результату програми з очікуваним результатом.
- Тестовий випадок вважається складеним, лише якщо всі твердження були дотримані.
- Метод AssertEquals порівнює очікуваний результат із фактичним результатом. Він видає помилку AssertionError, якщо очікуваний результат не збігається з результатом фактичного результату, і завершує виконання програми методом assertequals.
- Метод AssertTrue стверджує, що вказана умова є істинною. Він видає AssertionError, якщо умова, передана методу asserttrue, не виконується.
- Метод AssertFalse стверджує, що вказана умова є хибною. Він викидає AssertionError, якщо умова, передана для затвердження помилкового методу, не виконується.
- Методи AssertEquals, AssertTrue та AssertFalse є найбільш часто використовуваними твердженнями у селені.
В майбутній підручник , ми обговоримо різні приклади, що використовуються в сценаріях проектів у реальному часі, і зрозуміємо, як твердження використовуються відповідно до мети.
Ми сподіваємось, ця стаття збагатила ваші знання про твердження в селені !!
=> Прочитайте серію навчальних програм Easy Selenium.
Рекомендована література
- Вступ до JUnit Framework та його використання у сценарії селену - Підручник з селену No11
- Як використовувати TestNG Framework для створення сценаріїв селену - Підручник No12 для TestNG
- Дізнайтеся, як використовувати анотації TestNG у селені (з прикладами)
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Інтеграція селену з JMeter
- Вступ до Selenium WebDriver - Підручник з селену №8
- Найпопулярніші рамки автоматизації тестів з плюсами та мінусами кожного - Підручник селену №20
- 30+ найкращих підручників із селену: вивчіть селен на реальних прикладах