Timeout – fallo de la prueba en caso de timeout en TestNG

Timeout – fallo de la prueba en caso de timeout en TestNG
MIN
13 May 2024

Las suites de pruebas automatizadas suelen llevar demasiado tiempo si los elementos no están fácilmente disponibles para interactuar con ellos. Además, en algunas pruebas, puede que tengamos que esperar a que se produzca un evento asíncrono para poder seguir ejecutando la prueba.

En estos casos, puede que queramos limitar el tiempo de ejecución de la prueba especificando un límite superior de tiempo a partir del cual el método de prueba se marca como fallido. TestNG nos proporciona atributos timeOut para gestionar estas peticiones.

Índice

Tiempo de espera en TestNG

Al atributo TimeOut del método de anotación @Test se le asigna un valor que especifica el número de milisegundos. Si el método de prueba supera el valor de tiempo de espera, el método de prueba se marca como fallido con una ThreadTimeoutException.

@Test(timeOut = 1000)

Fragmento de código

En el siguiente fragmento de código, hemos especificado un tiempo de espera de 1000 ms. Dentro de los métodos de prueba, podemos ver que se introduce la función Thread.sleep() con una duración de 3 segundos. Cuando se ejecuta la prueba, podemos observar en la salida que la prueba falla con una ThreadTimeoutException porque el tiempo de espera es de 1 segundo y la prueba tarda algo más de 3 segundos en ejecutarse.

@Test(timeOut = 1000)
public void timeOutTest() throws InterruptedException {
   Thread.sleep(3000);
   //Test logic
}

Obtenido de

FAILED: timeOutTest
org.testng.internal.thread.ThreadTimeoutException: 
Method org.testng.internal.TestNGMethod.timeOutTest() 
didn't finish within the time-out 1000