문제

우리는 VMWare와 NUnit을 사용하여 자동화된 회귀 테스트를 개발하고 있습니다.우리는 테스트를 여러 단계로 나누었으며 이제 성능 회귀를 위해 각 단계를 검사하고 싶습니다.NUnit처럼 단순히 테스트 타이밍을 맞추는 것은 신뢰할 수 없는 것 같습니다.나는 약 15%의 수용 요인을 계산했지만 우리의 단계는 때때로 35% 이상으로 다를 수 있습니다.이러한 리소스 의존적 테스트 환경에서 성능을 테스트하는 일관된 방법이 있습니까?"스마트" 타이밍 시스템이 나의 유일한 선택인가요?

도움이 되었습니까?

해결책

이러한 종류의 성능 테스트에는 간단한 합격/실패 결과를 제공하는 시스템이 없습니다.실제 생활에서 시스템을 변경하면 어떤 것은 더 빨라지고 어떤 것은 느려질 가능성이 높으므로 일반적으로 "더 좋음"과 "더 좋지 않음" 사이의 선택이 아니라 다양한 종류의 더 나은 것 중에서 선택하는 것입니다.(물론, 상황이 더 악화되는 경우는 피하고 싶을 것입니다.)

이를 위해 과거에 제가 한 일은 시간이 지남에 따라 통계를 유지하는 것이었습니다.테스트를 실행할 때마다 개정 번호 및 테스트 타이밍과 함께 결과를 SQL 데이터베이스에 삭제하세요.그런 다음 언제든지 원하는 방식으로 그래프를 작성할 수 있으며(이상적으로는 팀의 모든 사람이 검토할 수 있도록 작은 웹 애플릿에서) 성능이 상승 또는 하락 추세인지 또는 특정 개정 이후 성능이 좋지 않은지 확인할 수 있습니다.

하지만 여기서 중요한 점은 그래프.그렇게 하면 인간의 눈이 그것을 보고 추세를 찾을 수 있습니다.일주일 내내 데이터를 수치적으로 분석하는 AI 알고리즘을 생각해내려고 노력할 수도 있지만 인간의 패턴 인식 능력을 결코 능가할 수는 없습니다.

다른 팁

메소드 실행/실행 시간을 제공하는 Ants Profiler와 같은 도구를 사용하여 사용 가능한 기능을 살펴볼 수도 있지만 반복 테스트 측면에서 무엇을 제공하는지 잘 모르겠습니다.

성능 테스트와 관련하여 저는 vmware나 기타 가상화 프로세스를 사용하는 것에 대해 매우 회의적이었습니다.과거에 우리가 이 문제를 처리한 방식은 빌드의 일부로 정적 시스템에 최신 버전을 설치하고 테스트를 실행하는 것이었습니다.가상화 외부에서도 보다 일관된 결과를 볼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top