부하 테스트 실행
부하 테스트의 테스트 요구 사항에 맞게 구성 옵션을 만들고 편집하고 설정한 후에는 Visual Studio Ultimate에서 제공되는 몇 가지 옵션을 사용하여 부하 테스트를 실행할 수 있습니다.
팁
부하 테스트를 실행하기 전에 부하 테스트에 포함된 모든 웹 성능 및 단위 테스트가 단독으로 실행될 때도 테스트에 통과하는지 확인하는 것이 좋습니다. 테스트 탐색기 또는 테스트 뷰 창이나 웹 성능 테스트 편집기에서 테스트를 실행하면 테스트를 확인할 수 있습니다. 데이터 바인딩을 사용하는 웹 성능 테스트의 경우 모든 데이터 값을 사용하여 실행해야 합니다.
부하 테스트 실행을 위한 고려 사항
부하 테스트를 실행하기 전에 부하 테스트가 테스트 요구 사항 또는 목적에 맞게 적절히 구성되었는지 확인해야 합니다.
적절한 부하 패턴을 선택합니다. |
부하 테스트의 시나리오마다 다음 중 테스트 목적에 적절한 부하 패턴을 선택합니다.
|
부하 테스트 결과 저장소의 위치를 선택합니다. |
부하 테스트 결과 저장소 고려 사항 |
성능 카운터 샘플링 간격을 적절하게 설정합니다. |
성능 카운터 샘플링 간격 고려 사항 |
타이밍 정보를 포함하여 백분위수 데이터를 수집합니다. |
타이밍 정보를 포함하여 백분위수 데이터를 수집하기 위한 고려 사항 |
SQL 추적 기능을 사용합니다. |
SQL 추적 기능 사용 |
추가 테스트 에이전트가 필요한지 확인합니다. |
테스트 에이전트 오버로드 방지 |
자세한 내용은 부하 테스트에 대한 고려 사항을 참조하십시오.
그래프 모드
부하 테스트가 실행되는 동안 부하 테스트 분석기는 기본적으로 그래프 뷰 모드가 됩니다. 그래프는 다음 두 가지 모드 중 하나로 표시될 수 있습니다.
축소 모드 축소 모드는 부하 테스트 실행 중에 부하 테스트 분석기에서 사용되는 기본 그래프 모드입니다. 축소 그래프는 부하 테스트가 실행되는 동안 메모리에서 유지 관리해야 하는 데이터의 양을 줄이면서 성능 카운터의 추세는 전체 실행 기간에 대해 표시하기 위해 사용됩니다.
스크롤 모드 스크롤 그래프 모드는 부하 테스트가 실행되는 동안 부하 테스트의 결과를 보려는 경우에 사용할 수 있습니다. 스크롤 그래프는 가장 최근의 데이터 요소를 보여 주는 선택적 뷰입니다. 테스트에서 100개의 가장 최근 데이터 간격만 보려면 스크롤 그래프를 사용합니다.
참고
확대/축소 그래프 모드는 데이터베이스에 저장된 완료된 부하 테스트 결과를 볼 때만 사용할 수 있습니다.
그래프 모드 변경
부하 테스트가 실행되는 도중에 축소 모드와 스크롤 모드 간에 전환하려면 부하 테스트 분석기 도구 모음에서 그래프 옵션 드롭다운을 사용합니다. 축소 모드로 전환하려면 전체 실행 데이터를 그래프로 표시를 선택하고, 스크롤 모드로 전환하려면 최근 데이터만 그래프로 표시를 선택합니다.
작업
작업 |
관련 항목 |
---|---|
부하 테스트 실행 설정 구성: 실행 설정은 부하 테스트가 실행되는 방식에 영향을 미치는 속성 집합입니다. 실행 설정은 속성 창에서 범주별로 구성됩니다. |
|
부하 테스트 실행: 서로 다른 사용자 인터페이스 옵션을 사용하여 부하 테스트를 실행하거나, 명령줄에서 부하 테스트를 실행할 수 있습니다. |
|
원격으로 부하 테스트 실행: 테스트 에이전트 및 테스트 컨트롤러를 사용하여 하나 이상의 원격 컴퓨터에서 부하 테스트를 실행할 수 있습니다. |
|
테스트가 실행되는 동안 테스트 결과를 그래픽으로 보기: 테스트를 실행하는 동안 그리고 테스트가 완료될 때 부하 테스트의 결과가 여러 창에 데이터로 표시됩니다. |
|
부하 테스트가 실행되는 동안 테스트에 주석 추가: 부하 테스트가 실행 중일 때 또는 완료되었을 때 부하 테스트를 분석하려는 경우 설명이 포함된 주석과 임의 길이의 분석 주석을 추가하여 부하 테스트 결과와 함께 영구적으로 저장할 수 있습니다. |
|
부하 및 웹 성능 테스트를 여러 컴퓨터에 분산: 컴퓨터 그룹을 사용하여 테스트를 위해 시뮬레이션된 부하를 생성하고 여러 컴퓨터에서 동시에 원격 테스트를 실행할 수 있습니다. |
|
웹 성능 테스트에서 ASP.NET 성능 데이터 수집: 테스트 설정에서 ASP.NET 프로파일러 진단 데이터 어댑터를 사용하여 ASP.NET 웹 응용 프로그램에 대한 ASP.NET 성능 데이터를 수집할 수 있습니다. |
|
부하 테스트의 네트워크 에뮬레이션 문제 해결: 부하 테스트에서 네트워크 에뮬레이션이 올바르게 작동하는지 확인할 수 있습니다. |
|
팀 빌드를 사용하여 부하 테스트 실행: 빌드가 완료된 후에 실행되도록 구성할 수 있는 테스트 범주에 부하 테스트를 추가할 수 있습니다. |
부하 패턴 고려 사항
부하 테스트의 시나리오마다 다음 중 테스트 목적에 적절한 부하 패턴을 선택합니다.
자세한 내용은 모델 가상 사용자 동작에 대한 부하 패턴 편집을 참조하십시오.
일정 부하 패턴 사용
일정 부하 패턴은 부하 테스트를 실행하는 동안 사용자 부하를 동일하게 하는 데 사용됩니다. 사용자 수가 많은 일정 부하 패턴을 사용하면 부하 테스트 시작 시 서버 사용량이 비정상적이고 비현실적으로 높아질 수 있으므로 주의해야 합니다. 예를 들어 부하 테스트에 홈 페이지에 대한 요청으로 시작하는 웹 테스트가 포함되어 있는 경우 부하 테스트를 사용자 수가 1,000명인 일정 부하로 설정하면 부하 테스트 시 처음 1,000개의 요청이 가능한 한 빠르게 홈 페이지로 전송됩니다. 이는 실제 웹 사이트 이용과는 거리가 먼 시뮬레이션입니다. 이 문제를 완화하려면 사용자 수를 1,000명까지 점차적으로 증가시키는 단계 부하 패턴을 사용하거나 부하 테스트 실행 설정에서 준비 시간을 지정하는 것이 좋습니다. 준비 시간을 지정하면 부하 테스트에서는 준비 시간 동안 부하를 점차적으로 증가시킵니다. 자세한 내용은 시나리오 시작 시간 지연 구성을 참조하십시오.
단계 부하 패턴 사용
단계 부하 패턴은 사용자 부하가 증가함에 따라 성능이 어떻게 달라지는지를 확인할 수 있도록 부하 테스트가 실행되는 도중 서버의 부하를 증가시키는 데 사용할 수 있습니다. 예를 들어 사용자 부하가 사용자 수 2,000명으로 증가할 때 서버의 성능을 확인하기 위해 다음 속성이 설정된 단계 부하 패턴을 사용하여 10시간 동안 부하 테스트를 실행할 수 있습니다.
초기 사용자 수: 100
최대 사용자 수: 2,000
단계 지속 시간(초): 1,800
단계 진입 시간(초): 20
단계 사용자 수: 100
이러한 설정을 사용하면 30분(1,800초) 동안 사용자 수가 100명, 200명, 300명에서 최대 2,000명인 사용자 부하 상태로 부하 테스트가 실행됩니다. 단계 진입 시간 속성은 이러한 속성 중 유일하게 부하 테스트 새로 만들기 마법사에서 사용할 수 없는 속성이므로 신중하게 지정해야 합니다. 이 속성을 사용하면 사용자 수를 100명에서 200명으로 늘리는 것과 같이 한 단계에서 다음 단계로 부하를 증가시키는 작업이 즉각적으로가 아니라 점차적으로 이루어지도록 할 수 있습니다. 이 예에서는 20초 동안 사용자 부하가 100명에서 200명으로 증가하므로 1초에 5명씩 사용자가 늘어납니다. 자세한 내용은 방법: 단계 부하 패턴에 대한 단계 진입 시간 속성 지정을 참조하십시오.
참고
Visual Studio Ultimate에서는 로컬 부하 테스트 실행에 최대 250명의 가상 사용자를 사용할 수 있습니다. 부하 테스트에 더 많은 가상 사용자가 필요하거나 원격 컴퓨터를 사용하려는 경우에는 Visual Studio Load Test Virtual User Pack 2010을 구입해야 합니다. Visual Studio Load Test Virtual User Pack 2010은 Visual Studio Ultimate을 구입한 곳에서 구입할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 테스트 컨트롤러를 사용하여 부하 테스트에 대한 가상 사용자 라이선스 관리 및 부하 테스트에 대한 테스트 컨트롤러 및 테스트 에이전트 구성.
목표 기반 부하 패턴 사용
목표 기반 부하 패턴은 시스템의 리소스 사용률이 일정 수준에 도달하기 전에 시스템에서 지원할 수 있는 사용자 수를 확인하려는 경우에 유용합니다. 이 옵션은 시스템의 제한 리소스, 즉 병목 지점을 이미 파악한 경우에 사용하는 것이 가장 효과적입니다. 예를 들어 시스템의 제한 리소스가 데이터베이스 서버의 CPU임을 파악했으며 데이터베이스 서버의 CPU 사용률이 약 75%일 때 지원 가능한 사용자 수를 확인하려는 경우, 성능 카운터 "% Processor Time"의 값을 70%에서 80% 사이로 유지하는 것을 목표로 하는 목표 기반 부하 패턴을 사용할 수 있습니다.
경고
시스템의 처리량을 제한하고 있는 다른 리소스가 있으면 목표 기반 부하 패턴에 지정된 목표에 도달하지 못할 수 있으며 사용자 부하는 최대 사용자 수에 지정된 값에 도달할 때까지 계속 증가합니다.
이는 일반적으로 원하는 부하가 아니므로 목표 기반 부하 패턴에서 성능 카운터를 선택할 때는 주의해야 합니다. 또한 최대 사용자 수 값은 사용자 부하에 상한을 둘 수 있도록 신중하게 결정해야 합니다.
부하 테스트 결과 저장소 고려 사항
Visual Studio Ultimate이 설치되어 있는 경우 부하 테스트 결과 저장소는 컴퓨터에 설치된 SQL Express 인스턴스를 사용하도록 설정되는데, SQL Express에서는 디스크 공간을 최대 4GB까지만 사용할 수 있습니다. 장시간에 걸쳐 여러 부하 테스트를 실행하려는 경우에는 가능하면 전체 SQL Server 제품의 인스턴스를 사용하도록 부하 테스트 결과 저장소를 구성해야 합니다. 자세한 내용은 부하 테스트 결과 리포지토리에서 부하 테스트 결과 관리를 참조하십시오.
성능 카운터 샘플링 간격 고려 사항
부하 테스트 실행 설정에서 부하 테스트 길이를 기반으로 하는 샘플링 주기 속성 값을 선택합니다. 기본값인 5초와 같이 샘플링 주기 값이 작으면 부하 테스트 결과 데이터베이스에 더 많은 공간이 필요합니다. 부하 테스트가 긴 경우 샘플링 주기를 늘리면 수집되는 데이터 양이 줄어듭니다. 자세한 내용은 방법: 부하 테스트 실행 설정에 대한 샘플링 주기 지정을 참조하십시오.
다음은 샘플링 주기에 대한 몇 가지 지침입니다.
부하 테스트 지속 시간 |
권장 샘플링 주기 |
---|---|
1시간 미만 |
5초 |
1-8시간 |
15초 |
8-24시간 |
30초 |
24시간 초과 |
60초 |
타이밍 정보를 포함하여 백분위수 데이터를 수집하기 위한 고려 사항
부하 테스트 편집기의 실행 설정에 타이밍 정보 저장소라는 속성이 있습니다. 타이밍 정보 저장소 속성을 사용하면 부하 테스트 도중 개별 테스트, 트랜잭션 및 페이지를 실행하는 데 각각 걸리는 시간이 부하 테스트 결과 리포지토리에 저장됩니다. 또한 부하 테스트 분석기에서 테스트, 트랜잭션 및 페이지 테이블에 90번째 및 95번째 백분위수 데이터가 표시됩니다.
실행 설정 속성에서 타이밍 정보 저장소 속성을 사용할 때는 StatisticsOnly 및 AllIndividualDetails를 선택할 수 있습니다. 두 가지 경우 모두 개별 테스트, 페이지 및 트랜잭션의 시간이 측정되고 개별 타이밍 데이터에서 백분위수 데이터가 계산됩니다. 하지만 StatisticsOnly 옵션을 선택하면 백분위수 데이터가 계산되는 즉시 리포지토리에서 개별 타이밍 데이터가 삭제된다는 차이점이 있습니다. 그러면 타이밍 정보를 사용할 때 리포지토리에 필요한 공간이 감소합니다. 그러나 고급 사용자는 SQL 도구를 사용하는 등의 다른 방법으로 타이밍 정보 데이터를 처리하기를 원할 수 있습니다. 이 경우에는 타이밍 정보 데이터를 해당 처리에 사용할 수 있도록 AllIndividualDetails 옵션을 사용해야 합니다. 또한 속성을 AllIndividualDetails로 설정하면 부하 테스트 실행이 완료된 후 부하 테스트 분석기의 가상 사용자 동작 차트를 사용하여 가상 사용자 동작을 분석할 수 있습니다. 자세한 내용은 부하 테스트 분석기의 세부 정보 뷰에서 부하 테스트 가상 사용자 동작 분석을 참조하십시오.
참고
Microsoft Visual Studio 2005 및 Visual Studio 2008을 비롯한 이전 버전의 Visual Studio에서는 타이밍 정보 저장소 속성에 대해 모든 개인 정보 설정을 사용할 수 있었습니다. 하지만 두 가지 중요한 차이점이 있습니다. 첫째, 모든 개인 정보 설정은 기본 설정이 아닙니다. 둘째, 모든 개인 정보 설정은 데이터가 수집된 이후에 구성되며, SQL 쿼리를 사용해야만 이 정보에 액세스할 수 있습니다.
특히 부하 테스트 실행 시간이 긴 경우 부하 테스트 결과 리포지토리에서 타이밍 정보 데이터를 저장하는 데 필요한 공간이 매우 클 수 있습니다. 또한, 이 데이터는 부하 테스트 실행이 완료될 때까지 부하 테스트 에이전트에 저장되므로 부하 테스트가 끝날 때 부하 테스트 결과 리포지토리에 이 데이터를 저장하는 시간이 오래 걸립니다. 부하 테스트가 완료되면 데이터가 리포지토리에 저장됩니다. 타이밍 정보 저장소 속성은 기본적으로 사용됩니다. 이것이 문제가 되는 테스트 환경의 경우 타이밍 정보 저장소를 없음으로 설정할 수도 있습니다.
자세한 내용은 방법: 부하 테스트 실행 설정에 대한 타이밍 정보 저장소 속성 지정을 참조하십시오.
SQL 추적 기능 사용
SQL 성능 문제를 진단하려면 부하 테스트 편집기의 실행 설정에서 부하 테스트 중 Microsoft SQL Server의 SQL 추적 기능을 사용할 수 있게 해 주는 여러 속성을 사용합니다. SQL 추적 기능이 사용되는 경우 부하 테스트 분석기의 테이블 뷰에서 사용할 수 있는 SQL 추적 테이블에 SQL 추적 데이터가 표시될 수 있습니다.
부하 테스트가 실행되는 동안 별도의 SQL 프로파일러 세션을 시작하는 대신 SQL 추적 기능을 사용하면 매우 쉽게 SQL 성능 문제를 진단할 수 있습니다. 이 기능을 사용하려면 부하 테스트를 실행하는 사용자에게 SQL 추적을 수행하는 데 필요한 SQL 권한이 있어야 하며 추적 파일이 기록될 디렉터리를 지정해야 합니다. 이 디렉터리는 대개 공유 디렉터리입니다. 부하 테스트가 완료되면 추적 파일 데이터를 부하 테스트 리포지토리로 가져와서 실행된 부하 테스트에 연결하게 되므로 나중에 언제든지 부하 테스트 분석기를 사용하여 이 데이터를 확인할 수 있습니다.
자세한 내용은 부하 테스트에서 SQL 추적 데이터를 수집하여 성능 모니터링 및 향상을 참조하십시오.
테스트 에이전트 오버로드 방지
테스트 에이전트 컴퓨터의 CPU 사용률이 75%를 넘거나 사용 가능한 실제 메모리가 10% 미만인 경우, 부하 테스트에서 에이전트 컴퓨터로 인해 병목 현상이 발생하지 않도록 하려면 부하 테스트에 에이전트를 추가해야 합니다.
자세한 내용은 방법: 부하 테스트 시나리오에서 사용할 테스트 에이전트 지정 및 테스트 컨트롤러 및 테스트 에이전트를 사용하여 여러 테스트 컴퓨터로 부하 테스트 분산를 참조하십시오.
관련 작업
부하 및 웹 성능 테스트를 만들고 편집하는 데 필요한 지침을 제공합니다.
부하 테스트에서 웹 성능 테스트를 실행하는 방법에 대한 정보를 제공합니다.
참고 항목
개념
기타 리소스
Consideration for Load Tests that Contain Web Performance Tests