[java] JUnit에서 성능 테스트하기

JUnit은 Java 언어를 위한 유닛 테스팅 프레임워크로서, 소프트웨어의 기능을 테스트하고 검증하는 데 사용됩니다. 하지만 때로는 자원 사용량이나 실행 시간과 같은 성능 측정에 대한 테스트도 필요할 수 있습니다.

JUnit에서 성능 테스트를 수행하는 방법을 알아보겠습니다.

1. 성능 테스트를 위한 TimeWatcher 클래스 생성

import org.junit.rules.Stopwatch;
import org.junit.runner.Description;

public class TimeWatcher extends Stopwatch {

    private long elapsedTime;

    @Override
    protected void succeeded(long nanos, Description description) {
        elapsedTime = nanos;
        System.out.println("실행 시간: " + nanos + " ns");
    }

    public long getElapsedTime() {
        return elapsedTime;
    }
}

위의 코드는 JUnit의 Stopwatch 클래스를 확장한 TimeWatcher 클래스입니다. Stopwatch 클래스는 JUnit 규칙을 사용하여 메서드의 실행 시간을 측정하는 데 사용됩니다. succeeded 메서드는 테스트가 성공적으로 실행되었을 때 호출되며, 실행 시간을 출력합니다.

2. 성능 테스트 작성

import org.junit.Rule;
import org.junit.Test;

public class PerformanceTest {

    @Rule
    public TimeWatcher timeWatcher = new TimeWatcher();

    @Test
    public void performanceTest() {
        // 성능 테스트하고자 하는 코드 작성
    }
}

위의 코드는 성능 테스트를 위한 JUnit 테스트 클래스입니다. TimeWatcher 객체를 규칙으로 사용하기 위해 @Rule 어노테이션을 추가합니다. 이렇게 하면 performanceTest 메서드의 실행 시간이 TimeWatcher 클래스에서 측정됩니다.

3. 실행 결과 확인

테스트를 실행하면 성능 테스트의 실행 시간이 출력됩니다. 따라서 코드의 실행 시간을 비교하여 성능 향상을 측정할 수 있습니다.

실행 시간: 123456789 ns

참고 자료