닷넷 유닛테스트에서 성능측정 이용하기편

VisualStudio유닛테스트 내에서 닷넷코어 성능측정을 할수 있는방법을 정리하여 공유합니다.

Nbench에서 지원하는 함수로 수신검사가 완료되면 성능카운터를 1 증가합니다.

성능 테스트모드일때만 수행할수 있으며 기본 유닛테스트에서는 성능테스트 제외하여 도메인검증에 집중할수 있습니다.

유닛테스트가 완료된 로직의 성능테스트가 필요시 Nbench를 활용하여 성능 유닛테스트 검사기를 추가할수 있습니다.

[NBenchFact]       
[PerfBenchmark(NumberOfIterations = 3, RunMode = RunMode.Throughput,
RunTimeMilliseconds = 1000, TestMode = TestMode.Test)]
[CounterThroughputAssertion("TestCounter", MustBe.GreaterThan, 1000.0d)]
[CounterTotalAssertion("TestCounter", MustBe.GreaterThan, 1500.0d)]
[CounterMeasurement("TestCounter")]
public void RoundRobinPoolTestPerformanceTest()
{
    RoundRobinPoolTest(5, 3000, true);
}

주요 설정 옵션은 다음과 같습니다.

  • NumberOfIterations : 테스트 횟수
  • RunTimeMilliseconds : 측정 기준초 , 1000ms 여야지 TPS(Test Per Sec) 측정입니다.
  • CounterThroughputAssertion : 최소 완료 회수로 이 값을 준수를 못하면 성능 테스트 실패합니다.
  • CounterTotalAssertion : 평균 완료회수로 이 값을 준수못하면 성능 테스트 실패합니다.

image
성능 유닛트세트가 작성되면, VS-IDE가 제공하는 테스트 탐색기를 통해서도 수행할수 있습니다.

더 자세한 내용은 다음링크에 정리되어있습니다.

https://wiki.webnori.com/display/AKKA/UnitTest+with+NBench

4개의 좋아요