TestNG - Timeout-Test

TestNG - Timeout-Test

In diesem Tutorial zeigen wir Ihnen, wie Sie dentimeout-Test in TestNG durchführen. Das "Timeout" bedeutet, wenn ein Komponententest länger als eine festgelegte Anzahl von Millisekunden dauert, wird er von TestNG abgebrochen und als fehlgeschlagen vermarktet.

Diese "Zeitüberschreitung" kann auch für Leistungstests verwendet werden, um sicherzustellen, dass die Methode innerhalb einer angemessenen Zeit zurückgegeben wird.

TestTimeout.java

package com.example.testng.examples.timeout;

import org.testng.annotations.Test;

public class TestTimeout {

    @Test(timeOut = 5000) // time in mulliseconds
    public void testThisShouldPass() throws InterruptedException {
        Thread.sleep(4000);
    }

    @Test(timeOut = 1000)
    public void testThisShouldFail() {
        while (true);
    }

}

Ausgabe

[TestNG] Running:

PASSED: testThisShouldPass
FAILED: testThisShouldFail
org.testng.internal.thread.ThreadTimeoutException: Method org.testng.internal.TestNGMethod.testThisShouldFail() didn't finish within the time-out 1000
    at com.example.testng.examples.timeout.TestTimeout.testThisShouldFail(TestTimeout.java:14)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
    at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:46)
    at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:37)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


===============================================
    Default test
    Tests run: 2, Failures: 1, Skips: 0
===============================================