43 preguntas de la entrevista TestNg: la mayoría de los principiantes no saben

En este tutorial vamos a discutir los conjuntos exhaustivos de Preguntas y respuestas críticas de la entrevista de TestNg y distribuidos según el nivel de dificultad, donde mejor puedes equiparte rápidamente en TestNg

Estos conjuntos de preguntas de entrevista de Testng se distribuyen en los siguientes módulos o conjuntos:

Preguntas de la entrevista de TestNg - Avanzado

Preguntas de la entrevista de TestNg - Intermedio

Preguntas de la entrevista de TestNg - Básico

Preguntas y respuestas de la entrevista de Testng || Conjunto 1

¿Cómo se excluye a un grupo del ciclo de ejecución de la prueba?

Puede usar la etiqueta de exclusión para excluir un grupo de casos de prueba de la ejecución de la siguiente manera en el archivo Testng xml 

    

        

        

    

¿Cuáles son los tipos de informes generados en TestNG por defecto?

TestNG genera 4 tipos de informes después de la ejecución, que son:

  • Informe HTML de TestNG
  • Informe TestNG apto para correo electrónico
  • TestNG Informe XML
  • Informe XML de prueba fallida

¿Mencione la diferencia entre el conjunto de pruebas TestNG y la prueba TestNG?

El conjunto de pruebas TestNG es la colección de clases de prueba y métodos de prueba que se pueden ejecutar simultáneamente y en paralelo desde el archivo XML TestNG. 

Por otro lado, el método de prueba TestNG es un solo archivo de caso de prueba o método de prueba.

¿Cuál es el uso del atributo threadPoolSize con la anotación @Test? 

A través del atributo threadPoolSize podemos definir un grupo de subprocesos con el tamaño específico mencionado por el número del método de prueba que se ejecutará a través de múltiples subprocesos disponibles.

El atributo se ignora si no se menciona invocationCount.

@Prueba(tamaño del conjunto de subprocesos = 3)
testCaseOne vacío público () {
System.out.println("testCaseOne en proceso");
}

En el método de prueba anterior, testCaseOne se invocará desde los tres subprocesos diferentes.

¿Qué hacen los atributos alwaysRun?

Este atributo de anotación alwaysRun se utiliza cuando se desea ejecutar el método de prueba, independientemente de los parámetros dependientes de los que depende el método de prueba, falla. Si lo establece en verdadero, debe establecer que el atributo sea verdadero.

¿Cuáles son los diferentes oyentes disponibles?

  • ITestListener
  • Reportero 
  • ISuiteListener
  • IAnotaciónTransformador 
  • IAnotaciónTransformer2
  • Enganchable 
  • IInvokedMethodListener 
  • IMétodoInterceptor 

¿Cuál es el valor predeterminado para TestNG Priority?

La prioridad de TestNG tiene el valor predeterminado es cero.

¿Cómo volver a ejecutar las pruebas fallidas de TestNg utilizando el mecanismo de reintento automático?

TestNg proporciona una interfaz llamada IRetryAnalyzer oyente que puede implementar la interfaz, vuelva a ejecutar automáticamente sus scripts de prueba fallida mencionando la clase en el archivo testNg.XML, aquí está el siguiente código para implementar el mismo:

Prueba Reintentar 1024x747 1
Testng preguntas y respuestas de la entrevista - TestNg Retry Test Script

En el área anterior puede configurar el número de reintentos, conteos máximos y también puede mencionar en qué excepciones desea volver a ejecutar los scripts de prueba.

public class Retry implementa IRetryAnalyzer { int retryCounter = 0; // El número máximo de ejecuciones fallidas int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; devolver verdadero; } falso retorno; } }

Método dos: cómo volver a ejecutar las pruebas fallidas de TestNg mediante el mecanismo de reintento automático

En el siguiente enfoque, puede construir 2 clases, es decir, una es Reintentar clase donde puede mantener la lógica de controlar el número de iteraciones en caso de fallas en las pruebas que implementarán la interfaz Testng IRetryAnalyzer.

Otra clase es básicamente la que implementará el otro oyente de interfaz IAnnotationTransformer e implementará el método transformar que interactúa internamente con la clase anterior (es decir Reintentar clase)

public class Retry implementa IRetryAnalyzer { int retryCounter = 0; // El número máximo de ejecuciones fallidas int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; devolver verdadero; } falso retorno; } }

y finalmente agregue el Clase CognitiveRetry en el oyente para el archivo testng.xml.

<listeners>
    <listener class-name= "com.lambdageeks.cognitiveRetryUtils.CognitiveRetry"/>
</listeners>

¿Cómo lograr la implementación de TestNG itestlistener?

ITestListener es una interfaz en TestNg que tiene múltiples métodos (no implementados ya que es una interfaz) que pueden ser implementados por una clase. Cada método representa funcionalidades o escenarios específicos, por lo tanto, dependiendo de su necesidad, puede implementar esos métodos.

Para un ejemplo enTestFailure es un método que puede implementar donde desea realizar cualquier operación mientras falla cualquier método de prueba, digamos que desea capturar la captura de pantalla en caso de fallas en el método de prueba, para que pueda escribir el método de toma de captura de pantalla dentro del enTestFailure , y como ITestListener es una interfaz, testNg seguirá escuchando los eventos (fallas de prueba) y siempre que haya fallas de prueba, se capturará su captura de pantalla.

Aquí está la implementación de la captura de pantalla cada vez que prueba el script encuentra fallas:

importar org.apache.commons.io.FileUtils; importar org.openqa.selenium.OutputType; importar org.openqa.selenium.TakesScreenshot; importar org.openqa.selenium.WebDriver; importar org.testng.ITestContext; importar org.testng.ITestListener; importar org.testng.ITestResult; importar java.io.File; importar java.io.IOException; importar java.util.logging.Logger; La clase pública CustomListerners implementa ITestListener { WebDriver driver=null; String filePath = "D:\\\\LambdaGeeks\\\\SCREENSHOTS"; @Override public void onTestFailure(resultado de ITestResult) { String testMethodName=String.valueOf(result.getName()).trim(); ITestContext testContext = resultado.getTestContext(); Controlador WebDriver = (WebDriver)testContext.getAttribute("controlador"); captureTheScreenShot(testMethodName, controlador); } public void captureTheScreenShot(String métodoName, controlador WebDriver) { Archivo scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); /* Cada captura de pantalla se guardará junto con el nombre de la prueba para tener una mejor correlación */ try { FileUtils.copyFile(scrFile, new File(filePath+methodName+".jpg")); } captura (IOException e) { e.printStackTrace(); } } public void onFinish (contexto ITestContext) {} public void onTestStart (resultado ITestResult) { } public void onTestSuccess (resultado ITestResult) { } public void onTestSkipped (resultado ITestResult) { } public void onTestFailedButWithinSuccessPercentage (resultado ITestResult) { } public void onStart (Contexto ITestContext) { } }

Y también debe agregar esta clase en la etiqueta de escucha en el archivo testng.xml como lo habíamos hecho en la pregunta anterior.

¿Cómo implementar testng iAnnotationtransformer?

TestNg proporciona una interfaz denominada IAnnotationTransformer que proporciona un método llamado "transform" que puede implementar y que TestNG activará en tiempo de ejecución. Esta implementación se utiliza para modificar el comportamiento de anotación de prueba de la clase de prueba y los métodos de prueba.

En el segmento a continuación, veríamos cómo podríamos hacer eso

public class TestClassAnnotations { @Test(alwaysRun = true,dependsOnMethods = "testMethodB") public void testMethodA() { System.out.println("--- Personalizando el comportamiento del tiempo de ejecución con ITestAnnotation ---"); } @Test public void testMethodB() { System.out.println("--- Second TestMethods ---"); Afirmar.fallo(); } }

De forma predeterminada, si ejecutamos el código anterior, solo se ejecutará un método, que es testMethodA y otro método testMethodB fallará porque estamos fallando intencionalmente al usar el método Assert.fail ().

Pero si cambiamos el Alwaysrun = verdadero anotación a falso mediante el uso de la IAnotaciónTransformador entonces este método no se ejecutará, a continuación se muestra el fragmento de código sobre cómo implementar el IAnotaciónTransformador y utilícelo en testing.xml para cambiar el comportamiento de la anotación TestNG

La implementación de CustomAnnotationTransformers va aquí:

CustomAnnotationTransformers de clase pública implementa IAnnotationTransformer { public boolean isTestRunning(ITestAnnotation iTestAnnotation) { if (iTestAnnotation.getAlwaysRun()) { return true; } falso retorno; } public void transform(ITestAnnotation anotaciones, Class testClasses, Constructor testConstructors, Method testMethods) { if (isTestRunning(annotations)) { annotations.setEnabled(false); } } }

Aquí está el oyente que necesitamos agregar en el archivo testing.xml

<listeners>
    <listener class-name= "com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

¿Cómo implementar testng iinvokedmethodlistener?

Si desea implementar una función en la que se ejecutará un método determinado antes y después de todos y cada uno de los métodos de prueba de TestNg, entonces la función testng podría implementar esa función. IInvokedMethodListener oyente.

 

Aquí está el fragmento de código para implementar las funciones:

paquete com.lambdageeks; import org.testng.IInvokedMethod; importar org.testng.IInvokedMethodListener; importar org.testng.ITestResult; CustomAnnotationTransformers de clase pública implementa IInvokedMethodListener { public void beforeInvocation(IIInvokedMethod method, ITestResult testResult) { System.out.println(" ::: Antes de que el método de IInvokedMethodListener se active para el método de prueba denominado como: " + method.getTestMethod().getMethodName( ) + " ::: "); } public void afterInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" :::: Después de que el método de IInvokedMethodListener se activa para el método de prueba denominado como: " + method.getTestMethod().getMethodName() + " : :: "); } }

Aquí está la clase de prueba para probar la función:

public class TestClassAnnotations { @Test(alwaysRun = true) public void testMethoddummy() { System.out.println("--- Este es un método de prueba, probando la característica de IInvokedMethodListener Testng Listener ---"); } }

Tienes que mencionar TestNG iinvokedmethodlistener en la etiqueta de escucha en el testng.xml como siempre

<listeners>
    <listener class-name="com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

El resultado de la ejecución se vería así:

::: Antes de que se active el método de IInvokedMethodListener para el método de prueba denominado: testMethoddummy :::

- Este es un método de prueba, probando la característica de IInvokedMethodListener Testng Listener -

 :::: Después de que se active el método de IInvokedMethodListener para el método de prueba denominado: testMethoddummy :::

¿Cómo implementar proveedores de datos en TestNG?

Podemos implementar el DataProvider usando TestNg en el siguiente enfoque:

clase pública DataProviderDemo { @DataProvider(name = "dpName") public Object[][] dataProvidersMethodName() { return new Object[][]{{"Lambda"}, {"Geeks"}}; } @Test(dataProvider = "dpName") public void dataproviderDummyTestMethod(String dataValues) { System.out.println("Los parámetros de datos con ejemplos de proveedores de datos: : " + dataValues); } }

Si no establecemos la prioridad del método de prueba, ¿en qué orden se ejecutan las pruebas en TestNG?

Las pruebas se ejecutan en el orden alfabético del TestmethodName.

 

Como en el siguiente fragmento de código:

public class SequenceTest { @Test() public void geeks() { System.out.println("Sequence Test , Method run :geeks "); } @Test() public void lambda() { System.out.println("Prueba de secuencia, Método ejecutado: lambda "); } @Test() public void abc() { System.out.println("Prueba de secuencia, método ejecutado: abc"); } }

La salida se vería así:

Prueba de secuencia, método ejecutado: abc

Prueba de secuencia, método ejecutado: geeks

Prueba de secuencia, método ejecutado: lambda

 

¿Cómo ejecutar sus scripts de prueba en paralelo?

Puede ejecutar sus scripts de prueba utilizando el archivo XML TestNg mencionando el paralelo = "métodos" número de subprocesos = "2 ″, aquí se ejecutarán 2 casos paralelos, si desea ejecutar más subprocesos en paralelo.

<suite name="DummyTest" parallel="methods" thread-count="2" >

<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>  

¿Cómo integrar TestNg con GRADLE build Tool?

Puede ejecutar Testng Suite en gradle de diferentes maneras:

Cómo ejecutar TestNg Groups usando Gradle: puede crear una tarea en el archivo build.gradle puede mencionar el useTestNG () y mencione los detalles a continuación mientras ejecuta los Grupos de prueba.

Prueba Gradle
Preguntas y respuestas de la entrevista TestNg: TestNg con Gradle

Cómo ejecutar Testng Default listener con Gradle para generar informes usando la biblioteca TestNg

TestNg Oyentes predeterminados
Preguntas y respuestas de la entrevista de TestNg: Testng con oyentes predeterminados de Gradle

Si desea utilizar el oyente personalizado, puede mencionarlo en el siguiente enfoque:

Testng Gradle Oyente personalizado 1024x497 1
Preguntas y respuestas de la entrevista de TestNG: oyentes personalizados de TestNG con Gradle

¿Cómo ejecutar el archivo xml Testng Runner usando el símbolo del sistema?

Puede usar la ubicación descargada de TestNg y mencionar org.testng.TestNg.testNgRunner.xml para ejecutar el archivo xml del corredor desde el símbolo del sistema.

java -cp "/opt/testng-7.1.jar:bin" org.testng.TestNG testngRunner.xml

¿Cómo integrar TestNg XML con Maven?

Puede integrar TestNg con Maven con el uso del complemento llamado complemento-maven-surefire donde puede configurar para ejecutar el archivo testNgrunner.xml usando las configuraciones:

Integración TestNG Maven 1024x667 1
Preguntas y respuestas de la entrevista TestNg-TestNg-Maven-Integración Surefire

¿Cómo se puede especificar el parámetro TestNg Test usando TestNg y Maven?

Puede especificar el parámetro de prueba mediante el complemento Maven SureFire con el archivo TestNg.XML de la siguiente manera

TestNg Maven TestParámetro 1024x543 1
Preguntas y respuestas de la entrevista de TestNg: parámetro de prueba

Preguntas y respuestas de la entrevista de Testng || Conjunto 2

¿Qué se entiende por invocationCount en TestNG?

invocationCount es un atributo de anotación de prueba mediante el cual puede definir el número de iteraciones que se ejecutará el método de prueba en una sola ejecución. 

 La prueba anterior se ejecutará dos veces ya que invocationCount se menciona como 2.

@Test(recuento de invocaciones = 2) public void testOfInvCount() { System.out.println("Prueba de recuento de invocaciones en curso"); }

¿Qué son los oyentes en TestNG?

en TestNg, los oyentes son básicamente una interfaz en Java que debe implementar en su clase. La clase implementada seguirá escuchando ciertos eventos y ejecutará el bloque de código específico asociado con ese evento.Aquí, cuando implementa la interfaz, finalmente implementa los métodos no implementados y esos bloques de código o los métodos se ejecutarán como y cuando un evento específico se activa. 

Con la ayuda de los oyentes de TestNG, podemos realizar muchas acciones en tiempo de ejecución escuchando un evento diferente desencadenado por la ejecución del script de prueba y su estado, o podemos hacer informes. Además, podemos cambiar la implementación de la anotación TestNg.

¿Mencionar las diferencias entre las anotaciones @Factory y @Dataprovider en TestNg?

@Dataprovider: cuando desee ejecutar la misma prueba, pero con diferentes conjuntos de datos en cada ejecución, puede usar la anotación del proveedor de datos, y esto puede lograr el enfoque de prueba basado en datos. Aquí, la ejecución del método de prueba ocurre utilizando la misma instancia de clase a la que pertenece el método de prueba.

@Factory: se ejecutarán todos los métodos de prueba presentes dentro de una clase de prueba utilizando instancias separadas y múltiples de la clase.

¿Cómo utilizar TestNG Reporter Class para la generación de registros?

Puede registrar los detalles y datos utilizando la clase Reporter, y estos registros serán capturados por el informe generado por TestNG

Reporter.log ("Mensaje de registro");

¿Cómo hacer el manejo de excepciones en TestNG?

Puede mencionar el tipo de excepción esperada en un atributo llamado excepciones esperadas con la anotación @test; en este caso, TestNg marcaría la prueba como aprobada.

@Test (excepciones esperadas = numberFormatException.class)

¿Cómo lograr la inyección de dependencia a través de TestNg XML?

TestNG nos permite inyectar dependencias entre diferentes grupos de pruebas a través del archivo XML TestNG. Mediante el cual podemos tener la dependencia de un grupo sobre otro.

¿Cuáles son los diversos enfoques de afirmación para TestNG?

Podemos usar dos tipos de afirmaciones con TestNg. 

Afirmaciones suaves

Afirmaciones duras 

Mencione algunas de las afirmaciones más utilizadas con TestNG 

Algunos de los métodos de afirmación más utilizados en TestNG:

  • asertEquals (booleano real, booleano esperado)
  • assertEqual (Cadena real, Cadena esperada)
  • assertEqual (Cadena de resultado real, Cadena de resultado esperado, Cadena de mensaje)
  • asertTrue (condición)
  • aseverarFalso (condición)
  • asertFalse (condición, mensaje)
  • asertTrue (condición, mensaje)

¿Qué entiendes por las afirmaciones en TestNG?

Se realiza una afirmación para validar los resultados reales de la prueba con respecto a los resultados esperados de la prueba. En TestNg, podemos usar la aserción dura de la aserción suave. 

Diferencia entre afirmación dura y afirmación suave en TestNg

Mientras trabaja con la afirmación dura, si en caso de que tengamos algún error en la condición de afirmación, los pasos de prueba posteriores no se ejecutarán y se cancelarán, y finalmente la prueba se marcará como un caso de prueba fallido. 

Mientras que, por otro lado, Soft Assert toma en consideración la validación de todos los puntos de aserción, incluso si hay fallas en alguna de las aserciones. Eso significa que la ejecución de la prueba no se cancela incluso si falla una afirmación.

Cómo escribir afirmaciones suaves en TestNg 

El siguiente fragmento de código da el enfoque de escribir la afirmación suave en TestNG

@Test public void aserción() { SoftAssert softAssertion = new SoftAssert(); //Afirmación 1 softAssertion.assertEquals("exp", "act"); //Afirmación 2 softAssertion.assertEquals(123, 123); //Afirmación 3 softAssertion.assertEquals("Valor real", "valor esperado"); // Al final considerando todos los valores de aserción softAssertion.assertAll(); }

¿Cómo usar expresiones regulares en grupos TestNG?

Se puede usar una expresión regular en TestNG para ejecutar los grupos que tienen un patrón similar en su denominación. 

Por ejemplo, si desea ejecutar todos los grupos que comienzan con “testX” según el nombre, puede usar la expresión regular como testX. * En el archivo XML TestNG.

Preguntas y respuestas de la entrevista de Testng || Conjunto 3

¿Qué es TestNG?

TestNg básicamente representa "Probando la próxima generación”Es un marco de pruebas unitarias que controla el flujo y el orden de la automatización de pruebas y los scripts de automatización al proporcionar varias anotaciones con sus funcionalidades.

¿Cuáles son las ventajas de TestNg?

  •             A través de las diversas anotaciones de Testng, puede controlar el flujo y el orden de la automatización y la ejecución de la prueba con un mejor enfoque.
  •             Las clases de prueba o los métodos de secuencia de comandos de prueba se pueden lograr con TestNg.
  •            TestNg se puede integrar fácilmente con diferentes herramientas de compilación como Maven, Gradle. Además, se puede integrar con herramientas CICD como Jenkins.
  •            TestNG proporciona detalles de la función de informes HTML y se integra fácilmente con otra plataforma de informes de prueba como Allure, Extent Report con funciones de TestNG Listeners.
  •           Todas las pruebas pueden activarse mediante el archivo testng.xml donde puede mencionar la clase de prueba/prueba/nombre del paquete de prueba que se ejecutará.
  •           Las pruebas basadas en datos se pueden realizar con la anotación TestNg DataProvider. Además, las pruebas de parametrización también se pueden realizar a través de Testng.xml, por ejemplo, al realizar pruebas entre navegadores, puede parametrizar los diferentes navegadores para diferentes pruebas. Esta característica ayuda a construir el marco basado en datos con TestNG.
  •          TestNg Proporciona una forma de incluir/excluir un conjunto de una prueba de tesngNg.xml con atributos de inclusión y exclusión.
  •          Con TestNg, puede agrupar sus pruebas e inyección de dependencia entre las pruebas.
  •          TestNg proporciona muchos oyentes con los que puede lograr muchas cosas, como puede hacer informes personalizados (IReporter), integración con diferentes herramientas (ITestListener), cambiar el comportamiento de la anotación TestNG Test en tiempo de ejecución con IAnnotationTransformer y muchos más.
  •         Puede omitir la prueba específica, priorizar su orden de prueba, crear una prueba con límite de tiempo con anotaciones TestNg Test.
  •         Puede usar la aserción dura y la aserción suave con TestNg para escribir declaraciones de afirmación.
  •         TestNg genera TestNG-failed.xml después de cada ejecución de prueba, por lo que puede generar el mismo TestNG-failed.xml para volver a ejecutar sus scripts de prueba fallidos.
  •        TestNg proporciona varias anotaciones de prueba, como @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.@antes de la suite,@After Suite.
  •        Puede ejecutar la prueba de excepción esperada con TestNg.
  •        Puede volver a ejecutar la prueba fallida con IretryAnalyzer de Testng 

Cómo desencadenar y ejecutar el script de prueba TestNg?

Puede ejecutar el script TestNg Test de varias formas: 

  •       Haga clic derecho en Clase de prueba y "ejecutar como" y seleccione la opción de "TestNg Test".
  •       Cree testng.xml y directamente en el archivo y ejecute el archivo xml.
  •       Si integra testNg.xml con la herramienta de compilación como Maven/Gradle, también puede ejecutar desde maven o Gradle.
  •       Si la herramienta de compilación como Maven/Gradle está integrada con CICD, puede ejecutar desde CICD, es decir, desde Jenkins.

Indique las anotaciones de Testng que están disponibles.

Las anotaciones de Testng Test más utilizadas son:

  • @AntesSuite
  • @DespuésSuite
  • @AntesTest
  • @Después de la prueba
  • @Antes de clase
  • @Después de clases
  • @Antes del método
  • @Después del método
  • @AntesGrupos
  • @DespuésGrupos
  • @Prueba

¿Mencionar la secuencia de ejecución de anotaciones de TestNg?

Desde el punto de vista de la ejecución de la prueba, aquí está la siguiente secuencia para todas las anotaciones de TestNg disponibles:

Anotaciones de condiciones previas:

  • @AntesSuite
  • @AntesTest
  • @Antes de clase
  • @Antes del método
  • Prueba de anotaciones:
  • @Prueba
  • Anotaciones posteriores a la condición: 
  • @DespuésSuite
  • @Después de la prueba
  • @Después de clases
  • @Después del método

¿Cómo deshabilitar la ejecución de prueba para un script de prueba?

Puede usar el atributo habilitado es igual a falso en el atributo de anotación @Test como se menciona a continuación:

@Test(habilitado = falso) public void logout(){ System.out.println("Prueba de muestra"); }

¿Cómo se pueden especificar oyentes en TestNG xml?

Puede usar el archivo xml Tesng para mencionar los oyentes que se usarán como parte de las ejecuciones del script de prueba, en el siguiente enfoque:

        

        

...

¿Qué es la prueba de tiempo de espera en TestNg?

En este caso, la "prueba de tiempo de espera" significa que, en caso de que el script de prueba tarde más del período de tiempo especificado en ejecutarse, entonces testng abortará la prueba y se marcará como una prueba fallida.

@Test(timeOut = 6000) // esta vez en mulisegundos public void testShouldPass() throws InterruptedException { Thread.sleep(2000); }

¿Cómo lograr la prueba de excepción esperada con TestNG?

Si un método de prueba arroja una excepción, que es la misma que la especificada como parte del atributo esperabaExcepciones de la anotación de prueba, entonces TestNg marcaría la prueba como aprobada.

@Test(expectedExceptions = ArithmeticException.class) public void TestDivision() { int i = 1 / 0; }

 El método de prueba anterior se aprobará ya que arroja la excepción esperada por TestNG.

¿Cuál es la diferencia entre la anotación @BeforeTest y @BeforeMethod?

@BeforeTest se ejecuta una vez antes de cada una de las pruebas etiqueta mencionado en el archivo testng.xml 

@BeforeMethod se ejecuta antes de todos y cada uno de los métodos de script de prueba.

¿Cuál es la ventaja de usar el archivo testng.xml?

Con el archivo testng.xml, puede controlar el flujo de ejecución con un solo conjunto de pruebas o varios conjuntos de pruebas en un solo archivo testng xml. Algunas de las características importantes son:

  • El archivo testng.xml nos permite excluir e incluir métodos de prueba y ejecución de grupos de prueba.
  • Puede pasar datos/parámetros de prueba a través de testng.xml.
  • Puede agregar dependencia entre métodos de prueba y también un grupo de métodos de prueba
  • Puede priorizar los casos de prueba.
  • Se logra la ejecución de prueba en paralelo de los casos de prueba.
  • Puede implementar diferentes oyentes de prueba y usarlos mencionándolos en testng.xml.
  • Si ejecuta su suite con testng.xml, solo fallará la prueba para la próxima iteración mediante el uso de TestNG-failed.xml se genera después de cada ejecución.
  • Puede ejecutar grupos específicos de pruebas usando etiqueta de TestNG xml.

¿Cuántos tipos de dependencias puedes lograr usando TestNG?

Hay dos tipos de dependencias que podemos lograr con TestNG: 

A. DependsOnMethods: 

Al usar este atributo dependsOnMethods, está definiendo qué método de prueba dependerá de otros métodos de prueba. Por lo tanto, si el método dependiente falla o no se ejecuta, el método de prueba dependiente tampoco se ejecutará.

@Test public void loginUserProfile() { System.out.println("Usuario de inicio de sesión"); } @Test(dependsOnMethods = "loginUserProfile") public void logOutPage_user() { System.out.println("Página de cierre de sesión para usuario"); }

 Aquí está el método de prueba logOutPage_user que se ejecutará después de la ejecución exitosa de la prueba loginUserProfile.

B. depende de los grupos: 

En este tipo de prueba de dependencia, nos permite colocar la inyección de dependencia para los métodos de prueba con un grupo de métodos de prueba.

El flujo de ejecución ocurre de tal manera, es decir, primero se activa y ejecuta el testGroup y luego se activa el método de prueba dependiente, y una vez que se completa con éxito la prueba de grupo, se ejecuta el método de prueba dependiente.

@Test(groups="AtestGroupName") public void testcaseOne() { System.out.println("testcaseOne en proceso"); } @Test(groups="AtestGroupName") public void testcaseTwo() { System.out.println("testcaseTwo in process"); } @Test(dependsOnGroups="AtestGroupName") public void testcaseThree() { System.out.println("testcaseThree in process"); }

conclusión: Con esto concluimos la lista de todos los críticos e importantes TestNg preguntas y respuestas de la entrevista , para obtener un mejor agarre en TestNg, puede pasar por el documentación exhaustiva sobre TestNg.

Para aprender más acerca de la tutorial exhaustivo de selenio que puede visitar aquí.

Deja un comentario