Grupos de TestNG: Incluir, excluir con ejemplo - Tutorial de Selenium

Tabla de contenido:

Anonim

TestNG es un marco de pruebas que cubre diferentes tipos de diseños de prueba como unidad, funcional, de extremo a extremo, interfaz de usuario y prueba de integración.

Puede ejecutar uno o varios paquetes (paquete aquí significa encapsular un grupo de clases en un formato de director adecuado) creando XML y ejecutándolo a través de maven.

En este tutorial, aprenderá:

  • Grupos de TestNG con ejemplo
  • Establecer la ruta de Maven y Java en la variable de entorno (para usuarios de Windows)
  • Introducción a XML y cómo crear archivos XML
  • Otro mecanismo en lugar de Agrupar es "excluir" o "incluir" en el XML de prueba
  • Cómo ejecutar código usando un archivo XML (demostración de video)

Grupos de TestNG con ejemplo

Usamos grupos en Testng cuando,

  • No queremos definir métodos de prueba por separado en diferentes clases (dependiendo de la funcionalidad) y
  • Al mismo tiempo, desea ignorar (no ejecutar) algunos casos de prueba como si no existieran en el código.
  • Entonces, para llevar a cabo esto, tenemos que agruparlos. Esto se hace usando el mecanismo "incluir" y "excluir" admitido en testNG.

En el siguiente ejemplo, mostramos la sintaxis de cómo usar grupos en el archivo XML.

@Test (groups = {"bonding", "strong_ties"}) 

Aquí estamos usando 2 nombres de grupo, es decir, "bonding" y "strong_ties" (estos son nombres lógicos que pueden modificarse según su deseo).

La etiqueta define el inicio de grupos en XML.

Personalice su XML para elegir el grupo mencionado de las clases de prueba. A continuación se menciona la sintaxis de cómo declarar grupos en un archivo XML, por ejemplo

Entonces, supongamos que hay 10 métodos de prueba en una clase.

Fuera de ellos

  • 6 métodos están etiquetados en el grupo "vinculación" y
  • 4 están en el grupo "strong_ties"

En el futuro, estableceremos la ruta maven / Java y usaremos el IDE de Eclipse para demostrar el uso de grupos que usan archivos XML en el proyecto maven basado en Java.

Establecer la ruta de Maven y Java en la variable de entorno (para usuarios de Windows)

Consulte https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Introducción a XML y cómo crear archivos XML

  • El archivo XML (Extensible Markup Language) en el marco de Maven contiene la información de una o más pruebas y está definido por la etiqueta .
  • La información de prueba en XML está representada por la etiqueta y puede contener una o más clases de TestNG.
  • Una clase Java que contiene la anotación @Test sobre los métodos de prueba se define como métodos TestNG.

Se utilizan varias etiquetas en una secuencia para construir un testNG xml funcional como , y

  • Primero está la etiqueta , que contiene un nombre lógico que define la información completa para testNG reportada para generar el informe de ejecución.
  • El segundo es , tenga en cuenta que es un nombre lógico que contiene la información del informe de ejecución de la prueba, como pasar, fallar, omitir casos de prueba y otra información como el tiempo total de ejecución y la información del grupo.
  • El tercero es , com.group.guru99 es el paquete utilizado y el nombre de la clase de prueba es TC_Class1.

Usaremos este XML para los próximos inconvenientes del video.

Otro mecanismo en lugar de Agrupar es "excluir" o "incluir" en el XML de prueba.

Suponga que encuentra complejo el uso del mecanismo de grupo, luego testNG XML facilita la funcionalidad para excluir / incluir una prueba.

Excluir etiqueta : sintaxis para excluir etiqueta  Incluir etiqueta : sintaxis para incluir etiqueta 

Nota: Podemos incluir / excluir varios casos de prueba una vez a la vez, y también funciona con Grupos.

Cómo ejecutar código usando un archivo XML (demostración de video)

Explicación del código Java y XML con el grupo, excluir e incluir la etiqueta en XML.

  • Escenario : Inicie el sitio bancario de demostración Guru99, verifique algunas cosas en la página de inicio de sesión, luego ingrese las credenciales y vuelva a verificar algunas cosas nuevas en la aplicación cuando inicie sesión.

Nota : Cada paso que codifique debe declararse en métodos separados, pero cuando se ejecute, ejecutará métodos de prueba dependiendo de las entradas en el archivo XML.

Método 1 : inicializar el navegador y ejecutar la URL (tc01LaunchURL ())

Método 2 : verificar el encabezado de la página de inicio de sesión (tc02VerifyLaunchPage ())

Método 3 : ingrese el nombre de usuario y la contraseña en el formulario de inicio de sesión (tc03EnterCredentials ())

Método 4 : verificar la presencia del ID de administrador en el panel de usuario (tc04VerifyLoggedInPage ())

Método 5 : Verifique algunos enlaces más en el Panel de control del usuario (tc05VerifyHyperlinks ())

Código para nuestro escenario:

paquete com.group.guru99;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;public class TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 Bank']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'contraseña']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contiene (texto (), 'ID del administrador')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Este caso de prueba inicializará webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maximizar ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Verificará la presencia de encabezado en la página de inicio de sesión* /@Test (groups = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"No se muestra el encabezado de la página de inicio");System.out.println ("Se muestra el encabezado de la página de inicio");}/ *** Este caso de prueba ingresará el nombre de usuario, la contraseña y luego hará clic en* botón de inicio de sesión* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (nombre_de_usuario_elemento)). sendKeys (nombre_de_usuario_valor);webDriver.findElement (By.xpath (elemento_contraseña)). sendKeys (valor_contraseña);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Este caso de prueba verificará la presencia de la identificación del administrador en DashBoard* /@Test (grupos = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"No se muestra la etiqueta de ID de administrador");System.out.println ("Se muestra la etiqueta de identificación del administrador");}/ *** Este caso de prueba comprobará la presencia de un enlace de nuevo cliente* Y enlace de transferencia de fondos en el panel izquierdo* /@Test (groups = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"No se muestra el hipervínculo de nuevo cliente");System.out.println ("Se muestra el hipervínculo de nuevo cliente");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"No se muestra el hipervínculo de transferencia de fondos");System.out.println ("Se muestra el hipervínculo de transferencia de fondos");}}

Tenga en cuenta: Las credenciales solo son válidas durante 20 días, por lo que si está intentando ejecutar código en su máquina local, es posible que se enfrente a un error de credenciales no válidas. A continuación, encontrará los pasos para generar sus credenciales de inicio de sesión:

  1. Inicie http://www.demo.guru99.com
  2. Ingrese su identificación de correo electrónico en el cuadro.
  3. Haga clic en entrar y vea sus datos de inicio de sesión en la pantalla.

Explicación del código:

Como se mencionó anteriormente, hemos creado 5 casos de prueba para realizar cada acción en métodos independientes.

Puede observar que a cada método, hemos asociado un parámetro de grupo que contiene algún valor.

Básicamente, estos son el nombre de los grupos diferenciadores, es decir, "strong_ties" y "bonding".

  • Los métodos primero y tercero están etiquetados como "bonding", "strong_ties", lo que significa que si XML se actualiza en cualquiera de los grupos, se ejecutará este caso de prueba.
  • El segundo método solo está etiquetado como grupo "bonding", significa que si XML se actualiza con el grupo bonding. Solo en ese caso se ejecutará este caso de prueba.
  • El cuarto caso de prueba está etiquetado como grupo strong_ties, lo que significa que este caso de prueba solo se ejecutará si XML se actualiza con el nombre de grupo strong_ties.
  • Por último, pero no menos importante, el quinto caso de prueba se adjunta al grupo de enlace, lo que significa que este caso de prueba solo se ejecutará si XML se actualiza con el nombre del grupo de enlace.

Entonces, en general, tenemos 4 escenarios;

  1. Queremos ejecutar todos los casos de prueba independientemente del nombre del grupo. En este caso, eliminaremos la etiqueta de grupo de la ejecución de XML.
  1. Queremos ejecutar algunas pruebas de casos de prueba que estén relacionadas solo con cualquiera de los grupos, es decir, strong_ties o bonding
  • Consulte:

  • En este video, se comenta el parámetro de grupo a partir de la ejecución de XML. Por lo tanto, verá que se ejecutaron todos los casos de prueba.
  • Continuando con el video, ahora hemos incluido el nombre del grupo en XML, puede ver solo casos de prueba específicos para ese grupo que solo se está ejecutando.
  1. Estamos utilizando el mecanismo de exclusión para excluir el caso de prueba:
  • Consulte

  • Verá que hemos utilizado excluir algunos casos de prueba (tc02) escribiendo su nombre en XML en ejecución. En el resultado final, los casos de prueba mencionados no se ejecutaron.
  1. Por último, estamos utilizando el mecanismo de prueba de inclusión para incluir los casos de prueba (tc01LaunchURL, tc03EnterCredentials y tc05VerifyHyperlinks)
    • Consulte

    • En este video, verá que los casos de prueba que se mencionan en XML solo se ejecutan durante la ejecución de la prueba.

    Descargue el código de la URL mencionada, contendrá todo tipo de testXML:

    Descargue el código anterior

    Conclusión

    Hemos aprendido aquí una forma relativamente nueva de ejecutar casos de prueba utilizando XML en el proyecto Maven.

    Comenzamos brindando una breve introducción sobre testNG y continuamos con la especificación técnica completa de Grupos, excluir e incluir.