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

이 연습에서는 웹 성능 테스트를 포함하는 부하 테스트를 만듭니다.

이 연습에서는 Visual Studio 2010 Ultimate을 사용하여 부하 테스트를 만든 다음 실행하는 과정을 단계별로 설명합니다. 부하 테스트는 웹 성능 테스트와 단위 테스트의 컨테이너입니다. 부하 테스트 새로 만들기 마법사를 사용하여 부하 테스트를 만듭니다. 부하 테스트에 대한 자세한 내용은 부하 테스트 만들기 및 편집을 참조하십시오. 웹 성능 테스트에 대한 자세한 내용은 웹 성능 테스트 만들기 및 편집을 참조하십시오. 단위 테스트에 대한 자세한 내용은 단위 테스트를 사용하여 코드 확인을 참조하십시오.

참고

부하 테스트에는 웹 성능 테스트와 단위 테스트 모두가 포함될 수 있으나 이 연습에서는 웹 성능 테스트를 포함하는 부하 테스트에 초점을 맞추게 됩니다. 부하 테스트에 단위 테스트를 추가하는 방법은 연습: 단위 테스트를 포함하는 부하 테스트 만들기 및 실행을 참조하십시오.

부하 테스트는 원하는 부하 시뮬레이션을 생성하도록 수정할 수 있는 많은 런타임 속성을 노출합니다. 이 연습에서는 부하 테스트 새로 만들기 마법사를 사용하여 부하 테스트에 웹 성능 테스트를 추가합니다.

이 연습에서는 부하 테스트에 추가할 수 있는 기존 웹 성능 테스트가 필요합니다.

이 연습에서는 다음 작업을 수행합니다.

  • 부하 테스트를 만듭니다.

  • 부하 테스트에 웹 성능 테스트를 추가합니다.

  • 일부 부하 테스트 설정을 변경합니다.

  • 부하 테스트를 실행합니다.

사전 요구 사항

이전 연습에서 만든 ColorWebApp 솔루션 열기

솔루션 열기

임계값 위반 및 오류를 볼 수 있도록 Red.aspx.cs ASP.NET 페이지의 코드 수정

임계값 위반 및 오류를 볼 수 있도록 Red.aspx.cs 코드를 수정하려면

  1. 솔루션 탐색기에서 ColorWebApp ASP.NET 웹 응용 프로그램 프로젝트 폴더를 확장하고 Red.aspx 노드를 확장합니다.

  2. Red.aspx.cs 파일을 마우스 오른쪽 단추로 클릭하고 코드 보기를 선택합니다.

  3. 코드 편집기에서 Page_Load 메서드에 강조 표시된 다음 코드를 추가합니다.

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    

    이 추가 코드는 부하 테스트 분석기에서 모의 임계값 위반 및 오류를 볼 수 있게 하기 위한 것입니다. 이러한 위반은 이 연습의 뒷부분에서 살펴봅니다.

부하 테스트 새로 만들기 마법사를 사용하여 부하 테스트 만들기

부하 테스트 새로 만들기 마법사를 시작하려면

  1. 솔루션 탐색기에서 ColorWebAppTest 테스트 프로젝트 노드를 마우스 오른쪽 단추로 클릭합니다.

  2. 추가를 클릭한 다음 부하 테스트를 클릭합니다.

    부하 테스트 새로 만들기 마법사가 시작됩니다.

    부하 테스트 새로 만들기 마법사부하 테스트 새로 만들기 마법사 시작 페이지가 첫 번째 페이지입니다.

  3. 다음을 클릭합니다.

부하 테스트 시나리오의 설정을 편집하려면

  1. 부하 테스트 시나리오의 설정 편집 페이지가 표시됩니다.

  2. 부하 테스트 시나리오의 이름 입력 아래의 텍스트 상자에 "시나리오 기본 스트레스"를 입력합니다.

    시나리오는 그룹화 메커니즘으로 테스트 집합과 부하에서 해당 테스트를 실행하기 위한 속성으로 구성됩니다.

  3. 인지 시간 프로필기록된 인지 시간을 평균으로 하는 정규 분포 사용으로 설정합니다.

    인지 시간은 사용자가 다음 페이지로 이동하기 전에 웹 페이지를 살펴보는 시간을 나타냅니다.

    자세한 내용은 방법: 인지 시간을 설정하여 웹 성능 테스트에서 사용자 일시 중지 시뮬레이션을 참조하십시오.

  4. 다음을 클릭합니다.

테스트 시나리오의 부하 패턴 설정을 편집하려면

  1. 부하 테스트 시나리오의 부하 패턴 설정 편집 페이지가 표시됩니다.

  2. 일정 부하를 선택합니다.

    부하 패턴 속성은 부하 테스트 중에 시뮬레이션된 사용자 부하가 조정되는 방식을 지정합니다.

    자세한 내용은 모델 가상 사용자 동작에 대한 부하 패턴 편집을 참조하십시오.

  3. 다음을 클릭합니다.

시나리오에 대한 테스트 조합 모델을 선택하려면

  1. 부하 테스트의 테스트 조합 모델 선택 페이지가 표시됩니다.

  2. **테스트 조합의 모델링 방식을 지정합니다.**에서 총 테스트 횟수 기반을 선택합니다.

    테스트 조합 모델은 가상 사용자가 부하 테스트 시나리오에서 지정된 테스트를 실행할 확률을 지정합니다.

    자세한 내용은 테스트 조합 모델을 편집하여 가상 사용자의 테스트 실행 가능성 지정을 참조하십시오.

  3. 다음을 클릭합니다.

시나리오에 ColorWebTest.webtest 웹 성능 테스트를 추가하려면

  1. 부하 테스트 시나리오에 테스트 추가 및 테스트 조합 편집 페이지가 표시됩니다.

  2. 추가를 클릭하여 테스트를 선택합니다.

    테스트 추가 대화 상자가 나타납니다.

  3. 사용 가능한 테스트 창에서 ColorWebTest 웹 성능 테스트를 선택하고 화살표를 클릭하여 해당 테스트를 선택한 테스트 창에 추가합니다.

  4. 확인을 클릭합니다.

    테스트 조합이 표시됩니다. 부하 테스트에 여러 웹 성능 및 단위 테스트가 포함되어 있는 경우 슬라이더를 사용하여 테스트 배포를 조정할 수 있습니다.

    시나리오의 테스트 조합은 시나리오에 포함되도록 선택한 테스트와 시나리오 내에서 이러한 테스트의 분포 등 다양한 요소를 조합한 것입니다. 테스트 조합에는 특정 시나리오에 대한 테스트의 목적이 반영되어야 합니다.

    자세한 내용은 방법: 새 부하 테스트 마법사에서 테스트 조합 만들기을 참조하십시오.

  5. 다음을 클릭합니다.

테스트 시나리오에 대한 네트워크 조합을 선택하려면

  1. 부하 테스트 시나리오에 네트워크 형식 추가 및 네트워크 조합 편집 페이지가 표시됩니다.

  2. LAN의 기본 설정인 100%를 그대로 둡니다.

    네트워크 조합을 통해 부하 테스트 시나리오에서 부하를 보다 사실적으로 시뮬레이션할 수 있습니다.

    부하 테스트 시나리오에서 에뮬레이트할 네트워크의 형식을 지정하려면 네트워크 형식 아래의 각 행 옆에 있는 드롭다운 화살표를 클릭합니다. 둘 이상의 네트워크 형식을 사용하도록 네트워크 조합을 구성하는 경우 슬라이더를 사용하여 네트워크 형식 배포를 지정할 수 있습니다.

    자세한 내용은 부하 테스트 시나리오의 가상 네트워크 형식 지정을 참조하십시오.

  3. 다음을 클릭합니다.

테스트 시나리오에 대한 브라우저 조합을 선택하려면

  1. 부하 테스트 시나리오에 브라우저 종류 추가 및 브라우저 조합 편집 페이지가 표시됩니다.

  2. 기본 설정인 Internet Explorer 7.0을 그대로 사용하거나 현재 사용 중인 테스트 종류를 지정합니다.

    부하 테스트 시나리오에서 웹 응용 프로그램을 테스트하는 데 사용할 브라우저의 종류를 지정하려면 브라우저 종류 아래의 각 행 옆에 있는 드롭다운 화살표를 클릭합니다. 둘 이상의 브라우저 종류를 사용하도록 브라우저 조합을 구성하는 경우 슬라이더를 사용하여 브라우저 종류 배포를 지정할 수 있습니다.

    자세한 내용은 부하 테스트 시나리오의 웹 브라우저 유형 지정을 참조하십시오.

  3. 다음을 클릭합니다.

부하 테스트를 실행하는 동안 카운터 집합으로 모니터링할 컴퓨터를 지정하려면

  1. 부하 테스트를 실행하는 동안 카운터 집합으로 모니터링할 컴퓨터 지정 페이지가 표시됩니다.

  2. 기본 설정을 그대로 둡니다.

    카운터 집합은 사용자가 지정하는 컴퓨터에서 수집됩니다. 부하 테스트 동안 사용되는 카운터 집합과 컴퓨터 간의 연결은 카운터 집합 맵입니다. 예를 들어, 테스트 중인 웹 서버에 ASP.NET, IIS 및 .NET 응용 프로그램 카운터 집합 매핑이 있을 수 있습니다.

    컴퓨터 추가를 클릭하고 이전에 대상으로 지정했던 제작되지 않은 웹 사이트를 호스팅하는 서버의 이름을 입력하여 테스트를 실행하는 동안 모니터링할 컴퓨터를 선택할 수 있습니다. 호스트 컴퓨터 이름을 추가함으로써 부하 테스트에 중요한 성능 정보를 수집합니다.

    참고

    모니터링하는 각 서버에서 성능 모니터링을 실행할 수 있는 사용자 권한이 있어야 합니다. 그렇지 않으면 오류가 생성됩니다.

    사이트에 대한 SQL 데이터베이스를 호스팅하는 컴퓨터에 대해 별도의 항목을 추가할 수 있습니다. 컴퓨터를 추가하지 않도록 선택하면 로컬 부하 카운터만 테스트에 추가됩니다.

    그런 다음 모니터링할 카운터 집합을 선택할 수 있습니다. 부하 테스트에 특정 성능 모니터를 추가하는 여러 개의 미리 정의된 카운터 집합이 표시됩니다. 여기에는 응용 프로그램, ASP.NET, .NET 응용 프로그램, IIS 및 SQL이 포함됩니다.

    자세한 내용은 부하 테스트에서 컴퓨터에 대한 카운터 집합 지정연습: 부하 테스트에서 테스트 컨트롤러 및 테스트 에이전트 사용을 참조하십시오.

  3. 다음을 클릭합니다.

부하 테스트에 대한 실행 설정을 편집하려면

  1. 부하 테스트의 실행 설정 검토 및 편집 페이지가 표시됩니다.

  2. 부하 테스트를 스모크 테스트하려면 부하 테스트 지속 시간을 선택한 다음 실행 지속 시간을 2분으로 설정합니다.

    웹 성능 테스트와 부하 테스트를 빌드할 때 짧고 간단한 부하 테스트를 실행하여 모두 제대로 구성되었고 예상한 대로 실행되고 있는지 확인하는 것이 좋습니다. 이 프로세스를 스모크 테스트라고 합니다.

    실행 설정은 전체 부하 테스트에 영향을 주는 속성 집합입니다. 실행 설정을 통해 테스트 길이, 준비 시간, 보고되는 최대 오류 정보 수, 샘플링 주기, 설명, 부하 테스트 실패 시 로그를 저장할지 여부 및 유효성 검사 수준이 결정됩니다. 실행 설정에는 부하 테스트의 목표가 반영되어야 합니다.

    자세한 내용은 부하 테스트 실행 설정 구성을 참조하십시오.

  3. 마침을 클릭합니다. 부하 테스트가 부하 테스트 편집기에서 열립니다.

부하 테스트 편집기를 사용하여 부하 테스트에 임계값 규칙 추가

부하 테스트에 임계값 규칙을 추가하려면

  1. 카운터 집합 노드에서 LoadTest 카운터 집합 노드를 확장하고 카운터 범주 폴더 노드를 확장합니다.

  2. LoadTestPage 카운터 범주 노드를 확장하고 카운터 폴더 노드를 확장합니다.

  3. Avg Page Time 카운터 노드를 마우스 오른쪽 단추로 클릭하고 임계값 규칙 추가를 선택합니다.

  4. 임계값 규칙 추가 대화 상자가 표시됩니다.

  5. 규칙 선택에서 상수 비교 규칙을 선택된 상태로 둡니다.

  6. 선택한 규칙에 대한 속성옵션 범주에서 초과하면 경고True로 설정합니다.

  7. 임계값 범주에서 경고 임계값을 3으로 설정하고 중요 임계값을 4로 설정합니다.

  8. 확인을 클릭합니다.

  9. Avg. Page Time 카운터 아래에 새 규칙이 포함된 임계값 규칙 폴더가 추가되었습니다.

부하 테스트 실행 및 그래프에 임계값 위반 사용

부하 테스트를 만든 다음 이를 실행하여 웹 사이트가 부하 시뮬레이션에 어떻게 반응하는지 확인합니다. 부하 테스트가 실행되는 동안 부하 테스트 분석기 창에서 일부 초기 분석을 시작할 수 있습니다.

부하 테스트를 실행하려면

  1. 부하 테스트 편집기에 부하 테스트가 열려 있는 상태에서 녹색 실행 단추를 클릭합니다. 부하 테스트가 부하 테스트 분석기의 그래프 뷰에서 실행되기 시작합니다.

  2. 테스트가 실행 중일 때 도구 모음의 범례 표시 드롭다운 목록 단추를 클릭하고 그래프에 임계값 위반 표시를 선택합니다.

    테스트 시뮬레이션이 임계값을 초과하면 트리 컨트롤 노드에 아이콘이 표시되어 임계값 위반을 나타냅니다. 오류의 경우에는 빨간색 원이 겹쳐 표시되며 경고의 경우에는 노란색 삼각형이 겹쳐 표시됩니다.

  3. 그래프 뷰의 페이지 응답 시간 그래프에 임계값 위반 아이콘이 나타나는 경우, 부하 테스트 분석기의 도구 모음에서 분석 참고 사항 추가를 클릭합니다.

    분석 대화 상자가 표시됩니다.

  4. 설명 텍스트 상자에 "임계값 위반"을 입력합니다.

  5. 분석 텍스트 상자에 "Red.aspx.cs 파일에 코드 오류가 있는 것으로 의심됨"을 입력합니다.

    주석은 부하 테스트 결과와 함께 영구적으로 저장됩니다.

  6. 부하 테스트 실행이 완료되면 부하 테스트 분석기의 요약 페이지에서 LoadTest1[시간]이라는 별도의 탭에 부하 테스트 결과가 표시됩니다.

부하 테스트 분석

부하 테스트가 완료된 후에는 부하 테스트 결과에 대한 세부적인 분석을 계속할 수 있습니다. 자세한 내용은 부하 테스트 분석기 개요을 참조하십시오.

부하 테스트 분석기를 사용하여 부하 테스트를 분석하려면

  1. 요약 뷰에서 아래쪽의 오류 테이블로 스크롤하고 Http 오류 또는 유효성 검사 규칙 오류를 클릭합니다.

  2. 부하 테스트 분석기가 오류 테이블이 표시된 테이블 뷰로 바뀌고 클릭한 규칙 형식이 선택됩니다.

  3. 유효성 검사 규칙 오류 규칙 형식에 대한 행에서 하위 형식 오류 열 아래에 나열된 ValidateResponseurl을 확인합니다. 이 임계값 위반은 최대 5초 동안 모의 페이지 지연을 임의로 발생시키는 다음의 강조 표시된 코드를 Red.aspx.cs 파일에 추가했기 때문에 발생한 것입니다.

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    

    이 모의 지연은 연습의 앞부분에서 지정한 경고 임계값 3과 중요 임계값 4를 모두 위반할 수 있습니다. 경고 아이콘은 느낌표가 있는 노란색 삼각형으로 표시되고 중요 위반 아이콘은 X가 있는 빨간색 원으로 표시됩니다.

  4. Http 오류 오류 형식에 대한 행에서 하위 형식 오류 열 아래의 404 - NotFound를 확인합니다. 이 오류는 Red.aspx.cs 파일에 다음의 강조 표시된 코드를 추가했기 때문에 발생한 것입니다. 이 코드는 존재하지 않는 페이지로 리디렉션되어 오류가 발생할 확률이 10%가 되도록 합니다.

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    
  5. 개수 열에서 유효성 검사 규칙 오류 규칙 형식의 숫자 링크를 클릭합니다.

    부하 테스트 오류 대화 상자가 표시됩니다.

  6. 오른쪽으로 스크롤하고 자세히 열에서 TestLog 링크를 클릭합니다.

  7. 웹 성능 테스트 뷰어가 열리고 별도의 탭에 이 오류와 관련된 ColorWebTest가 표시됩니다.

  8. 부하 테스트 오류 대화 상자에서 닫기를 클릭합니다.

  9. LoadTest[시간] 탭을 선택하여 부하 테스트 결과가 표시된 부하 테스트 분석기로 돌아갑니다.

  10. 카운터 패널에서 Scenaro1 노드에 임계값 경고 아이콘 중 하나가 있는지 확인합니다. 임계값 위반을 일으키는 코드가 적용되는 Avg Page Time 카운터에 도달할 때까지 노드를 확장합니다.

  11. 그래프 뷰에서 페이지 응답 시간 그래프에 나타나는 임계값 위반에도 임계값 위반 아이콘이 표시되는지 확인합니다.

  12. 위반 아이콘이 있는 그리기 선을 클릭합니다.

  13. Red(이전 연습에서 추가한 보고 이름) 요청에 대한 그래프 뷰 범례에서 그리기 선이 굵게 표시되고 Avg Page Time 카운터가 강조 표시됩니다.

  14. Avg Page Time 카운터의 Max 열이 지정한 임계값을 초과합니다.

다음 단계

이 연습에서는 웹 응용 프로그램 ColorWebApp와 웹 성능 테스트 ColorWebTest.webtest를 사용하여 부하 테스트를 만들고 기본적인 몇 가지 분석을 시작하는 방법을 알아보았습니다.

가상 사용자 정보 차트를 사용하여 부하 테스트를 세부적으로 분석하는 방법을 알아보려면 연습: 가상 사용자 동작 차트를 사용하여 문제 격리를 참조하십시오.

테스트 컨트롤러와 테스트 에이전트를 사용하여 부하 테스트를 여러 컴퓨터에 분산하는 방법을 알아보려면 연습: 부하 테스트에서 테스트 컨트롤러 및 테스트 에이전트 사용을 참조하십시오.

참고 항목

작업

연습: 웹 성능 테스트 기록 및 실행

연습: 코딩된 웹 성능 테스트 만들기

방법: 새 부하 테스트 마법사에서 실행 설정 만들기

방법: 새 부하 테스트 마법사를 사용하여 사용자 동작, 테스트, 브라우저 및 네트워크를 모델링하는 데 사용되는 시나리오 만들기

방법: 새 부하 테스트 마법사를 사용하여 새 부하 테스트 만들기

방법: 새 부하 테스트 마법사에서 테스트 조합 만들기

방법: 부하 테스트 분석기를 사용하여 부하 테스트의 웹 페이지 응답 시간 보기

개념

부하 테스트에서 컴퓨터에 대한 카운터 집합 지정

부하 테스트 분석기 개요

부하 테스트 분석기 개요

부하 테스트 결과 요약 개요

부하 테스트 분석기를 사용하여 부하 테스트에서 임계값 규칙 위반 분석

부하 테스트 편집기의 그래프 뷰에서 부하 테스트 결과 분석

부하 테스트 편집기의 테이블 뷰에서 부하 테스트 결과 분석

기타 리소스

부하 테스트 시나리오의 웹 브라우저 유형 지정

부하 테스트 시나리오의 가상 네트워크 형식 지정

모델 가상 사용자 동작에 대한 부하 패턴 편집

테스트 조합 모델을 편집하여 가상 사용자의 테스트 실행 가능성 지정

부하 테스트 실행 설정 구성

부하 테스트 분석기를 사용하여 부하 테스트 결과 분석