assertions selenium using junit
Este tutorial de Selenium sobre afirmaciones explica qué son las afirmaciones en Selenium y los diferentes tipos de afirmaciones y métodos de afirmación que utilizan los marcos Junit y TestNG:
implementación de la función hash de c ++
Las afirmaciones se utilizan para validar un caso de prueba y nos ayudan a comprender si un caso de prueba ha pasado o no. Se considera que la aserción se cumple si el resultado real de una aplicación coincide con el resultado esperado.
Al automatizar las aplicaciones web con Selenium, debemos validar nuestras pruebas para verificar si funcionan como se esperaba o no.(es decir, si el resultado de un caso de prueba pasa / falla).
=> Eche un vistazo a la guía para principiantes de selenio aquí.
Un caso de prueba se considera aprobado solo si se cumplen todas las afirmaciones. Las afirmaciones en Selenium se pueden manejar mediante métodos predefinidos de los marcos Junit y TestNG, que se explicarán en detalle en este artículo.
Lo que vas a aprender:
- Afirmaciones en selenio
- Tipos de afirmaciones en selenio
- Métodos de afirmación de Junit
- Métodos de afirmación de TestNG
- Programas de muestra para afirmaciones
- Conclusión
Afirmaciones en selenio
Las afirmaciones se utilizan para realizar varios tipos de validaciones en los casos de prueba, lo que a su vez nos ayuda a decidir si el caso de prueba ha pasado o no. WConsideramos que una prueba es satisfactoria si se ejecuta sin excepción.
Video tutorial sobre afirmaciones
Tipos de afirmaciones en selenio
Hay dos tipos de aserciones en Selenium y la categorización depende de cómo se comporta la aserción después de que una condición pasa o falla.
Aquí, discutiremos dos tipos de afirmaciones en Selenio :
- Afirmaciones duras
- Afirmaciones suaves
Haga clic aquí para ver una muestra Casos de prueba para probar afirmaciones.
# 1) afirmaciones duras (o simplemente afirmaciones)
Una aserción dura no continúa con la ejecución hasta que se cumple la condición de aserción.
Las afirmaciones estrictas suelen generar un error de afirmación cuando no se cumple una condición de afirmación. El caso de prueba se marcará inmediatamente como Fallido cuando falle una condición de afirmación dura.
Un escenario para utilizar este tipo de afirmación es que, cuando desee verificar si ha iniciado sesión correctamente y no pasa la prueba si no ha realizado un inicio de sesión exitoso, no tiene sentido continuar si la condición previa ( login) en sí mismo falla.
Tomemos otro ejemplo ilustrado aquí:
Considere un caso de prueba para afirmar el título de una página web.
|_+_|
En el ejemplo, la variable 'ActualTitle' contendrá el texto del título de la automatización. 'ExpectedTitle' contiene los datos de cadena esperados. Assert.assertEquals () verifica si ambos textos son iguales. El caso de prueba anterior pasará y continuará con la siguiente línea de ejecución, ya que el texto real y el texto esperado son los mismos.
Consola :
Afirmar pasó.
PASADO: VerifyTitle
El mismo caso de prueba, cuando falla, generará una excepción y detendrá la ejecución en esa instancia.
Ahora, cambiemos el Título esperado por el incorrecto.
|_+_|Consola:
java.lang.AssertionError:esperado (Bienvenido a Amazon)peroencontrado (Amazon.com: compras en línea de productos electrónicos, ropa, computadoras, libros, DVD y más)
Desde la consola, podemos ver que se omitió la declaración de impresión (System.out.println) ya que se encontró una falla en la declaración Assert y lanzó una excepción.
# 2) afirmaciones suaves
Una aserción suave continúa con el siguiente paso de la ejecución de la prueba incluso si no se cumple la condición de aserción.
Las afirmaciones blandas son el tipo de afirmaciones que no generan una excepción automáticamente cuando falla una afirmación a menos que se solicite. Esto es útil si está realizando varias validaciones en un formulario, de las cuales solo unas pocas validaciones tienen un impacto directo en la decisión del estado del caso de prueba.
Aquí, usamos una clase llamada SoftAssert y se llama al método assertAll () para lanzar todas las excepciones capturadas durante la ejecución. Cuando se usa softAssert, realiza una aserción y si se encuentra una excepción, no se lanza inmediatamente, sino que continúa hasta que llamamos al método assertAll () para lanzar todas las excepciones capturadas.
Es aconsejable utilizar diferentes objetos de la clase 'SoftAssert' para cada caso de prueba.
Considere el caso de prueba para afirmar el título de la página
En el siguiente ejemplo, se crean dos objetos de la clase 'SoftAssert' para ser utilizados en dos casos de prueba diferentes.
|_+_|Consola:
Título real: Amazon.com: compras en línea de productos electrónicos, ropa, computadoras, libros, DVD y más
Se ejecuta la afirmación 1
Se muestra el icono
Se ejecuta la afirmación 2
java.lang.AssertionError: fallaron las siguientes afirmaciones:
esperado (Bienvenido a Amazon) pero encontrado (Amazon.com: Compras en línea de productos electrónicos, ropa, computadoras, libros, DVD y más)
Desde la consola, podemos entender que a pesar de que la aserción fue una falla en el primer caso de prueba (verifyTitle), la ejecución continuó a la siguiente línea en la que se imprimió la declaración: 'Se ejecuta la aserción 1' y solo después de llamar a softAssert se lanzó la excepción.
¿Cuándo utilizar la afirmación dura y blanda?
Si necesita ejecutar todos los pasos de un caso de prueba para que se ejecute incluso después de que falle una aserción, y también desea informar una excepción de aserción, opte por utilizar Soft Assertions. El uso de Soft Assertions en sus scripts de prueba es una buena práctica y una forma efectiva de manejar la ejecución de su prueba.
Si desea que la ejecución de su caso de prueba continúe solo después de pasar una aserción ( Por ejemplo, Para verificar un inicio de sesión válido y solo luego ejecutar los otros pasos), luego use Afirmaciones.
Métodos de afirmación de Junit
Los distintos tipos de métodos Junit Assert se explican a continuación en detalle.
# 1) assertEquals
El método assertequals compara el resultado esperado con el resultado real. Lanza un AssertionError si el resultado esperado no coincide con el del resultado real y finaliza la ejecución del programa en el método assertion equals.
Sintaxis:
|_+_|Ejemplo:
Cadena esperada = 'https://www.google.com';
String actualURL = 'https://www.google.com';
Assert.assertEquals (esperado, actualURL);
# 2) aseverar verdad
El método asserttrue afirma que una condición especificada es verdadera.
Toma dos parámetros, es decir, uno es el mensaje y el otro es la condición contra la cual se debe aplicar la aserción. Lanza un AssertionError si no se satisface la condición pasada al método asserttrue.
Sintaxis:
|_+_|message: mensaje que se mostrará en caso de error de afirmación.
condición: condición contra la cual se debe aplicar la aserción.
Ejemplo:
Assert.assertTrue ('Mensaje de prueba de afirmación verdadera', verdadero);
# 3) aseverarFalso
El método assert false afirma que una condición especificada es falsa.
Toma dos parámetros, es decir, uno es el mensaje y el otro es la condición contra la cual se debe aplicar la aserción. Lanza un AssertionError si no se satisface la condición pasada al método assertfalse.
Sintaxis:
|_+_|message: mensaje que se mostrará en caso de error de afirmación.
condición: condición contra la cual se debe aplicar la aserción.
Ejemplo:
Assert.assertFalse ('Confirmar mensaje de prueba falso' falso);
# 4) assertNull
Asser null se utiliza para verificar si el objeto proporcionado contiene un valor nulo. Toma un objeto como parámetro y arroja un AssertionError si el objeto proporcionado no tiene un valor nulo.
Sintaxis:
|_+_|Ejemplo:
DemoClass demo = new DemoClass ();
Assert.assertNull (demostración);
# 5) assertNotNull
asert no nulo se utiliza para verificar que un objeto proporcionado no tiene un valor nulo. Toma un objeto como parámetro y arroja un AssertionError si el objeto proporcionado no contiene un valor nulo.
Sintaxis:
|_+_|Ejemplo:
DemoClass demo = new DemoClass ();
Assert.assertNotNull (demostración);
# 6) aseverar lo mismo
Afirmar el mismo método comprueba si dos objetos proporcionados como parámetros hacen referencia al mismo objeto. Lanza un AssertionError si los objetos proporcionados no hacen referencia al mismo objeto con el mensaje proporcionado.
Tenga en cuenta que Assert mismo compara las referencias de objetos solamente, pero no los valores reales.
Sintaxis:
|_+_|Ejemplo:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertSame ('Dos objetos son iguales', demo1, demo2);
# 7) assertNotSame
Afirmar no igual verifica que dos objetos no son iguales. Si dos objetos hacen referencia al mismo objeto, se lanzará un AssertionError.
Tenga en cuenta que el método de aserción no es el mismo compara las referencias de los objetos y no los valores presentes en los objetos.
Sintaxis:
|_+_|Ejemplo:
DemoClass1 demo1 = new DemoClass1 ();
DemoClass2 demo2 = new DemoClass2 ();
Assert.assertNotSame (“Dos objetos no son iguales”, demo1, demo2);
# 8) assertArrayEquals
Asertir es igual a verifica que dos matrices de objetos son iguales. Si ambas matrices contienen valores nulos, entonces se consideran iguales. Este método arroja un AssertionError con el mensaje proporcionado si ambas matrices de objetos no se consideran iguales.
Sintaxis:
|_+_|mensaje: mensaje que se mostrará en caso de error de afirmación.
esperado - Matriz de objetos.
actual: matriz de objetos.
Ejemplo:
Cadena () esperaba = {'Mango', 'Manzana', 'Plátano'}
String () actual = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (esperado, real);
Métodos de afirmación de TestNG
Los métodos TestNG Assert serán los mismos que los métodos de aserción de Junit que se discutieron anteriormente. El mayor diferencia entre Junit y TestNG Los métodos de aserción se interponen en el manejo de aserciones.
TestNG proporciona técnicas de manejo de afirmaciones más avanzadas, como clases dependientes, pruebas de grupo, pruebas parametrizadas, etc.
Tutoriales en vídeo sobre métodos de afirmación de TestNG
Parte I
Parte II
Parte III
# 1) assertEquals
Este método se utiliza para afirmar si dos valores de datos son iguales. Podemos comparar los valores de diferentes tipos de datos como cadena, booleano, entero. etc. Siempre que los valores esperados y reales sean los mismos, entonces la aserción pasa sin excepción. Si no es así, se lanza un AssertionError.
qué programa abrirá un archivo eps
Uso : Este tipo de afirmación se utiliza para verificar el caso cuando los datos que se muestran en la página web son los esperados o según el requisito especificado.
Sintaxis:
|_+_|Parámetros:
Actual - El valor real que esperamos de la automatización.
Previsto –El valor esperado.
Ejemplo: Para verificar eso, si la página de inicio de Amazon tiene un título que dice 'Amazon.com: compras en línea de productos electrónicos, ropa, computadoras, libros, DVD y más '
|_+_|Consola :
Afirmar pasó.
PASADO: VerifyTitle
En el ejemplo anterior, se verificaron dos cadenas para valores iguales. Asimismo, se puede verificar la igualdad de otros tipos de datos como enteros, booleanos, etc.
# 2) assertNotEquals
assertNotEquals se usa para verificar si dos valores de datos no son iguales. Es todo lo contrario del funcionamiento de assertEquals Assertion. Siempre que los valores esperados y reales coincidan, la aserción falla con una excepción y marca el caso de prueba como 'fallido'.
Uso : Se utiliza en los casos en que nos gustaría verificar que cada dato es único en una página web. Por ejemplo , un directorio telefónico, donde no hay 2 números de teléfono iguales.
Sintaxis:
|_+_|Parámetros:
Actual - El valor real que esperamos de la automatización.
Previsto - El valor esperado.
Ejemplo: Para verificar que los códigos pin de dos áreas diferentes sean únicos / no iguales.
|_+_|Consola :
Dos códigos PIN únicos son: 600012 && 600001
Afirmar pasó.
PASADO: verifyAssertNotEqual
# 3) aseverar verdad
assertTrue se usa para verificar si una condición booleana dada es verdadera. Esta aserción devuelve verdadera si la condición especificada pasa, si no, se lanza un error de aserción.
Sintaxis:
|_+_| Parámetros :
BooleanCondition - Condición para comprobar que su tipo de retorno sea Verdadero.
Uso :
Ejemplo: Para verificar, si el botón Iniciar sesión está presente en la página de inicio de Amazon.in (afirmar para la visualización del botón).
|_+_|Aquí, verifica si la condición booleana - SignIn.IsDisplayed () devuelve VERDADERO.
Ejemplo: Para verificar si un botón está presente en la página web.
|_+_|Consola :
Se muestra el botón
PASADO: verifyAssertTrue
# 4) aseverarFalso
assertFalse se usa para verificar si una condición booleana dada es falsa. En otras palabras, el tipo de retorno de la condición booleana dada debe ser Falso. Esta aserción pasa si la condición especificada tiene un tipo de retorno FALSO; de lo contrario, se lanza un error de aserción.
Sintaxis:
|_+_| Parámetros :
BooleanCondition - Condición para comprobar que su tipo de devolución sea Falso.
Uso : Un escenario en el que se puede utilizar es para verificar si un elemento no está presente en una página web después de una determinada acción.
Ejemplo 1: El botón de inicio de sesión no debe mostrarse después de iniciar sesión.
|_+_|Esto afirma si la condición booleana - SignIn.IsDisplayed () devuelve FALSO.
Ejemplo 2:
Para verificar si un div desaparece después de una acción en particular. Entonces, aquí verificamos que el div no se muestra, o en otras palabras, afirmar una condición falsa en un div mostrado.
|_+_|Consola :
Captcha div atenuado fuera de la pantalla
APROBADO:verifyAssertFalse
# 5) assertNull
Esta aserción se usa para verificar si un objeto tiene un valor de retorno nulo. En otras palabras, comprueba si el resultado es nulo. Cuando el objeto es nulo, la aserción se pasa sin excepción.
Sintaxis:
|_+_| Parámetros :
Objeto - Cualquier valor de datos que tenga un valor nulo.
Uso:
Ejemplo 1:
Confirmar si una cadena es nula.
|_+_|Ejemplo 2:
Confirme si el valor del controlador es nulo antes de iniciar el controlador de Chrome.
|_+_|Aquí, el objeto del controlador es nulo ya que no está iniciado. Por lo tanto, AssertNull (controlador) será un éxito ya que verificó si el objeto 'controlador' tiene un valor nulo
# 6) assertNotNull
Esta aserción espera un tipo de retorno válido, distinto del valor nulo. En otras palabras, busca un objeto si no es nulo. El tipo de retorno puede ser booleano, cadena, entero, lista, etc. Cuando el objeto no es nulo, se pasa Assertion, si no, se lanza un AssertionError.
Sintaxis:
|_+_| Parámetros :
Objeto - Cualquier valor de datos que contenga cualquier valor de datos.
Uso:
Ejemplo 1: Assert es una cadena que contiene algunos datos. Es decir, no es nulo.
|_+_|Ejemplo 2: Verifique que el objeto del controlador no sea nulo, después de iniciar FirefoxDriver.
|_+_|Aquí, el objeto del controlador se inicia en el controlador de Firefox y, por lo tanto, el objeto 'controlador' tiene algún valor ya que no se inicia. Por lo tanto, AssertNotNull (controlador) será un éxito ya que verificó si el objeto 'controlador' no contiene un valor nulo
Hacer clic Aquí para casos de prueba de muestra.
Programas de muestra para afirmaciones
Afirmar es igual a:
|_+_|Explicación del código:
El código anterior demuestra el uso del método AssertEquals en términos simples.
- Como se discutió anteriormente, la aserción es igual a dos parámetros, es decir, resultado esperado y resultado real. Si el resultado esperado no coincide con el resultado real, se generará un error de aserción y la ejecución del programa terminará en el método de aserción igual a.
- El código anterior compara el valor de cadena definido por el usuario con el valor de cadena esperado.
- Tenga en cuenta que en tiempo real, el resultado real será una operación definida por el usuario para la cual el valor se obtendrá en tiempo de ejecución y se pasará como un parámetro al método de aserción igual.
Afirmar verdadero:
|_+_|Explicación del código:
El código anterior demuestra el uso del método assertTrue.
- Inicialmente, estamos pasando el título de página esperado a una variable. A continuación, estamos creando una instancia de un objeto del controlador de Firefox y navegando a la página web: https://www.google.com
- Más tarde, utilizando el método assertsTrue, comparamos el título de la página abierta con el título de la página esperado. Si el título de la página abierta no coincide con el título esperado, se producirá un error de aserción y la ejecución del programa finalizará en el método assertTrue.
- El código anterior se ejecutará con éxito solo cuando el título de la página real coincida con el título de la página esperado.
Afirmar falso:
|_+_|Explicación del código:
El código anterior demuestra el uso del método assertfalse.
- Inicialmente, pasamos el título de la página esperado a una variable y luego instanciamos un objeto del controlador de Firefox y navegamos a la página web: https://www.google.com
- Más tarde, utilizando el método assertfalse, comparamos el título de la página abierta con el título de la página esperado. Si el título de la página abierta coincide con el del título esperado, se producirá un error de aserción y la ejecución del programa finalizará con el método de aserción falsa.
- El código anterior se ejecutará correctamente solo cuando el título de la página real no coincida con el título de la página esperado.
Código de extremo a extremo para afirmaciones
A continuación se muestra un ejemplo de código de principio a fin para las afirmaciones. Hemos utilizado el siguiente escenario por motivos de simplicidad.
Guión:
- Abra la página web: https://www.google.com en el navegador Firefox.
- Verifique si el título de la página abierta es equivalente al título de la página esperado utilizando el método asserttrue.
- En el cuadro de texto de búsqueda, ingrese la palabra clave de búsqueda: Selenio.
- Presione el botón Enter en el teclado.
- Verifique si el título de la página abierta en la página de resultados de búsqueda es equivalente al título de la página esperado utilizando el método assertequals y el método assertfalse.
- Cierre el navegador.
Código de muestra:
|_+_|Salida de código:
Inicialmente, la ventana del navegador Firefox se abrirá con la página web: https://www.google.com. El método Asserttrue verificará si el título de la página abierta coincide con el título de la página esperado: Google.
El script ingresará la palabra clave de búsqueda como Selenium y presionará el botón Enter.
Los métodos Assertfalse y Assertequals comparan si el título de la página real de la pantalla de resultados de búsqueda coincide con el título esperado: 'selenio - Búsqueda de Google'. A continuación, el navegador se cerrará mediante el método driver.close.
Salida de consola:
El texto que se muestra a continuación será la salida de la consola en Eclipse IDE
Evite errores comunes al usar Assert Class
1. Suponga que su proyecto tiene las bibliotecas JUnit, TestNG y python configuradas
2 . Pero en su script, está usando la anotación TestNG y, por error, elige Junit Assertion, entonces su clase Assert quedará obsoleta. Consulte la siguiente captura de pantalla
3. Por lo tanto, es muy importante elegir la clase Assert adecuada, para TestNg, elija la única clase org.TestNG Assert
4. Para Junit, elija org.junit.Assert class y así sucesivamente.
5. Para realizar Soft Assertion necesitamos llamar al método assertAll () obligatoriamente
cómo convertir char a int c ++
6. Cuando una aserción falla, arrojará un error de aserción, no la excepción
Conclusión
Podemos concluir este artículo sobre afirmaciones en selenio con los siguientes consejos:
- Una aserción se utiliza para comparar el resultado real de una aplicación con el resultado esperado.
- Un caso de prueba se considera aprobado solo si se cumplen todas las afirmaciones.
- El método AssertEquals compara el resultado esperado con el resultado real. Lanza un AssertionError si el resultado esperado no coincide con el resultado real y termina la ejecución del programa en el método assertequals.
- El método AssertTrue afirma que una condición especificada es verdadera. Lanza un AssertionError si no se satisface la condición pasada al método asserttrue.
- El método AssertFalse afirma que una condición especificada es falsa. Lanza un AssertionError si la condición pasada para afirmar que el método falso no se cumple.
- Los métodos AssertEquals, AssertTrue y AssertFalse son las aserciones más utilizadas en Selenium.
En el próximo tutorial , analizaremos varios ejemplos utilizados en escenarios de proyectos en tiempo real y comprenderemos cómo se utilizan las afirmaciones de acuerdo con el propósito.
¡Esperamos que este artículo enriquezca su conocimiento sobre afirmaciones en selenio!
=> Lea la serie de entrenamiento Easy Selenium.
Lectura recomendada
- Introducción a JUnit Framework y su uso en Selenium Script - Tutorial de Selenium n. ° 11
- Cómo usar TestNG Framework para crear scripts de Selenium - Tutorial de TestNG Selenium n. ° 12
- Aprenda a usar las anotaciones de TestNG en Selenium (con ejemplos)
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Integración de selenio con JMeter
- Introducción a Selenium WebDriver - Tutorial de Selenium n. ° 8
- Los marcos de automatización de pruebas más populares con ventajas y desventajas de cada uno: tutorial de Selenium n. ° 20
- Más de 30 mejores tutoriales de selenio: aprenda selenio con ejemplos reales