부하 테스트에서 코딩된 UI 테스트 사용
이 항목은 다음 언어에 적용됩니다.
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
부하 테스트를 수행하면 사용량이 각기 다른 여러 상황에서 소프트웨어의 성능이 얼마나 잘 발휘되는지 확인할 수 있습니다. 부하 테스트에서는 프로그램에 동시에 액세스하는 여러 명의 사용자를 시뮬레이션하여 소프트웨어 프로그램의 예상 사용량을 모델링합니다. 자세한 내용은 부하 테스트 만들기 및 편집을 참조하십시오.
부하 테스트는 주로 일정 기간 동안 여러 명의 사용자를 시뮬레이션한 조건에서 실행되는 일련의 웹 성능 테스트 또는 단위 테스트로 구성됩니다. 부하 테스트에는 자동화된 코딩된 UI 테스트도 포함될 수 있습니다. 코딩된 UI 테스트는 특정한 상황에서만 포함해야 합니다. 부하 테스트 시 코딩된 UI 테스트를 사용하는 모든 시나리오에서는 코딩된 UI 테스트가 성능 테스트로 사용됩니다. 이 경우 코딩된 UI 테스트를 통해 UI 계층에서 성능을 파악할 수 있으므로 유용합니다. 예를 들어 응용 프로그램이 클라이언트에 데이터를 반환하는 데 1초가 걸리지만 데이터를 브라우저에 렌더링하는 데는 8초가 걸린다면 웹 성능 테스트로는 이러한 유형의 성능 문제를 파악할 수 없습니다.
프로토콜 계층에서 스크립팅하기 어려운 응용 프로그램의 경우에도 부하 테스트 시 코딩된 UI 테스트를 사용할 수 있습니다. 이 경우 프로토콜 계층을 올바르게 스크립팅할 수 있을 때까지 코딩된 UI를 사용하여 일시적으로 부하를 생성하는 것이 좋습니다.
코딩된 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 에이전트 설치, 테스트 및 빌드 컨트롤러 설치 및 구성을 참조하십시오.
참고 항목
참조
개념
자동화된 UI 테스트를 사용하여 사용자 인터페이스 테스트