다음을 통해 공유


부하 테스트에서 테스트 컨트롤러 및 테스트 에이전트 사용

이 항목은 다음 언어에 적용됩니다.

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

Topic applies Topic does not apply Topic does not apply Topic does not apply

테스트 컨트롤러 및 테스트 에이전트를 사용하여 부하 테스트를 실행하면 부하를 여러 컴퓨터에 분산시켜 여러 명의 가상 사용자를 시뮬레이션할 수 있습니다.

자신의 리소스를 사용하고 자신의 컴퓨터를 설정하여 이 부하를 만들기를 원하지 않습니까? 클라우드 기반 부하 테스트를 사용하여 클라우드의 가상 컴퓨터에서 동시에 웹 사이트에 액세스하는 많은 사용자의 부하를 생성할 수 있습니다. Visual Studio Online 계정만 있으면 됩니다. 매월 15,000분의 가상 사용자 부하 테스트 시간을 제공하는 이 클라우드 기반 부하 테스트 서비스에 대해 자세히 알아보세요.

온-프레미스 리소스를 사용하는 앱 부하 테스트에 필요한 구성을 이해하려면 이 항목 나머지 부분에서 제공하는 정보를 참조하세요.

일반 원격 구성:

  • 컴퓨터1 및 컴퓨터2: Visual Studio(여러 테스터가 같은 컨트롤러를 사용할 수 있음)

  • 컴퓨터3: 컨트롤러(여기에도 에이전트가 설치되어 있을 수 있음)

  • 컴퓨터4-n: 컴퓨터3의 컨트롤러와 모두 연결된 에이전트

Remote machines using controller and agents

부하 테스트를 실행하는 경우 일반적으로 컴퓨터의 메모리와 처리 능력은 테스트에 대해 생성할 수 있는 부하의 양을 조정합니다. 테스트 컨트롤러는 부하를 생성하지 않지만 테스트 에이전트에서 부하 테스트 통계를 수집하고 테스트 중인 시스템과 테스트 에이전트에서 성능 카운터 데이터를 수집합니다. 따라서 테스트 컨트롤러에 사용되는 데이터베이스에는 저장된 데이터 및 테스트 실행과 관련된 테스트 에이전트를 모두 수용할 수 있는 많은 리소스가 필요합니다. 다음 표를 참조하여 테스트 컨트롤러와 테스트 에이전트의 하드웨어 요구 사항을 확인하십시오.

구성 요소

테스트 컨트롤러 응용 프로그램 계층

테스트 컨트롤러 데이터 계층

테스트 컨트롤러 응용 프로그램/데이터 계층

CPU

최소: 1GHz

권장: 2GHz

최소: 1GHz

권장: 2GHz

최소: 1GHz

권장: 2GHz

디스크 - 시스템

최소: 1 GB

권장: 1 GB

최소: 1 GB

권장: 1 GB

최소: 1 GB

권장: 1 GB

디스크 - 설치

최소: 1 GB

권장: 48 GB

최소: 8 GB

권장: 48 GB

최소: 8 GB

권장: 48 GB

메모리

최소: 1 GB

권장: 1 GB

최소: 1 GB

권장: 1 GB

최소: 1 GB

권장: 1 GB

테스트 컨트롤러를 사용하여 부하 테스트를 실행할 수 있도록 하려면, 부하 테스트를 실행할 때 사용할 SQL Server의 인스턴스를 사용하는 테스트 컨트롤러에 부하 테스트 데이터 베이스를 구성해야 합니다. SQL Server가 없는 경우에는 Visual Studio Premium에 포함된 SQL Express를 부하 테스트 저장소로 사용할 수 있습니다. 테스트 컨트롤러를 구성하는 방법에 대한 자세한 내용은 테스트 에이전트 및 테스트 컨트롤러 설치 및 구성을 참조하십시오.

하드웨어 크기를 조정할 때 다음과 같은 추가 요소를 고려해야 합니다.

구성 요소

테스트 에이전트

테스트 컨트롤러 응용 프로그램 계층

테스트 컨트롤러 데이터 계층

테스트 컨트롤러 AT/DT

CPU

테스트에 따라 CPU가 주로 제한 요소가 됨

많이 사용되지 않음

많이 사용되지 않음

많이 사용되지 않음

디스크

부하 테스트에 상세 기록을 사용하는 경우 많이 사용됨

많이 사용되지 않음

24시간 테스트 데이터에 10GB 공간 필요

24시간 테스트 데이터에 10GB 공간 필요

메모리

테스트에 따라 메모리가 제한 요소가 됨

많이 사용되지 않음

SQL에서 많이 사용됨

SQL에서 많이 사용됨

특정 테스트 에이전트에서 생성할 수 있는 부하의 양은 테스트마다 크게 다릅니다. 대부분의 테스트는 CPU로 바인딩됩니다. CPU 사용은 RPS(초당 요청 수)와 정비례합니다. 다른 부하 테스트의 경우에는 메모리가 제한 요소입니다. 부하 에이전트에서 구동할 것으로 예상할 수 있는 RPS는 많은 요인에 따라 결정됩니다. 이러한 요구 사항은 다음과 같습니다.

  • 사용자 부하

  • 인지 시간

  • 인증 체계

  • 요청 및 응답 크기

  • 응답 시간

  • 응답 유효성 검사 수준

  • 부하 상태의 테스트 유형(웹 테스트 또는 단위 테스트)

인지 시간은 CPU 바인딩된 테스트의 사용자 수를 결정하는 기본 요소입니다. 인지 시간을 2초에서 10초로 변경하면 5배 더 많은 사용자를 시뮬레이션할 수 있지만 생성되는 RPS는 동일합니다. 실제 사용자를 시뮬레이션하는 것이 목표인 경우에는 웹 사이트에서 예상되는 사용자의 동작 방식이 반영된 값으로 인지 시간을 설정하십시오. 인지 시간과 가상 사용자 수를 늘리는 것이 반드시 웹 응용 프로그램에 추가 부담을 주는 것은 아닙니다.

테스트 에이전트는 사용자별 연결 모드를 사용하는 테스트에서 메모리에 의해 바인딩될 수 있습니다. 부하 테스트 실행 설정에서 두 가지 연결 모드를 구성할 수 있습니다. 연결 풀 모드(기본값)에서는 연결이 풀링되지만 활성화할 때 각 사용자가 두 연결을 그대로 사용합니다. 이 모드에서는 모든 가상 사용자가 연결 풀을 통해 멀티플렉싱됩니다. 따라서 1000명의 활성 가상 사용자가 100개의 연결을 공유할 수 있습니다. 사용자별 연결 모드에서는 각 사용자가 서버에 대해 열려 있는 두 개의 실제 연결로 구성된 하나의 연결을 사용합니다.

웹 테스트에서 3~5초의 인지 시간으로 일반 ASP.NET 응용 프로그램에 대해 부하 테스트를 실행하는 경우 2GHz CPU와 1GB RAM(권장 구성)을 가진 단일 프로세서 테스트 에이전트에서 약 1000명의 사용자를 시뮬레이션할 수 있습니다. 지원되는 사용자 수는 인지 시간과 함수 관계를 이룹니다. 즉, 인지 시간이 길수록 더 많은 사용자를 지원할 수 있습니다.

Visual Studio Premium을 실행하는 서버는 네트워크에 안정적으로 연결되어야 합니다(최소 대역폭: 1Mbps, 최대 대기 시간: 350밀리초). 테스트 에이전트와 테스트 컨트롤러 사이에는 방화벽이 없어야 합니다. 테스트 성능이 기대치 이하인 경우에는 하드웨어 구성을 업그레이드하는 것이 좋습니다.

SQL 크기 조정 고려 사항

기본적으로 SQL Express는 컨트롤러에 설치되며 컨트롤러에서 부하 테스트 결과에 대한 기본 SQL 저장소로 사용됩니다. SQL Express 데이터베이스는 10GB의 데이터를 저장하도록 라이선스가 제한되어 있습니다. 이는 일반적인 부하 테스트의 경우 약 24시간 정도의 부하 테스트 데이터입니다. 부하 테스트 데이터에 필요한 공간은 테스트에 따라 크게 달라집니다.

부하 테스트 중에 각 컴퓨터에서 각 카운터 인스턴스에 대한 샘플이 수집됩니다. 따라서 데이터베이스에서 필요한 공간의 크기는 수집된 카운터의 수, 테스트에 포함된 컴퓨터의 수 및 사용된 샘플의 수와 같이 샘플링 주기별로 제어되는 요소에 따라 달라집니다.

부하 테스트의 실행 설정에서 타이밍 정보를 수집할 수 있습니다. 이렇게 하면 가상 사용자 동작 차트가 활성화됩니다. 자세한 가상 사용자 로그도 수집할 수 있습니다.

부하 테스트 실행에서 하나 이상의 진단 데이터 어댑터를 사용하여 정보를 수집하거나 테스트 컴퓨터에 영향을 줄 수 있습니다. 이러한 어댑터는 실행의 테스트 설정에 구성됩니다. 또한 이러한 어댑터의 데이터는 SQL Express에 저장되고 진단 데이터 어댑터에 따라 공간이 많이 필요할 수 있습니다.

가능하면 별도의 데이터베이스를 사용하여 부하 테스트 데이터를 저장하는 것이 좋습니다. 데이터베이스는 테스트 컨트롤러 컴퓨터 또는 다른 컴퓨터에 저장될 수 있습니다. 데이터 저장소를 변경하려면 .sql 파일에 포함된 SQL 명령을 부하 테스트 결과 저장소에 사용할 SQL 서버 인스턴스로 전송합니다. 이렇게 하려면 두 가지 방법을 사용할 수 있습니다. 첫 번째 방법은 명령 프롬프트에서 sqlcmd 명령을 사용하고 원하는 데이터베이스에 연결하는 데 필요한 옵션을 지정하는 것입니다. loadtestresultsrepository.sql에 대한 경로를 지정하려면 –i 옵션을 사용합니다. 두 번째 방법은 쿼리 분석기와 같이 SQL에 대한 GUI 인터페이스 중 하나를 사용하여 .sql 파일을 열고 연결을 전송하는 것입니다.

참고 항목

작업

[사용되지 않음] 방법: 테스트 설정에 지정된 Test Controller 및 Test Agent를 사용하여 부하 테스트 실행

연습: 부하 테스트에서 테스트 컨트롤러 및 테스트 에이전트 사용

개념

부하 테스트에 대한 테스트 컨트롤러 및 테스트 에이전트 구성

테스트 에이전트 및 테스트 컨트롤러 설치 및 구성

테스트를 실행하거나 데이터를 수집할 테스트 컴퓨터 설정

테스트 설정을 사용하여 컴퓨터 설정 및 진단 정보 수집

부하 테스트에 대한 테스트 컨트롤러 및 테스트 에이전트 구성

기타 리소스

Test Controller 및 테스트 에이전트를 사용하여 여러 테스트 컴퓨터로 부하 테스트 실행 분산

Visual Studio 테스트를 위한 테스트 설정 지정