En este tema, aprenderás a crear casos de prueba utilizando TestNG, un popular marco de pruebas para Java que se integra perfectamente con Selenium. TestNG proporciona una serie de características avanzadas que facilitan la creación, ejecución y gestión de pruebas automatizadas.
Conceptos Clave de TestNG
Antes de comenzar a escribir casos de prueba, es importante entender algunos conceptos clave de TestNG:
- Anotaciones: TestNG utiliza anotaciones para definir métodos de prueba y su comportamiento. Algunas de las anotaciones más comunes son
@Test
,@BeforeMethod
,@AfterMethod
,@BeforeClass
, y@AfterClass
. - Suite de Pruebas: Una colección de casos de prueba que se ejecutan juntos.
- Asserts: Utilizados para verificar que los resultados de las pruebas sean los esperados.
Configuración Básica de un Caso de Prueba
Paso 1: Configurar el Proyecto
Asegúrate de que tu proyecto esté configurado con Selenium y TestNG. Si no lo has hecho, revisa el módulo anterior sobre la configuración de TestNG con Selenium.
Paso 2: Crear una Clase de Prueba
Crea una nueva clase de Java en tu proyecto. Esta clase contendrá tus métodos de prueba.
import org.testng.annotations.Test; public class MiPrimeraPruebaTestNG { @Test public void pruebaEjemplo() { System.out.println("Este es mi primer caso de prueba con TestNG"); } }
Explicación del Código
@Test
: Esta anotación indica que el métodopruebaEjemplo
es un caso de prueba.System.out.println
: Este es un simple comando para imprimir un mensaje en la consola, utilizado aquí para demostrar la ejecución del caso de prueba.
Paso 3: Ejecutar el Caso de Prueba
Para ejecutar el caso de prueba, puedes usar un IDE como IntelliJ IDEA o Eclipse. Haz clic derecho en la clase de prueba y selecciona "Run As" -> "TestNG Test".
Uso de Asserts en TestNG
Los asserts son fundamentales para validar los resultados de tus pruebas. Aquí hay un ejemplo de cómo usarlos:
import org.testng.Assert; import org.testng.annotations.Test; public class PruebaConAsserts { @Test public void verificarTituloPagina() { String tituloEsperado = "Página de Inicio"; String tituloActual = "Página de Inicio"; // Simulación de obtener el título de una página web Assert.assertEquals(tituloActual, tituloEsperado, "El título de la página no coincide"); } }
Explicación del Código
Assert.assertEquals
: Compara dos valores. Si no son iguales, la prueba falla y se muestra el mensaje proporcionado.tituloEsperado
ytituloActual
: Variables que simulan el título esperado y el título real de una página web.
Ejercicio Práctico
Ejercicio
Crea un caso de prueba que verifique si un número es par. Usa TestNG para implementar el caso de prueba.
Solución
import org.testng.Assert; import org.testng.annotations.Test; public class VerificarNumeroPar { @Test public void esNumeroPar() { int numero = 4; boolean esPar = (numero % 2 == 0); Assert.assertTrue(esPar, "El número no es par"); } }
Explicación del Código
numero % 2 == 0
: Verifica si el número es divisible por 2, lo que indica que es par.Assert.assertTrue
: Verifica que la condiciónesPar
sea verdadera. Si no lo es, la prueba falla.
Conclusión
En esta sección, aprendiste a crear casos de prueba básicos utilizando TestNG. Aprendiste sobre las anotaciones de TestNG, cómo ejecutar casos de prueba y cómo usar asserts para validar resultados. Estos fundamentos te preparan para crear pruebas más complejas y robustas en los siguientes módulos. Asegúrate de practicar creando tus propios casos de prueba para afianzar estos conceptos.
Automatización de Pruebas con Selenium
Módulo 1: Introducción a la Automatización de Pruebas
- ¿Qué es la Automatización de Pruebas?
- Beneficios de la Automatización de Pruebas
- Visión General de Selenium
- Configuración de Tu Entorno
Módulo 2: Comenzando con Selenium
- Introducción a Selenium WebDriver
- Instalación de Selenium WebDriver
- Primer Script de Selenium
- Entendiendo la Interfaz WebDriver
Módulo 3: Localización de Elementos Web
- Introducción a los Localizadores
- Uso de Localizadores ID y Name
- XPath y Selectores CSS
- Estrategias Avanzadas de Localización
Módulo 4: Interacción con Elementos Web
- Realizando Acciones en Elementos Web
- Manejo de Desplegables y Casillas de Verificación
- Trabajando con Alertas y Ventanas Emergentes
- Gestión de Ventanas del Navegador y Marcos
Módulo 5: Sincronización en Selenium
Módulo 6: Marcos de Pruebas y Selenium
- Introducción a TestNG
- Configuración de TestNG con Selenium
- Creación de Casos de Prueba TestNG
- Pruebas Basadas en Datos con TestNG
Módulo 7: Conceptos Avanzados de Selenium
- Manejo de Llamadas AJAX
- Trabajando con Cookies
- Captura de Capturas de Pantalla
- Ejecución de JavaScript con Selenium
Módulo 8: Selenium Grid y Pruebas en Paralelo
- Introducción a Selenium Grid
- Configuración de Selenium Grid
- Ejecución de Pruebas en Paralelo
- Pruebas en Múltiples Navegadores
Módulo 9: Integración Continua y Selenium
- Introducción a la Integración Continua
- Integración de Selenium con Jenkins
- Automatización de la Ejecución de Pruebas
- Reportes y Registro