assertions selenium using junit
Ten samouczek Selenium dotyczący stwierdzeń wyjaśnia, czym są twierdzenia w selenie oraz różne typy twierdzeń i metod asercji przy użyciu ram Junit i TestNG:
Asercje służą do walidacji przypadku testowego i pomagają nam zrozumieć, czy przypadek testowy przeszedł pomyślnie, czy nie. Uznaje się, że stwierdzenie jest spełnione, jeśli rzeczywisty wynik aplikacji jest zgodny z oczekiwanym wynikiem.
Podczas automatyzacji aplikacji internetowych za pomocą Selenium musimy walidować nasze testy, aby sprawdzić, czy działają zgodnie z oczekiwaniami, czy nie(to znaczy, jeśli wynik testu jest pozytywny / negatywny).
=> Spójrz na przewodnik dla początkujących o selenie tutaj.
Przypadek testowy jest uważany za zaliczony tylko wtedy, gdy wszystkie stwierdzenia zostały spełnione. Asercje w Selenium mogą być obsługiwane przez predefiniowane metody frameworków Junit i TestNG, które zostaną szczegółowo wyjaśnione w tym artykule.
Czego się nauczysz:
- Twierdzenia w selenie
- Rodzaje twierdzeń w selenie
- Metody Junit Assert
- Metody Assert TestNG
- Przykładowe programy dla twierdzeń
- Wniosek
Twierdzenia w selenie
Asercje służą do wykonywania różnego rodzaju walidacji w przypadkach testowych, co z kolei pomaga nam zdecydować, czy przypadek testowy przeszedł pomyślnie, czy nie. WUważamy, że test jest pomyślny, jeśli działa bez żadnych wyjątków.
Samouczek wideo dotyczący stwierdzeń
Rodzaje twierdzeń w selenie
Istnieją dwa typy asercji w selenie, a kategoryzacja zależy od tego, jak zachowuje się asercja po spełnieniu lub niepowodzeniu warunku.
Tutaj omówimy dwa typy twierdzeń w Selen :
- Twarde asercje
- Miękkie asercje
Kliknij tutaj, aby zobaczyć próbkę przypadki testowe do testowania twierdzeń.
# 1) Twarde twierdzenia (lub po prostu twierdzenia)
Twarde asercja nie jest kontynuowana, dopóki warunek asercji nie zostanie spełniony.
Twarde asercje zwykle generują błąd asercji za każdym razem, gdy warunek asercji nie został spełniony. Przypadek testowy zostanie natychmiast oznaczony jako Niepowodzenie, gdy warunek twardego potwierdzenia nie powiedzie się.
Scenariusz użycia tego rodzaju asercji polega na tym, że gdy chcesz sprawdzić, czy zalogowałeś się poprawnie i nie zaliczyłeś testu, jeśli nie dokonałeś pomyślnego logowania, ponieważ nie ma sensu kontynuować dalszych działań, jeśli warunek wstępny ( logowanie) się nie powiedzie.
Weźmy inny przykład zilustrowany tutaj:
Rozważ przypadek testowy, aby potwierdzić tytuł strony internetowej.
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(); }
W tym przykładzie zmienna „ActualTitle” będzie zawierać tekst tytułu z automatyzacji. „ExpectedTitle” zawiera oczekiwane dane w postaci ciągu. Assert.assertEquals () sprawdza, czy oba teksty są równe. Powyższy przypadek testowy przejdzie i przejdzie do następnej linii wykonywania, ponieważ tekst rzeczywisty i tekst oczekiwany są takie same.
Konsola:
Potwierdzenie przeszło.
PASSED: VerifyTitle
Ten sam przypadek testowy, gdy zakończy się niepowodzeniem, zgłosi wyjątek i zatrzyma wykonywanie w tej instancji.
Teraz zmieńmy oczekiwany tytuł na niewłaściwy.
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(); }
Konsola:
java.lang.AssertionError:oczekiwany [Witamy w Amazon]aleznaleziono [Amazon.com: Zakupy online dla elektroniki, odzieży, komputerów, książek, płyt DVD i nie tylko]
Z konsoli widzimy, że instrukcja print została pominięta (System.out.println), ponieważ w instrukcji Assert napotkano błąd i zgłosiła wyjątek.
# 2) Miękkie asercje
Asercja miękka jest kontynuowana w następnym kroku wykonywania testu, nawet jeśli warunek potwierdzenia nie jest spełniony.
Asercje miękkie to typ asercji, które nie zgłaszają wyjątku automatycznie, gdy asercja nie powiedzie się, chyba że zostanie o to poproszony. Jest to przydatne, jeśli przeprowadzasz wiele walidacji w formularzu, z których tylko kilka walidacji ma bezpośredni wpływ na decyzję o stanie przypadku testowego.
W tym przypadku używamy klasy o nazwie SoftAssert, a metoda assertAll () jest wywoływana w celu zgłaszania wszystkich wyjątków przechwyconych podczas wykonywania. Gdy jest używany softAssert, wykonuje asercję i jeśli zostanie znaleziony wyjątek, nie jest zgłaszany natychmiast, a raczej kontynuuje, dopóki nie wywołamy metody assertAll (), aby zgłosić wszystkie przechwycone wyjątki.
Rozsądnie jest używać różnych obiektów klasy „SoftAssert” dla każdego przypadku testowego.
Rozważ przypadek testowy, aby potwierdzić tytuł strony
W poniższym przykładzie dwa obiekty klasy „SoftAssert” są tworzone do wykorzystania w dwóch różnych przypadkach testowych.
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 } }
Konsola:
Aktualny tytuł: Amazon.com: Zakupy online dla elektroniki, odzieży, komputerów, książek, płyt DVD i nie tylko
Asercja 1 jest wykonywana
Wyświetlana jest ikona
Asercja 2 jest wykonywana
java.lang.AssertionError: Następujące potwierdzenia nie powiodły się:
oczekiwano [Witamy w Amazon], ale znalazłem [Amazon.com: zakupy online elektroniki, odzieży, komputerów, książek, płyt DVD i nie tylko]
Z konsoli możemy zrozumieć, że mimo że asercja była błędem w pierwszym przypadku testowym (verifyTitle), wykonanie kontynuowano do następnej linii, w której wypisywano instrukcję - 'Assertion 1 is execute' i dopiero po wywołaniu softAssert, wyjątek został zgłoszony.
Kiedy używać twardej i miękkiej asercji?
Jeśli chcesz wykonać wszystkie kroki przypadku testowego, który ma zostać wykonany nawet po niepowodzeniu asercji, a także chcesz zgłosić wyjątek asercji, wybierz opcję Soft Assertions. Używanie asercji miękkich w skryptach testowych jest dobrą praktyką i skutecznym sposobem obsługi wykonywania testów
Jeśli chcesz, aby wykonanie przypadku testowego było kontynuowane dopiero po przekazaniu asercji ( Na przykład, Aby zweryfikować poprawny login i dopiero potem wykonać pozostałe kroki), a następnie użyj twardych asercji.
Metody Junit Assert
Poniżej szczegółowo opisano różne typy metod Junit Assert.
# 1) assertEquals
Metoda assertequals porównuje oczekiwany wynik z rzeczywistym wynikiem. Zgłasza AssertionError, jeśli oczekiwany wynik nie zgadza się z rzeczywistym wynikiem i kończy wykonywanie programu w metodzie assert equals.
Składnia:
public static void assertEquals(String expected, String actual)
Przykład:
Oczekiwano ciągu znaków = „https://www.google.com”;
String currentURL = „https://www.google.com”;
Assert.assertEquals (oczekiwany, rzeczywistyURL);
# 2) assertTrue
asserttrue potwierdza, że określony warunek jest prawdziwy.
Przyjmuje dwa parametry, tj. Jeden to komunikat, a drugi to warunek, względem którego należy zastosować asercję. Zgłasza błąd AssertionError, jeśli warunek przekazany do metody asserttrue nie jest spełniony.
Składnia:
jak wygląda modem i router
public static void assertTrue(java.lang.String message, boolean condition)
komunikat - komunikat do wyświetlenia w przypadku błędu potwierdzenia.
warunek - warunek, względem którego należy zastosować stwierdzenie.
Przykład:
Assert.assertTrue („Assert True test message”, true);
# 3) assertFalse
assert false potwierdza, że określony warunek jest fałszywy.
Przyjmuje dwa parametry, tj. Jeden to komunikat, a drugi to warunek, względem którego asercja musi być zastosowana. Zgłasza AssertionError, jeśli warunek przekazany do metody assertfalse nie jest spełniony.
Składnia:
public static void assertFalse(java.lang.String message, boolean condition)
komunikat - komunikat do wyświetlenia w przypadku błędu potwierdzenia.
warunek - warunek, względem którego należy zastosować stwierdzenie.
Przykład:
Assert.assertFalse („Assert false test message” false);
# 4) assertNull
assert null służy do sprawdzania, czy podany obiekt zawiera wartość null. Pobiera obiekt jako parametr i zgłasza błąd AssertionError, jeśli podany obiekt nie zawiera wartości null.
Składnia:
public static void assertNull(Object object)
Przykład:
DemoClass demo = nowy DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null służy do sprawdzania, czy podany obiekt nie zawiera wartości null. Pobiera obiekt jako parametr i generuje błąd AssertionError, jeśli podany obiekt nie zawiera wartości null.
Składnia:
public static void assertNotNull(Object object)
Przykład:
DemoClass demo = nowy DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
assert ta sama metoda sprawdza, czy dwa obiekty podane jako parametry odnoszą się do tego samego obiektu. Zgłasza AssertionError, jeśli podane obiekty nie odnoszą się do tego samego obiektu z podanym komunikatem.
Zwróć uwagę, że Assert same porównuje tylko odniesienia do obiektów, ale nie rzeczywiste wartości.
Składnia:
public static void assertSame(String message, Object expected,Object actual)
Przykład:
DemoClass1 demo1 = nowy DemoClass1 ();
DemoClass2 demo2 = nowy DemoClass2 ();
Assert.assertSame („Dwa obiekty są równe”, demo1, demo2);
# 7) assertNotSame
assert not same sprawdza, czy dwa obiekty nie są równe. Jeśli dwa obiekty odnoszą się do tego samego obiektu, zostanie wyrzucony AssertionError.
Należy zauważyć, że metoda assert nie ta sama porównuje odwołania do obiektów, a nie wartości obecne w obiektach.
Składnia:
public static void assertNotSame(String message, Object expected, Object actual)
Przykład:
DemoClass1 demo1 = nowy DemoClass1 ();
DemoClass2 demo2 = nowy DemoClass2 ();
Assert.assertNotSame („Dwa obiekty nie są równe”, demo1, demo2);
# 8) assertArrayEquals
assert equals sprawdza, czy dwie tablice obiektów są równe. Jeśli obie tablice zawierają wartości null, są uznawane za równe. Ta metoda zgłasza AssertionError z podanym komunikatem, jeśli obie tablice obiektów nie są uważane za równe.
Składnia:
public static void assertArrayEquals(String message, Object[] expected, Object[] actual)
komunikat - komunikat do wyświetlenia w przypadku błędu asercji.
oczekiwano - tablica obiektów.
faktyczny - Tablica obiektów.
Przykład:
Oczekiwany ciąg [] = {„Mango”, „Jabłko”, „Banan”}
Ciąg [] rzeczywiste = {„Mango”, „Jabłko”, „Banan”}
Assert.assertArrayEquals (oczekiwane, rzeczywiste);
Metody Assert TestNG
Metody testowe TestNG Assert będą takie same jak metody asercji Junit, które zostały omówione powyżej. Głównym różnica między Junit i TestNG metody asercji przeszkadzają w obsłudze asercji.
TestNG zapewnia bardziej zaawansowane techniki obsługi asercji, takie jak klasy zależne, testy grupowe, testy sparametryzowane itp.
Samouczki wideo dotyczące metod asercji TestNG
Część I.
część druga
Część III
# 1) assertEquals
Ta metoda służy do potwierdzania, czy dwie wartości danych są równe. Możemy porównać wartości różnych typów danych, takich jak string, boolean, integer. itd. Ilekroć oczekiwane i rzeczywiste wartości są takie same, to stwierdzenie przechodzi bez wyjątku. Jeśli tak nie jest, generowany jest błąd AssertionError.
Stosowanie : Ten rodzaj potwierdzenia służy do weryfikacji przypadku, gdy dane wyświetlane na stronie internetowej są zgodne z oczekiwaniami lub zgodnie z określonym wymaganiem.
Składnia:
Assert.assertEquals(actual,expected)
Parametry:
obecny - Rzeczywista wartość, jakiej oczekujemy od automatyzacji.
Spodziewany –Oczekiwana wartość.
Przykład: Aby to sprawdzić, jeśli strona główna Amazon ma tytuł o treści „Amazon.com: zakupy online elektroniki, odzieży, komputerów, książek, płyt DVD i nie tylko ”
@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”); }
Konsola:
Potwierdzenie przeszło.
PASSED: VerifyTitle
W powyższym przykładzie dwa ciągi zostały sprawdzone pod kątem równych wartości. Podobnie można zweryfikować równość innych typów danych, takich jak liczby całkowite, wartości logiczne itp.
# 2) assertNotEquals
assertNotEquals służy do sprawdzania, czy dwie wartości danych nie są równe. Jest to przeciwieństwo działania assertEquals Assertion. Ilekroć oczekiwane i rzeczywiste wartości są zgodne, potwierdzenie kończy się niepowodzeniem z wyjątkiem i oznacza przypadek testowy jako „nieudany”.
Stosowanie : Stosuje się to w przypadkach, gdy chcielibyśmy sprawdzić, czy dane na stronie internetowej są unikalne. Na przykład , książkę telefoniczną, w której nie ma dwóch takich samych numerów telefonów.
Składnia:
Assert.assertNotEquals(actual,expected)
Parametry:
obecny - Rzeczywista wartość, jakiej oczekujemy od automatyzacji.
Spodziewany - oczekiwana wartość.
Przykład: Aby sprawdzić, czy kody PIN dwóch różnych obszarów są niepowtarzalne / nie są takie same.
@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”); }
Konsola:
Dwa unikalne kody PIN to: 600012 && 600001
Potwierdzenie przeszło.
PASSED: verifyAssertNotEqual
# 3) assertTrue
assertTrue służy do sprawdzania, czy dany warunek logiczny jest prawdziwy. To potwierdzenie zwraca prawdę, jeśli określony warunek przejdzie pomyślnie, jeśli nie, zostanie zgłoszony błąd potwierdzenia.
Składnia:
Assert.assertTrue(BooleanCondition);
Parametry :
BooleanCondition - Warunek sprawdzenia, czy zwracany typ ma wartość True.
Stosowanie :
Przykład: Aby sprawdzić, czy przycisk Zaloguj się znajduje się na stronie głównej Amazon.in (potwierdź wyświetlanie przycisku).
Assert.assertTrue(SignIn.isDisplayed());
Tutaj sprawdza, czy warunek boolowski - SignIn.IsDisplayed () zwraca TRUE.
darmowa aplikacja do pobierania plików mp3 na Androida
Przykład: Aby sprawdzić, czy przycisk jest obecny na stronie internetowej.
@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'); }
Konsola:
Wyświetlany jest przycisk
PASSED: verifyAssertTrue
# 4) assertFalse
assertFalse służy do weryfikacji, czy dany warunek logiczny jest fałszywy. Innymi słowy, typ zwracania danego warunku logicznego powinien mieć wartość False. To potwierdzenie przechodzi, jeśli określony warunek ma zwracany typ FALSE, jeśli nie, zostanie zgłoszony błąd potwierdzenia.
Składnia:
Assert.assertFlase(BooleanCondition);
Parametry :
BooleanCondition - Warunek sprawdzania, czy zwracany typ to Fałsz.
Stosowanie : Scenariusz, w którym można go użyć, polega na sprawdzeniu, czy element nie występuje na stronie internetowej po wykonaniu określonej czynności.
Przykład 1: Przycisk logowania nie powinien być wyświetlany po zalogowaniu.
Assert.assertFalse(SignIn.isDisplayed());
To potwierdza, jeśli warunek boolowski - SignIn.IsDisplayed () zwraca FALSE.
Przykład 2:
Aby sprawdzić, czy element div znika po wykonaniu określonej czynności. Tak więc tutaj sprawdzamy, czy element div nie jest wyświetlany, czyli innymi słowy, potwierdzamy fałszywy warunek w wyświetlanym elemencie 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'); }
Konsola:
Captcha div zniknął z ekranu
ZDALNIE:verifyAssertFalse
# 5) assertNull
To stwierdzenie służy do sprawdzania, czy obiekt ma zwracaną wartość null. Innymi słowy, sprawdza, czy wynik jest zerowy. Gdy obiekt ma wartość Null, potwierdzenie jest przekazywane bez żadnego wyjątku.
Składnia:
AssertNull(Object)
Parametry :
Obiekt - Dowolna wartość danych, która zawiera wartość null.
Stosowanie:
Przykład 1:
Potwierdź, jeśli ciąg jest pusty.
@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'); }
Przykład 2:
Potwierdź, czy wartość sterownika jest zerowa przed zainicjowaniem sterownika Chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Tutaj obiekt sterownika jest pusty, ponieważ nie został zainicjowany. W związku z tym AssertNull (sterownik) zakończy się sukcesem, ponieważ zweryfikowano, czy obiekt „sterownik” ma wartość zerową
# 6) assertNotNull
To stwierdzenie oczekuje prawidłowego typu zwracanego, innego niż wartość Null. Innymi słowy, sprawdza, czy obiekt nie ma wartości Null. Typ zwracany może być typu Boolean, string, integer, list, itd. Gdy obiekt nie ma wartości null, przekazywana jest wartość Assertion.
Składnia:
AssertNotNull(Object)
Parametry :
Obiekt - Dowolna wartość danych, która zawiera dowolną wartość danych.
Stosowanie:
Przykład 1: Assert to łańcuch zawierający pewne dane. Oznacza to, że nie jest to wartość 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'); }
Przykład 2: Po zainicjowaniu FirefoxDriver sprawdź, czy obiekt sterownika nie jest pusty.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
W tym przypadku obiekt sterownika jest inicjowany w sterowniku przeglądarki Firefox, a zatem obiekt „sterownik” ma pewną wartość, ponieważ nie jest inicjowany. W związku z tym AssertNotNull (sterownik) zakończy się sukcesem, ponieważ zweryfikowano, czy obiekt „sterownik” nie ma wartości zerowej
Kliknij tutaj dla przykładowych przypadków testowych.
Przykładowe programy dla twierdzeń
Assert Equals:
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'); } }
Objaśnienie kodu:
pytania i odpowiedzi do wywiadu oracle pl / sql przez 7 lat doświadczenia
Powyższy kod w prosty sposób demonstruje użycie metody AssertEquals.
- Jak wspomniano wcześniej, assert równa się przyjmuje dwa parametry, tj. Wynik oczekiwany i wynik rzeczywisty. Jeśli oczekiwany wynik nie zgadza się z rzeczywistym wynikiem, zostanie zgłoszony błąd asercji, a wykonanie programu zakończy się w metodzie assert equals.
- Powyższy kod porównuje zdefiniowaną przez użytkownika wartość ciągu z oczekiwaną wartością ciągu.
- Należy pamiętać, że w czasie rzeczywistym rzeczywistym wynikiem będzie operacja zdefiniowana przez użytkownika, dla której wartość zostanie pobrana w czasie wykonywania i przekazana jako parametr do metody assert equals.
Potwierdzenie prawdy:
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(); } }
Objaśnienie kodu:
Powyższy kod demonstruje użycie metody assertTrue.
- Początkowo przekazujemy oczekiwany tytuł strony do zmiennej. Następnie tworzymy wystąpienie obiektu sterownika Firefox i kierujemy go do strony internetowej - https://www.google.com
- Później, korzystając z metody assertsTrue, porównujemy tytuł otwartej strony z oczekiwanym tytułem strony. Jeśli tytuł otwartej strony nie jest zgodny z tytułem oczekiwanym, zostanie zgłoszony błąd asercji, a wykonanie programu zostanie przerwane w metodzie assertTrue.
- Powyższy kod zostanie wykonany pomyślnie tylko wtedy, gdy rzeczywisty tytuł strony będzie zgodny z oczekiwanym tytułem strony.
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(); } }
Objaśnienie kodu:
Powyższy kod demonstruje użycie metody assertfalse.
- Początkowo przekazujemy oczekiwany tytuł strony do zmiennej, a następnie tworzymy instancję obiektu sterownika firefox i przechodzimy do strony internetowej - https://www.google.com
- Później, korzystając z metody assertfalse, porównujemy tytuł otwartej strony z oczekiwanym tytułem strony. Jeśli tytuł otwartej strony pasuje do tytułu oczekiwanego, zostanie zgłoszony błąd asercji, a wykonanie programu zostanie przerwane przy metodzie assert false.
- Powyższy kod zostanie wykonany pomyślnie tylko wtedy, gdy rzeczywisty tytuł strony nie będzie zgodny z oczekiwanym tytułem strony.
Kod od końca do końca dla twierdzeń
Poniżej podano przykładowy kod od końca do końca dla twierdzeń. Dla uproszczenia wykorzystaliśmy następujący scenariusz.
Scenariusz:
- Otwórz stronę internetową: https://www.google.com w przeglądarce Firefox.
- Sprawdź, czy otwarty tytuł strony jest równoważny z oczekiwanym tytułem strony, używając metody asserttrue.
- W polu tekstowym wyszukiwania wprowadź słowo kluczowe wyszukiwania: Selenium.
- Naciśnij przycisk Enter na klawiaturze.
- Sprawdź, czy tytuł otwartej strony na stronie wyników wyszukiwania jest równoważny z tytułem oczekiwanej strony przy użyciu metody assertequals i metody assertfalse.
- Zamknij przeglądarkę.
Przykładowy kod:
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(); } }
Wyjście kodu:
Początkowo okno przeglądarki Firefox zostanie otwarte ze stroną internetową: https://www.google.com. Metoda Asserttrue sprawdzi, czy tytuł otwartej strony jest zgodny z oczekiwanym tytułem strony - Google.
Skrypt wprowadzi wyszukiwane słowo kluczowe jako Selenium i naciśnie przycisk Enter.
Metody Assertfalse i assertequals porównują, czy rzeczywisty tytuł strony na ekranie wyników wyszukiwania odpowiada oczekiwanemu tytułowi - „selenium - wyszukiwarka Google”. Przeglądarka zostanie wtedy zamknięta za pomocą metody driver.close.
Wyjście konsoli:
Tekst podany poniżej będzie wyjściem konsoli w Eclipse IDE
Unikaj typowych błędów podczas korzystania z klasy Assert
1. Załóżmy, że Twój projekt ma skonfigurowane biblioteki JUnit, TestNG i Python
dwa . Ale w swoim skrypcie używasz adnotacji TestNG i przez pomyłkę wybierasz Junit Assertion, wtedy Twoja klasa Assert zostanie wycofana. Zobacz poniższy zrzut ekranu
3. Dlatego bardzo ważne jest, aby wybrać odpowiednią klasę Assert, dla TestNg wybierz jedyną klasę org.TestNG Assert
Cztery. W przypadku Junit wybierz klasę org.junit.Assert i tak dalej.
5. Aby wykonać Soft Assertion, musimy przymusowo wywołać metodę assertAll ()
6. Gdy asercja nie powiedzie się, zgłosi błąd asercji, a nie wyjątek
Wniosek
Możemy zakończyć ten artykuł na temat twierdzeń w selenie poniższymi wskazówkami:
- Asercja służy do porównania rzeczywistego wyniku aplikacji z oczekiwanym wynikiem.
- Przypadek testowy jest uważany za zaliczony tylko wtedy, gdy wszystkie stwierdzenia zostały spełnione.
- Metoda AssertEquals porównuje oczekiwany wynik z rzeczywistym wynikiem. Zgłasza AssertionError, jeśli oczekiwany wynik nie zgadza się z rzeczywistym wynikiem i kończy wykonywanie programu w metodzie assertequals.
- AssertTrue potwierdza, że określony warunek jest prawdziwy. Zgłasza błąd AssertionError, jeśli warunek przekazany do metody asserttrue nie jest spełniony.
- AssertFalse potwierdza, że określony warunek jest fałszywy. Zgłasza błąd AssertionError, jeśli warunek przekazany do metody assert false nie jest spełniony.
- Metody AssertEquals, AssertTrue i AssertFalse są najczęściej używanymi asercjami w Selenium.
w nadchodzący tutorial , omówimy różne przykłady używane w scenariuszach projektów w czasie rzeczywistym i zrozumiemy, w jaki sposób asercje są używane zgodnie z celem.
Mamy nadzieję, że ten artykuł wzbogacił Twoją wiedzę na temat twierdzeń w selenie !!
=> Przeczytaj serię szkoleń Easy Selenium.
rekomendowane lektury
- Wprowadzenie do JUnit Framework i jego wykorzystanie w skrypcie Selenium - Samouczek Selenium # 11
- Jak używać platformy TestNG do tworzenia skryptów selenium - Samouczek TestNG Selenium nr 12
- Dowiedz się, jak używać adnotacji TestNG w selenie (z przykładami)
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Integracja Selenium z JMeter
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Najpopularniejsze frameworki automatyzacji testów z zaletami i wadami każdego z nich - samouczek Selenium nr 20
- 30+ najlepszych samouczków dotyczących selenu: naucz się selenu z prawdziwymi przykładami