Crear pruebas automatizadas con TestNG

1 Introducción

Las pruebas automatizadas se pueden crear con diferentes herramientas, dependiendo del tipo de pruebas. Las pruebas de integración se pueden crear con SoapUI, las pruebas unitarias con el módulo de pruebas unitarias y las pruebas de interfaz de usuario con Selenium IDE. Con Selenium IDE puede crear scripts para ayudar en las pruebas exploratorias asistidas por automatización. Si está buscando crear pruebas robustas basadas en navegador, debe considerar el uso de un marco de pruebas con Selenium.

TestNG es un framework de pruebas Java que se puede usar para manejar Selenium. En este tutorial, aprenderá a crear una prueba automatizada con TestNG.

Este le enseñará cómo hacer lo siguiente:

  • Crear TestNG archivos de prueba
  • Ejecutar pruebas automatizadas con TestNG
  • Generar reportes con TestNG

2 Requisitos previos

Antes de comenzar con este how-to, asegúrese de haber completado los siguientes requisitos previos:

  • Descargue e instale Eclipse
  • Descargue el Cliente Selenium & WebDriver para Java

Este manual utiliza la plantilla de la aplicación Gastos de la empresa que comienza en la sección Agregar el Tercer Método de prueba para un escenario de ejemplo. Sin embargo, esta plantilla de aplicación ya no es compatible con la plataforma Mendix. Por lo tanto, las secciones que usan esta plantilla de aplicación solo se pueden usar como referencia y no como secciones que se pueden completar paso a paso.

3 Creación de un proyecto Java

En este capítulo, instalará el complemento TestNG y creará un proyecto Java en Eclipse, incluidas las bibliotecas TestNG y Selenium:

  1. Eclipse Abierto.
  2. Siga las instrucciones del complemento Eclipse > Instalar desde la sección actualizar sitio en Descargar pruebas.
  3. Reinicie Eclipse para que los cambios surtan efecto.
  4. Seleccione Archivo > Nuevo > Proyecto Java.
  5. Ingrese MyFirstTestNGProject para el nombre del proyecto y haga clic en Siguiente.
  6. Seleccione la pestaña Bibliotecas y haga clic en Agregar biblioteca.
  7. Seleccione TestNG y haga clic en Siguiente.
  8. Haga clic en Finalizar para establecer la biblioteca de pruebas predeterminada en este proyecto.
  9. Haga clic en Agregar JARS externos to y vaya a donde guardó los archivos JAR de Selenio.
  10. Agregue todos los archivos JAR dentro de las carpetas selenio y libs:

  11. Haga clic en Finalizar para crear el proyecto Java. MyFirstTestNGProject se muestra en el Explorador de Paquetes:

ha terminado la configuración de su proyecto!

4 Crear un archivo de prueba

Para crear un nuevo archivo de prueba, siga estos pasos:

  1. Haga clic con el botón derecho en la carpeta src y seleccione Nuevo > Otro…:
  2. Seleccione Clase TestNG y, a continuación, haga clic en Siguiente:

  3. Haga clic en Examinar Browse para seleccionar una carpeta de origen, seleccione MyFirstTestNGProject > src y haga clic en Aceptar.

  4. Introduzca la siguiente información:

    • nombre del Paquete: myfirsttestngpackage
    • nombre de Clase: MyFirstTestNGFile
    • @BeforeTest: true
    • @AfterTest: cierto

  5. haga Clic en Finalizar. La plantilla para su primer archivo de prueba se creará automáticamente:

    La anotación @Test se usa para indicar que el método bajo ella es un caso de prueba. En este caso, el método f es un caso de prueba. La anotación @BeforeTest se usa para indicar que el método bajo ella se ejecutará antes del primer caso de prueba. La anotación @AfterTest se usa para indicar que el método bajo ella se ejecutará después del último caso de prueba.

5 Crear un Caso de Prueba

ahora Vamos código caso de prueba.

5.1 Agregar un WebDriver

Para crear una variable que se utilizará para el WebDriver, siga estos pasos:

  1. Buscar lo siguiente:

    public class MyFirstTestNGFile {
  2. Añade el siguiente código en la siguiente línea. Esto creará una variable driver del tipo WebDriver:

    public WebDriver driver;
  3. Pulse Ctrl + Mayús + O para organizar las importaciones. Esto importará las instrucciones que faltan y eliminará las instrucciones de importación no utilizadas. Se importará la siguiente declaración:

    import org.openqa.selenium.WebDriver;

5.2 Agregar un método BeforeTest

La anotación @BeforeTest se usa para indicar que el método que se encuentra debajo se ejecutará antes del primer caso de prueba. Antes del primer caso de prueba, abra el navegador Firefox siguiendo estos pasos:

  1. Cambie el siguiente código:

    @BeforeTestpublic void beforeTest() {}

    en:

    @BeforeTestpublic void beforeTest() { driver = new FirefoxDriver();}

    Esto crea una nueva instancia del controlador de Firefox y abre el navegador Firefox.

  2. Presione CTRL + MAYÚS + O. Se importará la siguiente instrucción:

    import org.openqa.selenium.firefox.FirefoxDriver;

5.3 Añadir un método AfterTest

La anotación @AfterTest se usa para indicar que el método bajo él se ejecutará después del último caso de prueba. Después del último caso de prueba, cierre el navegador cambiando el siguiente código:

@AfterTestpublic void afterTest() {}

en:

@AfterTestpublic void afterTest() {driver.close();}

Esto cerrará el navegador Firefox.

5.4 Agregar el primer método de prueba

Para agregar el primer método de prueba, abra una URL en el navegador y, a continuación, cambie el siguiente código:

@Testpublic void f() {}

en:

@Test(priority=1)public void openApp() {driver.get("http://localhost:8080/index.html");}

Este método de prueba abrirá la URL http://localhost:8080/index.html en el navegador Firefox. Por defecto, los métodos anotados por @Test se ejecutan alfabéticamente. Puede usar parámetros para modificar la función de anotación. El parámetro priority se puede usar para ejecutar los métodos en un orden diferente. TestNG ejecutará la anotación @Test con el valor de prioridad más bajo hasta el más grande.

5.5 Agregue el segundo método de prueba

Ahora que está en la ventana de inicio de sesión, querrá iniciar sesión. Para agregar el segundo método de prueba, siga estos pasos:

  1. Abre Firefox y ve a http://localhost:8080/index.html.
  2. Utilice las herramientas para desarrolladores para inspeccionar el elemento.
  3. Haga clic en el campo de entrada Nombre de usuario. El ID de este campo es usernameInput. El selector CSS de un ID es un hashtag (#) + el nombre del ID. Para el campo Nombre de usuario, este será #usernameInput. El mismo principio se utiliza para los otros pasos. El selector de CSS # usernameInput es único. Hay un nodo coincidente:

  4. Repita los pasos 5-6 para el campo de entrada de contraseña y el botón de inicio de sesión:

    el Elemento Selector CSS
    campo de entrada de Contraseña #passwordInput
    botón iniciar sesión #loginButton
  5. Añadir un nuevo método de prueba llamado login. Utilice el siguiente código:

    @Test(priority=2)public void login() { driver.findElement(By.cssSelector("#usernameInput")).sendKeys("MxAdmin"); driver.findElement(By.cssSelector("#passwordInput")).sendKeys("1"); driver.findElement(By.cssSelector("#loginButton")).click();}

Este método de ensayo contiene los siguientes pasos de ensayo:

  1. Escriba MxAdmin como nombre de usuario.
  2. Introduzca 1 como contraseña.
  3. Haga clic en el botón de inicio de sesión.

5.6 Agregue el tercer método de prueba

Para agregar el tercer método de prueba, siga estos pasos:

  1. Abra su aplicación y, en el Explorador de aplicaciones, abra la página Detalles del programa.
  2. Seleccione la pestaña Gastos:

    El nombre de la pestaña de gastos es tabPage4. Cada elemento obtendrá automáticamente la clase CSS mx-name-, por lo que la pestaña de gastos obtendrá la clase CSS mx-name-tabPage4 cuando la aplicación se esté ejecutando.

  3. volver a Eclipse.

  4. Agregue un nuevo método de prueba llamado openExpensesTab. Utilice el siguiente código:

    @Test(priority=3)public void openExpensesTab() { WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".mx-name-tabPage4"))).click();}

    Este método de prueba llama a ExpectedCondition cada 500 milisegundos hasta que regresa correctamente o han pasado 10 segundos. Cuando hayan pasado 10 segundos y el elemento no esté localizado, se lanzará una TimeoutException. Si el elemento se encuentra en 10 segundos, el método hará clic en el elemento con nombre de clase mx-name-tabPage4. La clase de la pestaña de gastos es mx-name-tabPage4. El selector CSS de una clase es un punto (.) + el nombre de la clase, por lo que para la pestaña de gastos, será .mx-name-tabPage4.

5.7 Agregue el Cuarto Método de prueba

Ahora que está en la pestaña de Gastos, querrá crear un nuevo gasto. Para agregar el cuarto método de prueba, siga estos pasos:

  1. Abra Studio Pro y, a continuación, abra la página Desktop_AdminMenu.
  2. Seleccione el botón Nuevo gasto:

    El nombre del Nuevo botón de gastos es newButton3, por lo que el botón tendrá la clase CSS mx-name-newButton3 :

  3. Abra la página Desktop_Expense_NewEdit_Admin.

  4. Encuentre los nombres de los siguientes elementos (como hizo en el paso 3):

    el Elemento Nombre
    campo de Cantidad textBox6
    Descripción desplegable referenceSelector1
    botón Guardar saveButton1
    The name of an element in your app may be different than the name shown in the Name column. In step 7, use the name of the element of your app.
  5. volver a Eclipse.

  6. Agregue un nuevo método de prueba llamado createExpense. Utilice el siguiente código:

    @Test(priority=4)public void createExpense() { driver.findElement(By.cssSelector(".mx-name-newButton3")).click(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-textBox6 input")).clear(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-textBox6 input")).sendKeys("15.00"); driver.findElement(By.cssSelector(".mx-window-active .mx-name-referenceSelector1 option:nth-child(2)")).click(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-saveButton1")).click();}

    Este método de ensayo contiene los siguientes pasos de ensayo:

    1. Haz clic en Nuevo Gasto.
    2. Borre el campo Cantidad.
    3. Ingrese 15.00 en el campo de Importe.
    4. Seleccione la segunda opción del menú desplegable Descripción.
    5. Haga clic en Guardar.

    Se mostrará una ventana emergente después de hacer clic en Nuevo gasto (.mx-name-newButton3). Para asegurarse de que se recupera el elemento de la página activa (que en este caso es la ventana emergente), debe agregar .mx-window-active al selector CSS de los elementos de la ventana emergente.

    Para cada campo de entrada, debe agregar input al final del selector CSS.

    El valor predeterminado del campo cantidad es 0.00. Para introducir un nuevo valor, primero debe borrar el campo.

    El selector de referencia tiene seis opciones; vacío, Alojamiento, Comida, Otros, Suministros, Transporte. Para seleccionar Alojamiento (la segunda opción), debe agregar option:nth-child(2) al final del selector CSS.

5.8 Agregue el Quinto Método de prueba

Después de crear un gasto, querrá cerrar sesión. Para agregar el quinto método de prueba, siga estos pasos:

  1. Abra Studio Pro y, a continuación, abra el fragmento Desktop_MyInfo.
  2. Busque el nombre del siguiente elemento:

    el Elemento Nombre
    botón cerrar sesión signOutButton1
  3. Añadir un nuevo método de prueba llamado signOut. Utilice el siguiente código:

    @Test(priority=5)public void signOut() { driver.findElement(By.cssSelector(".mx-name-signOutButton1")).click();}

    Este método de prueba hará clic en el elemento con el nombre de clase mx-name-signOutButton1.

6 Ejecutar la prueba

Ahora está listo para ejecutar la prueba. Para ejecutar la prueba, siga estos pasos:

  1. Haga clic con el botón derecho en la carpeta MyFirstTestNGProject.
  2. Seleccione Ejecutar como > TestNG Test:

    Los resultados de la prueba se mostrará en la ventana de la consola y en el TestNG ventana de resultados:

7 Informe de Prueba

TestNG genera informes en formato HTML. Para probar el informe, siga estos pasos:

  1. Haga clic con el botón derecho en la carpeta MyFirstTestNGProject y seleccione Actualizar. Se creará una carpeta de salida de prueba:

  2. Abra la carpeta de salida de prueba.

  3. Haga clic con el botón derecho en el índice.archivo html.

  4. Seleccione Abrir con > Navegador Web. El informe se verá así:

  5. Haga clic en (mostrar). Los métodos de prueba se muestran alfabéticamente:

  6. Haga clic en la vista cronológica. Se mostrará un resumen con los métodos en orden cronológico:

8 Creación de un conjunto de pruebas

Cuando ejecuta su prueba como lo hizo en Ejecutar la prueba, se crea automáticamente un conjunto de pruebas. Este conjunto de pruebas contiene todos los archivos de prueba que se pueden encontrar en el proyecto. Pero, ¿qué pasa si solo desea realizar pruebas específicas? De lo que necesita para crear un conjunto de pruebas usted mismo.

  1. Haga clic con el botón derecho en la carpeta src y seleccione Nuevo > Otro.
  2. Abra la carpeta XML y seleccione Archivo XML:

  3. Haga clic en Siguiente.

  4. Cambie el nombre del archivo a MyFirstTestSuite.XML.

  5. haga Clic en Finalizar para crear el archivo XML:

  6. haga Clic en la ficha Origen:

  7. Cambie el código siguiente:

    <?xml version="1.0" encoding="UTF-8"?>

    en

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="Test1"> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    Esto creará el nuevo conjunto de pruebas MyFirstTestSuite. El conjunto de pruebas contiene una prueba: Test1. La prueba contiene un archivo de prueba, myfirsttestngpackage.MyFirstTestNGFile.

  8. Haz clic con el botón derecho en el sitio Myfirsttest.archivo xml y seleccione Ejecutar como > 1 Conjunto de pruebas.

Bien hecho! ¡Creaste tu primera Suite de pruebas!

9 Ejecute Su Conjunto de pruebas en Varios Navegadores Utilizando los Parámetros @

La prueba que creó ahora solo se ejecuta en Firefox. Si desea asegurarse de que la funcionalidad funciona como se espera en otros navegadores, debe realizar pruebas en varios navegadores. Con TestNG es muy fácil realizar la misma prueba en diferentes navegadores.

  1. Descargue el ChromeDriver aquí: https://sites.google.com/a/chromium.org/chromedriver/downloads.
  2. Descargue el IeDriver aquí: http://selenium-release.storage.googleapis.com/index.html.
  3. En Eclipse, abra MyFirstTestNGFile y cambie el siguiente código:

    @BeforeTestpublic void beforeTest() { driver = new FirefoxDriver();}

    en:

    @Parameters("browser")@BeforeTestpublic void beforeTest(String browser) { if(browser.equalsIgnoreCase("chrome")){ System.setProperty("webdriver.chrome.driver", "C://Selenium/chromedriver.exe"); driver = new ChromeDriver(); } else if(browser.equalsIgnoreCase("ie")){ System.setProperty("webdriver.ie.driver", "C://Selenium/IEDriverServer.exe"); driver = new InternetExplorerDriver(); } else{ driver = new FirefoxDriver(); }}

    @Parameters se utiliza para insertar un parámetro (en este caso browser) del XML del conjunto de pruebas. Si el parámetro del navegador es chrome, se iniciará un controlador de Chrome.

    En esta sección, chromedriver.exe se almacena en el C://Selenium carpeta. Asegúrese de usar la ruta correcta en este código.

  4. Presione Ctrl + Mayús + O y se importarán las siguientes instrucciones:

    import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.testng.annotations.Parameters;
  5. Abra MyFirstTestSuite y cambie el siguiente código

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="Test1"> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    a:

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="ChromeTest"> <parameter name="browser" value="chrome" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test> <test name="IETest"> <parameter name="browser" value="ie" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="firefox" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    La primera prueba (llamada ChromeTest) tiene el parámetro navegador chrome. Este parámetro se utilizará en el método @BeforeTest en MyFirstTestNGFile.

  6. Haz clic con el botón derecho en el sitio Myfirsttest.archivo xml y seleccione Ejecutar como > TestNG Suite:

Bien hecho! Usted creó su primera prueba automatizada de navegación cruzada con TestNG!

Ahora sabe cómo crear un archivo de prueba TestNG, cómo crear un conjunto de pruebas y cómo ejecutar las pruebas automatizadas en varios navegadores.

¡Feliz prueba!

10 Leer más

  • Pruebe Aplicaciones Mendix Utilizando Selenium IDE
  • Pruebe Microflows Utilizando el Módulo de Prueba Unitaria

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.