부하 테스트 만들기 및 편집

부하 테스트를 솔루션에 추가 하려면 웹 성능 및 부하 테스트 프로젝트를 만들 수 있습니다.부하 테스트는 단위 테스트와 웹 성능 테스트를 모두 포함할 수 있습니다.부하 테스트의 기본 목적은 하나의 서버에 동시에 액세스하는 많은 사용자를 시뮬레이션하는 것입니다.부하 테스트를 사용하여 응용 프로그램 스트레스 및 성능 데이터에 액세스할 수 있습니다.부하 테스트에서 사용자 부하 및 네트워크 형식과 같은 여러 부하 조건을 에뮬레이트하도록 구성할 수 있습니다.부하 테스트의 초기 설정을 지정할 수 있는 부하 테스트 새로 만들기 마법사를 사용하여 새 부하 테스트를 만듭니다.초기 설정에는 시나리오, 카운터 집합, 실행 설정 등이 포함됩니다.

요구 사항

  • Visual Studio Ultimate

비디오: Visual Studio 테스트 응용 프로그램을 로드.

작업

작업

관련 항목

새 부하 테스트 만들기: Visual Studio Ultimate의 부하 테스트 새로 만들기 마법사를 사용하여 응용 프로그램의 스트레스와 성능을 테스트하는 부하 테스트를 만들 수 있습니다.

기존 부하 테스트 편집: 부하 테스트 새로 만들기 마법사를 사용 하 여 부하 테스트를 만든 후 수정 및 다양 한 설정 및 부하 테스트 편집기를 사용 하 여 속성을 구성할 수 있습니다.

코딩된 UI 테스트가 포함된 부하 테스트: 코딩된 UI 테스트를 성능 테스트로 포함하는 부하 테스트를 만들 수 있습니다.코딩된 UI 테스트를 사용하면 UI 계층에서 성능을 캡처할 수 있으므로 이 작업은 매우 특정한 상황에서만 유용합니다.

부하 테스트에 사용할 64비트 프로세서 지정: 부하 테스트에 사용할 테스트 설정을 구성하여 64비트 프로세스를 사용하도록 지정할 수 있습니다.

관련 작업

부하 테스트 실행 설정 구성

실행 설정은 부하 테스트가 실행되는 방식에 영향을 미치는 속성 집합입니다.실행 설정은 속성 창에서 범주별로 구성됩니다.

부하 테스트 고려 사항

대규모 부하 테스트를 수행 하기 위한 다음 팁을 고려해 야 합니다 Visual Studio Ultimate.

적절한 부하 패턴 선택

적절한 연결 모델 선택

샘플링 주기와 데이터 수집

인지 시간

웹 성능 테스트 요청의 응답 시간 목표 설정

타이밍 정보를 포함하여 백분위수 데이터 수집

새 사용자의 백분율 속성 설정

ASP.NET 프로파일러 사용

가상 사용자 로깅 사용

SQL 추적 사용

적절한 에이전트 컴퓨터 수 유지

적절한 부하 패턴 선택

일정 부하, 단계 부하 및 목표 기반 부하라는 세 가지 부하 패턴이 있습니다.사용자의 부하 테스트에 적절한 부하 패턴을 선택하려면 각 유형의 장점을 파악해야 합니다.자세한 내용은 모델 가상 사용자 동작에 대한 부하 패턴 편집을 참조하십시오.

상수

일정 부하 패턴은 장기간에 걸쳐 동일한 사용자 부하를 적용하여 부하 테스트를 실행하려는 경우에 유용합니다.일정 부하 패턴에서 사용자 부하를 높게 지정하는 경우 부하 테스트에 준비 시간을 함께 지정하는 것이 좋습니다.준비 시간을 지정하면 사이트에 수백 개의 새 사용자 세션이 동시에 생성되어 과부하가 걸리지 않게 할 수 있습니다.

Step

사용자 로드가 증가 함 시스템의 성능을 모니터링할 수 있습니다 때문에 단계 부하 패턴은 가장 널리 사용 되며 유용한 부하 패턴 중 하나입니다.사용자 로드가 증가 함에 따라 시스템을 모니터링 수용 가능한 응답 시간을 지원할 수 있습니다 사용자의 수를 확인할 수 있습니다.반대로,이 또한 시 성능이 저하 되기 시작 하는 사용자 수를 결정할 수 있습니다.

많은 수의 사용자가 각 단계를 추가 하는 경우 예를 들어, 50 명이 넘는 사용자를 고려해 야 사용 하는 단계 진입 시간 시작 단계에서 사용자를 분산 시키는 속성입니다.자세한 내용은 방법: 단계 부하 패턴에 대한 단계 진입 시간 속성 지정을 참조하십시오.

목표 기반 부하

목표 기반 부하 패턴은 사용자 부하가 일반적으로 시간에 따라 증가 한다는 점에서 단계 부하 패턴에 유사 합니다.그러나 부하 증가 특정 성능 카운터가 일정 수준에 도달 하면 중지 하도록 지정할 수 있습니다.예를 들어 목표 기반 부하 패턴을 사용하여 부하를 점점 늘리다가 대상 서버 중 하나의 사용률이 75%가 되면 부하를 일정하게 유지할 수 있습니다.

미리 정의된 부하 패턴이 사용자의 필요에 적합하지 않은 경우 부하 테스트가 실행되는 도중 사용자 부하를 제어하는 사용자 지정 부하 테스트 플러그 인을 구현할 수도 있습니다.자세한 내용은 부하 및 웹 성능 테스트에 대한 사용자 지정 플러그 인 만들기 및 사용을 참조하십시오.

적절한 웹 성능 테스트 연결 모델 선택

부하 테스트 실행 설정 사용 하 여 웹 서버에 대한 사용자 연결을 모델링 하기 위한 여러 가지 옵션을 지원의 웹 테스트 연결 모델 속성입니다.연결 모델의 세 가지 종류가 있습니다: 사용자, 연결 풀 및 테스트 반복 별 연결 마다 연결 합니다.사용자의 부하 테스트에 적절한 연결 모델을 선택하려면 각 유형의 장점을 파악해야 합니다.

사용자별 연결

사용자별 연결 모델은 실제 브라우저의 동작을 가장 가깝게 시뮬레이션합니다.웹 성능 테스트를 실행하는 각 가상 사용자는 각 웹 서버에 대해 최대 6개의 연결을 사용합니다.연결은 해당 가상 사용자 전용으로 웹 서버에 대해 열린 상태로 유지됩니다.웹 성능 테스트에서 첫 번째 요청이 발생하면 첫 번째 연결이 설정됩니다.페이지에 종속 요청이 둘 이상 포함 되어 있는 경우 추가 연결을 사용할 수 있습니다.추가 연결을 사용 하 여 병렬로 이러한 요청을 발급할 수 있습니다.이전 브라우저에서는 웹 서버별로 최대 2개의 연결만 사용되지만 FireFox 3 및 Internet Explorer 8에서는 웹 서버별로 최대 6개의 연결이 사용됩니다.이러한 동일한 연결이 전체 부하 테스트 동안 해당 가상 사용자에 대해 다시 사용됩니다.

사용자 마다 연결 모델의 단점은 에이전트 컴퓨터에 열려 있는 연결 수가 여러 웹 서버를 대상으로, 이러한 많은 연결 수를 지 원하는 데 필요한 리소스를 단일 부하 테스트 에이전트에서 구동 될 수 있는 사용자 부하가 제한 하는 경우 최대 6 배 사용자 부하를 또는 더 높은 수 있다는 것.

연결 풀

연결 풀 모델은 여러 가상 웹 성능 테스트 사용자 간에 웹 서버에 대한 연결을 공유하여 부하 테스트 에이전트의 리소스를 절약합니다.연결 풀 모델에서 연결 풀 크기는 부하 테스트 에이전트와 웹 서버 사이에 만들 수 있는 최대 연결 수를 지정합니다.사용자 부하가 연결 풀 크기보다 크면 여러 가상 사용자가 실행하는 웹 성능 테스트에서 연결을 공유하게 됩니다.응용 프로그램 계층에 최대 부하를 생성하려면 이 모델을 사용하는 것이 가장 좋습니다.

연결을 공유 하면 웹 성능 테스트 중 하나 다른 웹 성능 테스트 연결을 사용 하는 경우 요청을 내보내려면 대기 해야 할 수도 있습니다.요청을 제출하기 전에 웹 성능 테스트에서 대기해야 하는 평균 시간은 부하 테스트 성능 카운터인 Avg. Connection Wait Time을 통해 추적됩니다.이 시간은 페이지의 평균 응답 시간보다 작아야 합니다.그렇지 않으면 연결 풀 크기가 너무 작은 경우일 수 있습니다.

테스트 반복별 연결

테스트 반복별 연결 모델은 각 테스트 반복 후에 연결을 닫고 다음 반복에서 새 연결을 엽니다.

이 설정은 사용자 네트워크에 로그온 할 때 대부분의 스트레스를 배치합니다.이 필요 하지 않은 경우 이전 두 옵션 중 하나를 사용 하는 것이 좋습니다.

샘플링 주기와 데이터 수집

부하 테스트의 길이에 따라 적절한 샘플링 주기를 선택해야 합니다.5초 등의 짧은 샘플링 주기를 선택하면 샘플링 주기가 길 때보다 각 성능 카운터에 많은 데이터가 수집됩니다.장기간에 걸쳐 데이터를 대규모로 수집하면 디스크 공간 오류가 발생할 수 있습니다.부하 테스트가 긴 경우 샘플링 주기를 늘려 수집하는 데이터의 양을 줄일 수 있습니다.성능 카운터의 개수도 데이터가 수집되는 양에 영향을 줍니다.테스트 대상 컴퓨터에서 카운터 수를 줄이면 수집한 데이터의 양을 줄일 수 있습니다.

특정 부하 테스트에 가장 적합 한 샘플링 주기를 확인 하려면 테스트를 해야 합니다.다음 표에 시작 하기 위해 사용할 수 있는 권장 되는 샘플 속도 제공 합니다.

부하 테스트 지속 시간

권장 샘플링 주기

1시간 미만

5초

1-8시간

15초

8-24시간

30초

24시간 초과

60초

인지 시간

웹 성능 테스트 요청의 인지 시간은 적절한 응답 시간을 유지하면서 지원 가능한 사용자 수에 큰 영향을 줍니다.인지 시간을 2 초에서 10 초로 일반적으로 변경 5를 시뮬레이션할 수 있도록 항상 많은 사용자입니다.그러나 실제 사용자를 시뮬레이션 하는 것이 목적인 경우 사용자의 웹 사이트에서 동작 예상 방법에 따라 대기 시간을 설정 해야 합니다.인지 시간과 사용자 수를 늘려도 웹 서버에 항상 추가 부담을 주지는 않습니다.웹 서버가 인증된 경우 사용된 구성표 유형이 성능에 영향을 줍니다.

웹 성능 테스트에 대한 인지 시간을 해제 하는 경우와 요청 처리량이 높은 부하 테스트를 생성할 수 / 초.인지 시간을 해제하는 경우 사용자 수를 인지 시간을 사용할 때보다 훨씬 작은 수로 줄여야 합니다.예를 들어 인지 시간을 해제하고 1000명의 사용자를 실행하면 대상 서버나 부하 테스트 에이전트에 무리를 주게 됩니다.

자세한 내용은 부하 테스트 시나리오에서 인지 시간을 편집하여 웹 사이트 사용자 상호 작용 지연 시뮬레이션을 참조하십시오.

웹 성능 테스트 요청의 응답 시간 목표 설정

웹 테스트 요청의 속성 중 하나로 응답 시간 목표가 있습니다.웹 성능 테스트 요청의 응답 시간 목표를 정의하면 부하 테스트에서 웹 성능 테스트가 실행될 때 부하 테스트 분석기에서 응답 시간이 목표에 도달하지 못한 웹 성능 테스트의 백분율을 보고합니다.기본적으로는 웹 요청에 응답 시간 목표가 정의되어 있지 않습니다.

또한 응답 시간 목표 위반 규칙을 사용하는 경우에는 응답 시간 목표에 도달하지 못한 페이지로 인해 부하 테스트에서 오류가 발생합니다.로그온 오류를 사용하는 경우 느린 페이지가 발생할 때 사용자가 수행하고 있던 작업을 확인할 수 있습니다.

자세한 내용은 방법: 웹 성능 테스트에 페이지 응답 시간 목표 설정을 참조하십시오.

타이밍 정보를 포함하여 백분위수 데이터 수집 및 세부 정보 뷰 사용

실행 설정에는 타이밍 정보 저장소라는 속성이 들어 있습니다.이 속성을 사용하면 부하 테스트 도중 개별 테스트, 트랜잭션 및 페이지를 실행하는 데 각각 걸리는 시간이 부하 테스트 결과 리포지토리에 저장됩니다.따라서 부하 테스트 분석기에서 가상 사용자 동작 차트를 볼 수 있습니다.또한 부하 테스트 분석기에서 테스트, 트랜잭션페이지 테이블에 90번째, 95번째 및 99번째 백분위수와 표준 편차가 표시됩니다.

부하 테스트 분석기를 사용하여 부하 테스트 결과의 세부 정보 뷰에서 가상 사용자 동작 차트를 지원하기 위해 타이밍 정보 저장소는 기본적으로 사용하도록 설정됩니다.

테스트 크기가 큰 경우에는 타이밍 정보 저장소 속성을 사용하지 않도록 설정하는 것이 좋습니다.여기에는 두 가지 중요한 이유가 있습니다.

  • 특히 부하 테스트가 긴 경우 부하 테스트 결과 리포지토리에서 타이밍 정보 데이터를 저장하는 데 필요한 공간이 매우 클 수 있습니다.

  • 이 데이터는 부하 테스트 실행이 완료될 때까지 부하 테스트 에이전트에 저장되므로 부하 테스트가 끝날 때 부하 테스트 결과 리포지토리에 이 데이터를 저장하는 시간이 오래 걸립니다.

부하 테스트 결과 리포지토리에 사용할 수 있는 디스크 공간이 충분한 경우 타이밍 정보 저장소를 사용하여 백분위수 데이터를 가져올 수 있습니다.타이밍 정보 저장소를 사용할 때는 StatisticsOnlyAllIndividualDetails를 선택할 수 있습니다.옵션 중 하나를 사용 하 여 개별 테스트, 페이지 및 트랜잭션의 시간이 측정 되 고 있으며 개별 타이밍 데이터에서 백분위 수 데이터가 계산 됩니다.StatisticsOnly를 선택하면 백분위수 데이터가 계산된 후 리포지토리에서 개별 타이밍 데이터가 삭제됩니다.데이터를 삭제하면 리포지토리에 필요한 공간이 감소합니다.그러나 SQL 도구를 사용하여 타이밍 정보 데이터를 직접 처리하거나 가상 사용자 동작 차트에서 가상 사용자 정보를 볼 수 있도록 하려는 경우에는 타이밍 정보 데이터가 리포지토리에 저장되도록 AllIndividualDetails를 선택해야 합니다.

자세한 내용은 부하 테스트 분석기의 세부 정보 뷰에서 부하 테스트 가상 사용자 동작 분석방법: 전체 정보를 수집하여 테스트 결과에서 가상 사용자 동작을 활성화하도록 부하 테스트 구성을 참조하십시오.

새 사용자의 백분율 속성 설정

부하 테스트의 각 시나리오에는 새 사용자의 백분율이라는 속성이 있습니다.이 속성은 부하 테스트 런타임 엔진에서 웹 브라우저가 수행하는 캐시 작업을 시뮬레이션하는 방식에 영향을 줍니다.새 사용자의 백분율의 기본값은 0입니다.이는 각 가상 사용자가 테스트 반복 간에 종속 요청의 가상 캐시와 쿠키 목록을 유지함을 나타냅니다.캐시는 브라우저 캐시와 같이 작동합니다.이후 요청 URL 만들 수 없습니다.실제 웹 브라우저 유사 합니다.

새 사용자의 백분율이 100%로 설정되어 있으면 각 사용자는 실제적으로 "일회성 사용자"가 되어 사이트를 다시 방문하지 않습니다.이 경우 부하 테스트에서 웹 성능 테스트를 반복하여 실행할 때마다 사용자가 웹 사이트에 처음 방문하는 것으로 간주되므로 이전에 웹 사이트를 방문하여 브라우저 캐시에 남겨진 콘텐츠가 없는 것으로 처리됩니다.따라서 모든 요청이 웹 성능 테스트에서 다운로드 됩니다.여기에 이미지 등의 모든 종속 요청이 포함 됩니다.

[!참고]

웹 성능 테스트에서 캐시 가능한 동일 리소스가 여러 번 요청되는 경우는 제외됩니다.

기본값을 사용 하 여 새 사용자 0% 웹 사이트의 응용 프로그램 계층에 가장 부하를 드라이브에.이 값이 실제 사용자 유사 하며 대부분의 성능 문제가 발생할 응용 프로그램 계층에 더 많은 부하를 드라이브.자세한 내용은 방법: 웹 캐시 데이터를 사용하는 가상 사용자 비율 지정을 참조하십시오.

ASP.NET 프로파일러 사용

ASP.NET 프로파일러 진단 데이터 어댑터를 사용 하면 수집할 수 ASP.NET 부하 테스트를 실행 하는 동안 응용 프로그램 계층에서 프로파일러 데이터입니다.프로파일러 파일이 많은 (수백 mb) 될 수 있으므로 1 시간 이상인 부하 테스트의 예를 들어 오랜 시간이 걸리는 부하 테스트에 대한 프로파일러를 실행 해야 합니다.대신 보다 짧은 부하 테스트에 ASP.NET 프로파일러를 사용해도 성능 문제를 깊이 있게 진단할 수 있습니다.

자세한 내용은 방법: Visual Studio에서 테스트 설정을 사용하여 부하 테스트에 대한 ASP.NET 프로파일러 구성을 참조하십시오.

가상 사용자 로깅 사용

실패 한 테스트 또는 테스트 로그 빈도 지정 하 여 전체 로그를 수집할 수 있습니다.로그를 제어하는 데는 테스트 실패 시 로그 저장, 완료된 테스트에 대한 로그 빈도 저장최대 테스트 로그 수 속성을 사용합니다.수집되는 로그 수를 제어하는 데는 최대 테스트 로그 수완료된 테스트에 대한 로그 빈도 저장 속성 설정을 사용합니다.기본 설정을 사용하면 로그가 대량으로 수집되지 않습니다.수백만 개의 요청을 생성 하는 장기 실행 테스트를 사용 하지 마십시오의 완료 된 테스트에 대한 로그 빈도 저장 로그 수가 너무 커질 수 있기 때문에 설정 합니다.또한는 최대 테스트 로그 속성 설정을 적절 한 수 있습니다.이 속성 설정은 로그 오류 유형별 최대 개수를 제어합니다.따라서이 설정을 유지 해야 합니다.것을 방지할 수 수천 로그를 수집 합니다.너무 많은 로그를 수집 시간이 로그를 수집 하는 테스트의 끝에서 증가 하 고 부하 테스트 데이터베이스의 저장 공간을 사용 합니다.

자세한 내용은 부하 테스트 로깅 설정 수정을 참조하십시오.

SQL 추적 사용

실행 설정에는 SQL 추적 사용이라는 속성이 들어 있습니다.이 속성을 통해 부하 테스트 동안 Microsoft SQL Server의 추적 기능을 사용할 수 있습니다.부하 테스트가 실행되는 동안 별도의 SQL 프로파일러 세션을 시작하는 대신 이 방법을 사용하여 SQL 성능 문제를 진단할 수 있습니다.이 속성을 사용하면 부하 테스트 분석기에 SQL 추적 데이터가 표시됩니다.SQL 추적 표의 테이블 페이지에서 이 데이터를 볼 수 있습니다.

이 기능을 사용하려면 부하 테스트를 실행하는 사용자에게 SQL 추적을 수행하는 데 필요한 SQL 권한이 있어야 합니다.테스트 에이전트 및 테스트 컨트롤러를 사용하여 원격 컴퓨터에서 부하 테스트를 실행하는 경우 컨트롤러 사용자에게 SQL 권한이 있어야 합니다.또한 추적 데이터 파일을 기록할 디렉터리를 지정 해야 합니다.이 디렉터리는 일반적으로 네트워크 공유입니다.부하 테스트가 완료 되 면 추적 데이터 파일을 부하 테스트 리포지토리로 가져와서 부하 테스트와 관련 된.나중에 부하 테스트 분석기를 사용 하 여 추적 데이터 파일을 볼 수 있습니다.

자세한 내용은 부하 테스트 실행 설정 구성부하 테스트에서 SQL 추적 데이터를 수집하여 성능 모니터링 및 향상을 참조하십시오.

적절한 에이전트 컴퓨터 수 유지

에이전트 컴퓨터의 CPU 사용률이 75%를 넘거나 사용 가능한 실제 메모리가 10%를 밑돌게 되면 컴퓨터에 무리를 주게 됩니다.이러한 경우 부하 테스트에서 에이전트 컴퓨터로 인해 병목 현상이 발생하지 않도록 테스트 컨트롤러에 에이전트를 추가해야 합니다.

자세한 내용은 테스트 컨트롤러 및 테스트 에이전트를 사용하여 여러 테스트 컴퓨터로 부하 테스트 실행 분산방법: 부하 테스트 시나리오에서 사용할 테스트 에이전트 지정을 참조하십시오.

외부 리소스

Dd728098.collapse_all(ko-kr,VS.110).gif비디오

Visual Studio 응용 프로그램을 테스트 하는 부하

참고 항목

작업

연습: 웹 성능 테스트를 포함하는 부하 테스트 만들기 및 실행

연습: 단위 테스트를 포함하는 부하 테스트 만들기 및 실행

개념

Visual Studio 웹 성능 및 부하 테스트를 사용하여 성능 및 스트레스 테스트