부하 테스트에서 코딩된 UI 테스트 사용
부하 테스트를 수행하면 사용량이 각기 다른 여러 상황에서 소프트웨어의 성능이 얼마나 잘 발휘되는지 확인할 수 있습니다.부하 테스트에서는 프로그램에 동시에 액세스하는 여러 명의 사용자를 시뮬레이션하여 소프트웨어 프로그램의 예상 사용량을 모델링합니다.자세한 내용은 부하 테스트 만들기 및 편집을 참조하십시오.
부하 테스트는 주로 일정 기간 동안 여러 명의 사용자를 시뮬레이션한 조건에서 실행되는 일련의 웹 성능 테스트 또는 단위 테스트로 구성됩니다.부하 테스트에는 자동화된 코딩된 UI 테스트도 포함될 수 있습니다.코딩된 UI 테스트는 특정한 상황에서만 포함해야 합니다.부하 테스트 시 코딩된 UI 테스트를 사용하는 모든 시나리오에서는 코딩된 UI 테스트가 성능 테스트로 사용됩니다.이 경우 코딩된 UI 테스트를 통해 UI 계층에서 성능을 파악할 수 있으므로 유용합니다.예를 들어 응용 프로그램이 클라이언트에 데이터를 반환하는 데 1초가 걸리지만 데이터를 브라우저에 렌더링하는 데는 8초가 걸린다면 웹 성능 테스트로는 이러한 유형의 성능 문제를 파악할 수 없습니다.
프로토콜 계층에서 스크립팅하기 어려운 응용 프로그램의 경우에도 부하 테스트 시 코딩된 UI 테스트를 사용할 수 있습니다.이 경우 프로토콜 계층을 올바르게 스크립팅할 수 있을 때까지 코딩된 UI를 사용하여 일시적으로 부하를 생성하는 것이 좋습니다.
요구 사항
- Visual Studio Ultimate
코딩된 UI 테스트에 타이밍 측정을 위한 코드 구현
기본적으로 부하 테스트에 사용되는 코딩된 UI 테스트에서는 호출이 비동기적이므로 정확한 타이밍을 측정할 수 없습니다.타이밍을 정확하게 측정하려면 코딩된 UI 테스트를 올바르게 구현해야 합니다.이는 WaitForControlReady 메서드를 사용하여 수행할 수 있습니다.다음 샘플 코드 조각에서는 로그인 페이지에 대해 이 작업을 수행하는 방법을 보여 줍니다.
[!참고]
이 샘플은 단순화된 예제입니다.실제 테스트에서는 로그인이 실패한 경우 타이밍을 처리해야 합니다.
부하 테스트에 사용되는 코딩된 UI 테스트를 올바르게 구현하려면
로그인 페이지를 로드하는 데 걸린 시간을 측정합니다.
TestContext.BeginTimer("UI Login Page Load");
이 호출은 로그인 페이지를 로드합니다.
UIMap.LoginPage();
웹 테스트에서 수행되는 모든 시간 측정에는 WaitForReady를 사용해야 합니다.그러면 폼이 표시될 때까지 대기하게 됩니다.
UIMap.UIHttpteamtestweb1STORWindow1.UIHttpteamtestweb1STORDocument.UIEmailEdit.WaitForControlReady(); TestContext.EndTimer("UI Login Page Load");
주의 폼을 채우는 데 소요된 시간은 타이머에 포함되지 않아야 합니다.기록하는 동안 폼을 채운 후 폼을 전송하기 전에 레코더에서 코드를 생성합니다.
이 함수는 로그인 폼을 채웁니다.
UIMap.FilledInLoginForm();
로그인 작업에 걸린 시간을 측정합니다.
TestContext.BeginTimer("UI Login"); UIMap.LoggedIn();
웹 테스트에서 수행되는 모든 시간 측정에는 WaitForReady를 사용해야 합니다.그러면 로그인 확인 페이지가 표시될 때까지 대기하게 됩니다.
UIMap.UIHttpteamtestweb1STORWindow.UIHttpteamtestweb1STORDocument.UIWelcomeJamesBondwellPane.WaitForControlReady(); TestContext.EndTimer("UI Login");
부하 테스트에 코딩된 UI 테스트를 사용할 때의 제한 사항
코딩된 UI 테스트는 마우스 및 키보드 동작을 유도합니다.따라서 각 에이전트에서 1명의 가상 사용자만 코딩된 UI 테스트를 실행할 수 있습니다.이를 제어하려면 부하 테스트에 별도의 시나리오를 설정하고 사용자 부하를 1명의 사용자로 설정하는 것이 가장 좋습니다.둘 이상의 UI 테스트가 있는 경우에는 테스트 조합을 순차적 조합으로 구성합니다.자세한 내용은 기존 부하 테스트에 대한 추가 시나리오 만들기 및 텍스트 조합 모델을 편집하여 가상 사용자의 테스트 실행 가능성 지정을 참조하십시오.
또한 부하 에이전트가 서비스가 아니라 대화형 프로세스로 실행하도록 구성해야 합니다.자세한 내용은 테스트 에이전트 및 테스트 컨트롤러 설치 및 구성을 참조하십시오.
외부 리소스
지침
Visual Studio 2012 – 6 장 연속 배달 테스트: 테스트 도구는
참고 항목
참조
개념
자동화된 코딩된 UI 테스트를 사용하여 사용자 인터페이스 테스트