[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
참고 자료
- JUnit 4 User Guide: https://junit.org/junit4/javadoc/latest/index.html
- StopWatch Class: https://junit.org/junit4/javadoc/latest/org/junit/rules/Stopwatch.html