assertions selenium using junit
Aquest tutorial de Selenium sobre afirmacions explica què són les afirmacions de Selenium i els diferents tipus d’assercions i mètodes d’asserció que utilitzen els marcs Junit i TestNG:
millor programari gratuït de clonació de discs durs 2017
Les afirmacions s’utilitzen per validar un cas de prova i ens ajuden a entendre si un cas de prova ha passat o no. Es considera que l’afirmació es compleix si el resultat real d’una sol·licitud coincideix amb el del resultat esperat.
Tot i automatitzar les aplicacions web amb Selenium, hem de validar les nostres proves per verificar si funcionen tal com s’esperava o no(és a dir, si el resultat d'un cas de prova és aprovat / falla).
=> Mireu aquí la guia per a principiants de Selenium.
Un cas de prova només es considera aprovat si s’han complert totes les afirmacions. Les afirmacions en seleni es poden gestionar mitjançant mètodes predefinits de marcs Junit i TestNG, que s’explicaran amb detall en aquest article.
Què aprendreu:
- Afirmacions en seleni
- Tipus d’afirmacions al seleni
- Mètodes d’afirmació de Junit
- TestNG Assert Methods
- Programes de mostra per a afirmacions
- Conclusió
Afirmacions en seleni
Les afirmacions s’utilitzen per realitzar diversos tipus de validacions en els casos de prova, cosa que ens ajuda a decidir si el cas de prova ha passat o no. WConsidero que una prova té èxit si s’executa sense cap excepció.
Vídeo tutorial sobre afirmacions
Tipus d’afirmacions al seleni
Hi ha dos tipus d’afirmacions al seleni i la classificació depèn de com es comporti l’afirmació després que una condició passi o falli.
Aquí discutiríem dos tipus d’afirmacions a Seleni :
- Afirmacions dures
- Afirmacions suaus
Feu clic aquí per obtenir una mostra casos de prova per provar afirmacions.
# 1) Assercions difícils (o simplement afirmacions)
Una afirmació dura no continua amb l'execució fins que no es compleixi la condició d'afirmació.
Les afirmacions difícils solen generar un error d'asserció sempre que no s'hagi complert una condició d'afirmació. El cas de prova es marcarà immediatament com a Falla quan falla una condició d’afirmació dura.
Un escenari per utilitzar aquest tipus d’afirmació és que, quan voleu verificar si heu iniciat la sessió correctament i suspendre la prova si no heu fet un inici de sessió correcte, ja que no té sentit continuar endavant si la condició prèvia ( inici de sessió) falla.
Prenem un altre exemple il·lustrat aquí:
Penseu en un cas de prova per afirmar el títol d’una pàgina web.
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(); }
A l'exemple, la variable 'ActualTitle' contindrà el text del títol de l'automatització. 'ExpectedTitle' conté les dades de cadena esperades. Assert.assertEquals () verifica si el text és igual. El cas de prova anterior passarà i continuarà fins a la següent línia d'execució, ja que el text real i el text esperat són els mateixos.
Consola:
Assert va passar.
SUPERAT: VerifyTitle
Si es produeix un error, el mateix cas de prova generarà una excepció i detindrà l'execució en aquesta instància.
Ara, canviem el títol esperat per l’equivocat.
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(); }
Consola:
java.lang.AssertionError:esperat (Benvingut a Amazon)peròtrobat (Amazon.com: compres en línia d’electrònica, roba, ordinadors, llibres, DVD i molt més)
Des de la consola, podem veure que la declaració d’impressió s’ha omès (System.out.println) ja que s’ha produït un error a la sentència Assert i ha generat una excepció.
# 2) Afirmacions suaus
Una afirmació suau continua amb el següent pas de l'execució de la prova, encara que no es compleixi la condició d'afirmació.
Les afirmacions suaus són el tipus d’afirmacions que no generen una excepció automàticament quan una afirmació falla a menys que se sol·liciti. Això és útil si feu diverses validacions en un formulari, de les quals només algunes validacions tenen un impacte directe a l'hora de decidir l'estat del cas de prova.
Aquí fem servir una classe anomenada SoftAssert i el mètode assertAll () es diu per llançar totes les excepcions capturades durant l'execució. Quan s’utilitza softAssert, realitza una afirmació i, si es troba una excepció, no es llança immediatament, sinó que continua fins que anomenem el mètode assertAll () per llançar totes les excepcions.
És aconsellable utilitzar diferents objectes de la classe 'SoftAssert' per a cada cas de prova.
Penseu en el cas de prova per afirmar el títol de la pàgina
A l'exemple següent, es creen dos objectes de la classe 'SoftAssert' per utilitzar-los en dos casos de prova diferents.
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 } }
Consola:
Títol actual: Amazon.com: compres en línia d’electrònica, roba, ordinadors, llibres, DVD i molt més
L'exercici 1 s'executa
Es mostra la icona
S'executa l'asserció 2
java.lang.AssertionError: han fallat les afirmacions següents:
esperat (Benvingut a Amazon) però trobat (Amazon.com: compres en línia d'electrònica, roba, ordinadors, llibres, DVD i molt més)
Des de la consola, podem entendre que, tot i que l’afirmació va ser un error en el primer cas de prova (verifyTitle), l’execució va continuar fins a la línia següent en què es va imprimir la sentència: “L’asserció 1 s’executa” i només després de la crida de softAssert, es va llançar l'excepció.
Quan s'ha d'utilitzar una afirmació dura i suau?
Si heu d'executar tots els passos d'un cas de prova que cal executar fins i tot després que falli una afirmació i també vulgueu informar de l'excepció d'afirmació, opteu per utilitzar Soft Assertions. L’ús de Soft Assertions als scripts de prova és una bona pràctica i una manera eficaç de gestionar l’execució de la prova
Si voleu que l'execució del cas de prova només es dugui a terme després d'una afirmació ( Per exemple, Per verificar l’inici de sessió vàlid i, tot seguit, executar els altres passos), utilitzeu Assercions dures.
Mètodes d’afirmació de Junit
A continuació s’expliquen detalladament els diversos tipus de mètodes de Junit Assert.
# 1) assertEquals
El mètode assertequals compara el resultat esperat amb el del resultat real. Llança un AssertionError si el resultat esperat no coincideix amb el del resultat real i finalitza l'execució del programa al mètode assert equals.
Sintaxi:
public static void assertEquals(String expected, String actual)
Exemple:
Cadena esperada = 'https://www.google.com';
String actualURL = 'https://www.google.com';
Assert.assertEquals (esperat, actualURL);
# 2) assertTrue
El mètode asserttrue afirma que una condició especificada és certa.
Presenta dos paràmetres, és a dir, un és el missatge i l’altre és la condició contra la qual cal aplicar l’afirmació. Llança un AssertionError si la condició passada al mètode asserttrue no es compleix.
Sintaxi:
public static void assertTrue(java.lang.String message, boolean condition)
missatge: missatge que es mostrarà en cas d'error d'asserció.
condició: condició contra la qual cal aplicar l’afirmació.
Exemple:
Assert.assertTrue ('Afirma el missatge de prova True', cert);
# 3) assertFalse
assert false method afirma que una condició especificada és falsa.
Presenta dos paràmetres, és a dir, un és el missatge i l’altre és la condició contra la qual cal aplicar l’afirmació. Llança un AssertionError si la condició passada al mètode assertfalse no es compleix.
Sintaxi:
public static void assertFalse(java.lang.String message, boolean condition)
missatge: missatge que es mostrarà en cas d'error d'asserció.
condició: condició contra la qual cal aplicar l’afirmació.
Exemple:
Assert.assertFalse ('Afirma el missatge de prova fals' fals);
# 4) assertNull
assert null s'utilitza per verificar si l'objecte proporcionat conté un valor nul. Pren un objecte com a paràmetre i llança un AssertionError si l'objecte proporcionat no té un valor nul.
Sintaxi:
public static void assertNull(Object object)
Exemple:
DemoClass demo = nova DemoClass ();
Assert.assertNull (demostració);
# 5) assertNotNull
assert not null s'utilitza per verificar que un objecte proporcionat no tingui un valor nul. Pren un objecte com a paràmetre i llança un AssertionError si l'objecte proporcionat no conté un valor nul.
Sintaxi:
public static void assertNotNull(Object object)
Exemple:
DemoClass demo = nova DemoClass ();
Assert.assertNotNull (demostració);
# 6) assertSame
afirmar el mateix mètode comprova si dos objectes proporcionats com a paràmetres fan referència al mateix objecte. Llença un AssertionError si els objectes proporcionats no fan referència al mateix objecte amb el missatge proporcionat.
Tingueu en compte que Assert mateix compara només les referències d’objectes, però no els valors reals.
Sintaxi:
public static void assertSame(String message, Object expected,Object actual)
Exemple:
DemoClass1 demo1 = nova DemoClass1 ();
DemoClass2 demo2 = nova DemoClass2 ();
Assert.assertSame ('Dos objectes són iguals', demo1, demo2);
# 7) assertNotSame
afirmar que no es verifica igual que dos objectes no són iguals. Si dos objectes fan referència al mateix objecte, es llançarà un AssertionError.
Tingueu en compte que el mètode assert no mateix compara les referències d'objectes i no els valors presents als objectes.
Sintaxi:
public static void assertNotSame(String message, Object expected, Object actual)
Exemple:
convertir YouTube a mp3 durant més de 20 minuts
DemoClass1 demo1 = nova DemoClass1 ();
DemoClass2 demo2 = nova DemoClass2 ();
Assert.assertNotSame ('Dos objectes no són iguals', demo1, demo2);
# 8) assertArrayEquals
assert igual equival a verificar que dues matrius d'objectes són iguals. Si ambdues matrius contenen valors nuls, es consideraran iguals. Aquest mètode genera un AssertionError amb el missatge proporcionat si les matrius d'objectes no es consideren iguals.
Sintaxi:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
missatge: missatge que es mostrarà en cas d'error d'asserció.
esperat - Matriu d'objectes.
actual - Matriu d'objectes.
Exemple:
Cadena () esperada = {'Mango', 'Apple', 'Banana'}
Cadena () actual = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (esperat, real);
TestNG Assert Methods
Els mètodes d’asserció TestNG seran els mateixos que els mètodes d’asserció de Junit que es comenten anteriorment. L'alcalde diferència entre Junit i TestNG els mètodes d’afirmació són la manera de gestionar les afirmacions.
TestNG proporciona tècniques més avançades de manipulació d’afirmacions, com ara classes dependents, proves de grup, proves parametritzades, etc.
Tutorials de vídeo sobre mètodes d'afirmació TestNG
Part I
Part II
Part III
# 1) assertEquals
Aquest mètode s’utilitza per afirmar si dos valors de dades són iguals. Podem comparar els valors de diferents tipus de dades com cadena, booleà, enter. etc. Sempre que els valors esperats i reals són els mateixos, l'afirmació passa sense cap excepció. Si no ho són, es llança un AssertionError.
Ús : Aquest tipus d'afirmació s'utilitza per verificar el cas quan les dades que es mostren a la pàgina web són les esperades o segons el requisit especificat.
Sintaxi:
Assert.assertEquals(actual,expected)
Paràmetres:
actual - El valor real que esperem de l'automatització.
S'esperava –El valor esperat.
Exemple: Per verificar-ho, si la pàgina inicial d’Amazon té un títol que diu:Amazon.com: compres en línia d’electrònica, peces de vestir, ordinadors, llibres, DVD i molt més »
@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”); }
Consola:
Assert va passar.
SUPERAT: VerifyTitle
A l'exemple anterior, es van verificar dues cadenes per obtenir valors iguals. De la mateixa manera, es pot verificar la igualtat d'altres tipus de dades com enter, booleà, etc.
# 2) assertNotEquals
assertNotEquals s’utilitza per verificar si dos valors de dades no són iguals. És tot el contrari al funcionament de assertion Assertion. Sempre que coincideixen els valors esperats i reals, l'afirmació falla amb una excepció i marca el cas de prova com a 'fallit'.
Ús : S'utilitza en els casos en què volem verificar que cada dada sigui única en una pàgina web. Per exemple , una guia telefònica, on no hi ha 2 números de telèfon iguals.
Sintaxi:
Assert.assertNotEquals(actual,expected)
Paràmetres:
actual - El valor real que esperem de l'automatització.
S'esperava - El valor esperat.
Exemple: Comprovar que els codis PIN de dues àrees diferents són únics / no són iguals.
@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”); }
Consola:
Dos codis PIN únics són: 600012 i & 600001
Assert va passar.
SUPERAT: verifyAssertNotEqual
# 3) assertTrue
assertTrue s'utilitza per verificar si una condició booleana determinada és certa. Aquesta afirmació torna a ser vertadera si passa la condició especificada, si no, es produeix un error d'afirmació.
Sintaxi:
Assert.assertTrue(BooleanCondition);
Paràmetres :
Condició booleana - Condició per comprovar que el tipus de retorn sigui cert.
Ús :
Exemple: Per verificar, si el botó d'inici de sessió està present a la pàgina d'inici d'Amazon.in (confirmeu la visualització del botó).
Assert.assertTrue(SignIn.isDisplayed());
Aquí es verifica si la condició booleana - SignIn.IsDisplayed () retorna TRUE.
Exemple: Per verificar si hi ha un botó a la pàgina web.
@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'); }
Consola:
Es mostra el botó
SUPERAT: verifyAssertTrue
# 4) assertFalse
assertFalse s'utilitza per verificar si una condició booleana determinada és falsa. En altres paraules, el tipus de retorn de la condició booleana donada hauria de ser False. Aquesta afirmació passa si la condició especificada té un tipus de retorn FALS si no, es genera un error d'asserció.
Sintaxi:
Assert.assertFlase(BooleanCondition);
Paràmetres :
Condició booleana - Condició per comprovar que el seu tipus de retorn sigui fals.
Ús : Un escenari en què es pot utilitzar és verificar si no hi ha cap element a una pàgina web després d'una acció determinada.
Exemple 1: El botó d'inici de sessió no s'hauria de mostrar després d'iniciar la sessió.
Assert.assertFalse(SignIn.isDisplayed());
Això afirma si la condició booleana - SignIn.IsDisplayed () retorna FALS.
Exemple 2:
Per verificar si un div desapareix després d'una acció concreta. Per tant, aquí comprovem que no es mostra el div, o dit d’una altra manera, Afirmar que es mostri una condició falsa.
@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'); }
Consola:
Captcha div es va enfosquir a la pantalla
APROVAT:verifyAssertFalse
# 5) assertNull
Aquesta afirmació s'utilitza per verificar si un objecte té un valor de retorn nul. En altres paraules, comprova si el resultat és nul. Quan l'objecte és nul, l'afirmació es passa sense cap excepció.
Sintaxi:
AssertNull(Object)
Paràmetres :
Objecte - Qualsevol valor de dades que tingui un valor nul.
Ús:
Exemple 1:
Afirmar si una cadena és nul·la.
@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'); }
Exemple 2:
Afegiu si el valor del controlador és nul abans d'iniciar el controlador Chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Aquí l’objecte controlador és nul perquè no s’inicia. Per tant, AssertNull (controlador) serà un èxit, ja que es va verificar si l’objecte ‘controlador’ té un valor nul
# 6) assertNotNull
Aquesta afirmació espera un tipus de retorn vàlid, que no sigui el valor nul. En altres paraules, comprova si hi ha un objecte si no és nul. El tipus de retorn pot ser booleà, cadena, enter, llista, etc. Quan l'objecte no és nul, es passa Assertion, si no, es llança un AssertionError.
Sintaxi:
AssertNotNull(Object)
Paràmetres :
Objecte - Qualsevol valor de dades que contingui qualsevol valor de dades.
Ús:
Exemple 1: Assert és una cadena que conté algunes dades. És a dir, no és nul.
@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'); }
Exemple 2: Verifiqueu que l'objecte del controlador no és nul, després d'iniciar el FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Aquí, l'objecte controlador s'inicia al controlador de Firefox i, per tant, l'objecte 'controlador' té cert valor ja que no s'inicia. Per tant, AssertNotNull (controlador) serà un èxit, ja que es va verificar si l'objecte 'controlador' no té un valor nul
Feu clic a aquí per a casos de proves de mostra.
Programes de mostra per a afirmacions
Afirmar iguals:
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'); } }
Explicació del codi:
El codi anterior mostra l’ús del mètode AssertEquals en termes senzills.
- Com es va comentar anteriorment, afirmar iguals té dos paràmetres, és a dir, el resultat esperat i el resultat real. Si el resultat esperat no coincideix amb el del resultat real, es produirà un error d'afirmació i l'execució del programa finalitzarà al mètode assert equals.
- El codi anterior compara el valor de cadena definit per l'usuari amb el valor de cadena esperat.
- Tingueu en compte que en temps real, el resultat real serà una operació definida per l'usuari per a la qual el valor s'obtindrà en temps d'execució i es passarà com a paràmetre al mètode assert equals.
Afirmar cert:
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(); } }
Explicació del codi:
El codi anterior mostra l’ús del mètode assertTrue.
- Inicialment passem el títol de pàgina esperat a una variable. A continuació, instanciem un objecte del controlador de Firefox i el navegem a la pàgina web: https://www.google.com
- Més endavant, mitjançant el mètode assertsTrue, comparem el títol de la pàgina oberta amb el del títol de pàgina esperat. Si el títol de la pàgina oberta no coincideix amb el del títol esperat, es produirà un error d'afirmació i es finalitzarà l'execució del programa amb el mètode assertTrue.
- El codi anterior només s'executarà correctament quan el títol de la pàgina real coincideixi amb el del títol de pàgina esperat.
Afirmació falsa:
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(); } }
Explicació del codi:
El codi anterior mostra l’ús del mètode assertfalse.
- Inicialment passem el títol de pàgina esperat a una variable i, a continuació, instanciem un objecte del controlador de firefox i anem a la pàgina web: https://www.google.com
- Més endavant, mitjançant el mètode assertfalse comparem el títol de la pàgina oberta amb el del títol de pàgina esperat. Si el títol de la pàgina oberta coincideix amb el del títol esperat, es produirà un error d'afirmació i s'acabarà l'execució del programa amb el mètode assert false.
- El codi anterior només s'executarà correctament quan el títol de la pàgina real no coincideixi amb el del títol de pàgina esperat.
Codi de punta a punta per a afirmacions
A continuació es mostra un codi d'exemple d'extrem per a assertions. Hem utilitzat l’escenari següent amb finalitats senzilles.
Escenari:
- Obriu la pàgina web: https://www.google.com al navegador Firefox.
- Verifiqueu si el títol de la pàgina oberta equival al títol de la pàgina esperat mitjançant el mètode asserttrue.
- Al quadre de text de cerca, introduïu la paraula clau de cerca: Seleni.
- Premeu el botó Retorn del teclat.
- Verifiqueu si el títol de la pàgina oberta a la pàgina de resultats de cerca equival al títol de pàgina esperat mitjançant el mètode assertequals i assertfalse.
- Tanqueu el navegador.
Codi de mostra:
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(); } }
Sortida de codi:
preguntes d’entrevistes sobre serveis web reparadors
Inicialment, s’obrirà la finestra del navegador Firefox amb la pàgina web: https://www.google.com. El mètode Asserttrue verificarà si el títol de la pàgina oberta coincideix amb el del títol de pàgina esperat: Google.
El script introduirà la paraula clau de cerca com a Seleni i prem el botó d'inici.
Els mètodes Assertfalse i assertequals es comparen si el títol real de la pàgina de resultats de la cerca coincideix amb el del títol esperat ('seleni - Cerca de Google'). A continuació, es tancarà el navegador mitjançant el mètode driver.close.
Sortida de la consola:
El text que es mostra a continuació serà la sortida de la consola a Eclipse IDE
Eviteu errors comuns mentre utilitzeu Assert Class
1. Suposem que el vostre projecte té configurades les biblioteques JUnit, TestNG i python
2 . Però al vostre script, feu servir l’anotació TestNG i, per error, trieu Junit Assertion i la vostra classe Assert quedarà obsoleta. Consulteu a continuació la captura de pantalla
3. Per tant, és molt important escollir la classe Assert adequada, ja que TestNg tria l’única classe org.TestNG Assert
4. Per a Junit, escolliu la classe org.junit.Assert, etc.
5. Per realitzar Soft Assertion hem de trucar obligatòriament al mètode assertAll ()
6. Quan una afirmació falla, produirà l'error d'afirmació, no l'excepció
Conclusió
Podem concloure aquest article sobre afirmacions en seleni amb els indicadors següents:
- S'utilitza una afirmació per comparar el resultat real d'una aplicació amb el resultat esperat.
- Un cas de prova només es considera aprovat si s’han complert totes les afirmacions.
- El mètode AssertEquals compara el resultat esperat amb el del resultat real. Llença un AssertionError si el resultat esperat no coincideix amb el del resultat real i finalitza l'execució del programa amb el mètode assertequals.
- El mètode AssertTrue afirma que una condició especificada és certa. Llança un AssertionError si la condició passada al mètode asserttrue no es compleix.
- El mètode AssertFalse afirma que una condició especificada és falsa. Llança un AssertionError si no es compleix la condició passada per afirmar el mètode fals.
- Els mètodes AssertEquals, AssertTrue i AssertFalse són les afirmacions més utilitzades a Selenium.
A la proper tutorial , discutirem diversos exemples utilitzats en escenaris de projectes en temps real i comprendreem com s’utilitzen les afirmacions segons el propòsit.
Esperem que aquest article enriqueixi els vostres coneixements sobre afirmacions al seleni !!
=> Llegiu la sèrie d'entrenament Easy Selenium.
Lectura recomanada
- Introducció a JUnit Framework i el seu ús a Selenium Script - Selenium Tutorial # 11
- Com s'utilitza el marc TestNG per crear scripts de Selenium - Tutorial # 12 de TestNG Selenium
- Més informació sobre com s'utilitzen les anotacions TestNG al seleni (amb exemples)
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Integració de seleni amb JMeter
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Marcs d’automatització de proves més populars amb pros i contres de cadascun: Tutorial Selenium núm. 20
- 30+ millors tutorials sobre seleni: apreneu el seleni amb exemples reals