다음을 통해 공유


부하 테스트에서 네트워크 에뮬레이션 문제 해결

이 항목의 문제 해결 정보는 부하 테스트 기능이 있는 Microsoft Visual Studio 2010 Ultimate에서 LAN(Local Area Network) 이외의 네트워크 형식을 사용하여 부하 테스트를 실행하기 위한 네트워크 에뮬레이션에 적용됩니다. 네트워크 조합 편집 대화 상자에서 부하 테스트 시 다음 네트워크 형식을 사용하도록 구성할 수 있습니다.

  • LAN(기본값으로, 이 문제 해결 항목에는 적용되지 않음)

  • 3G

  • Cable-DSL-1.5Mbps

  • Cable-DSL-768k

  • Cable/DSL-384k

  • CDMA

  • 전화 접속 56k

  • 대륙 간 저속 WAN 300Kbps

  • 대륙 간 WAN 1.5Mbps

  • 대륙 내 WAN 1.5Mbps

자세한 내용은 다음을 참조하십시오. 방법: 새 부하 테스트 마법사에서 네트워크 조합 만들기부하 테스트 시나리오의 가상 네트워크 형식 지정.

진정한 네트워크 에뮬레이션

Microsoft Visual Studio 2010은 부하 테스트를 비롯한 모든 테스트 형식에 소프트웨어 기반의 진정한 네트워크 에뮬레이션을 사용합니다. 진정한 네트워크 에뮬레이션은 네트워크 패킷을 직접 조작하여 네트워크 조건을 시뮬레이션합니다. 진정한 네트워크 에뮬레이터는 이더넷과 같은 안정적인 물리적 링크를 사용하여 유선 및 무선 네트워크 모두의 동작을 에뮬레이트할 수 있습니다. 다음과 같은 네트워크 특성이 진정한 네트워크 에뮬레이션에 통합되어 있습니다.

  • 네트워크 왕복 시간(대기 시간)

  • 사용 가능한 대역폭 양

  • 큐 동작

  • 패킷 손실

  • 패킷 순서 바꾸기

  • 오류 전파

진정한 네트워크 에뮬레이션은 IP 주소 또는 프로토콜(예: TCP, UDP, ICMP) 기반의 네트워크 패킷을 유연하게 필터링할 수도 있습니다.

진정한 네트워크 에뮬레이션은 네트워크 기반 개발자 및 테스터가 원하는 테스트 환경을 에뮬레이트하거나, 성능을 평가하거나, 변경 효과를 예측하거나, 기술 최적화에 대한 결정을 내릴 때 사용할 수 있습니다. 하드웨어 테스트 베드와 비교했을 때 진정한 네트워크 에뮬레이션은 훨씬 비용이 적게 들고 유연한 솔루션입니다.

부하 테스트 시 네트워크 에뮬레이션의 작동 방식

부하 테스트에 네트워크 에뮬레이션을 사용하려면 Microsoft Visual Studio 2010 Ultimate을 설치해야 합니다. 네트워크 에뮬레이션은 네트워크 조합 편집 대화 상자를 사용하여 구성합니다. 이 대화 상자는 부하 테스트 새로 만들기 마법사를 사용하거나 부하 테스트의 기존 시나리오를 마우스 오른쪽 단추로 클릭하고 네트워크 조합 편집을 클릭할 때 표시됩니다.

부하 테스트를 시작하면 네트워크 조합의 선택한 각 네트워크 프로필(예: DSL 및 56.K 모뎀)에 사용 가능한 포트 범위가 할당됩니다. 이 포트 범위는 런타임에 사용하도록 설정된 네트워크 에뮬레이션 드라이버에 사용할 수 있습니다. 기본적으로는 네트워크 에뮬레이션 드라이버를 사용하지 않도록 설정되어 있습니다.

부하 테스트 중 부하 생성기는 테스트 대상 응용 프로그램에 요청을 보낼 때 이 포트 범위 내에서 포트를 지정합니다. 네트워크 에뮬레이션 드라이버는 선택한 포트 범위 내에서 이 포트를 찾은 경우 이 요청이 따라야 하는 네트워크 프로필에 이 포트를 연결할 수 있습니다. 드라이버는 이러한 방법으로 선택한 네트워크 프로필을 충족하도록 소프트웨어의 부하를 조절할 수 있습니다.

네트워크 에뮬레이션의 작동 여부 확인 방법

부하 테스트 시 로그에 다음과 같은 소켓 예외가 기록되는 경우가 종종 있습니다.

"The requested address is not valid in its context xx.xx.xx.xxx:80"

참고

다른 조건으로 인해 이러한 소켓 예외가 발생할 수도 있습니다. 이 경우 부하 테스트가 계속 작동하지만 소켓 예외가 기록될 수 있습니다. 다음 단원은 이 문제를 파악하고 해결하는 데 유용합니다.

네트워크 에뮬레이션 문제 해결 방법

문제를 효율적으로 파악하고 해결하려면 기본 테스트를 완료했는지 확인해야 합니다.

  1. 네트워크를 통해 부하 테스트에 참여하는 모든 컴퓨터에 완전하게 연결할 수 있는지 확인합니다.

  2. 지침을 따르고 테스트 에이전트에 대해 관리자 권한을 사용할 수 있는지 확인하여 네트워크 에뮬레이션을 올바르게 구성했는지 확인합니다.

  3. 방화벽으로 인해 네트워크의 특정 포트나 트래픽이 차단되지 않도록 문제 해결 중에 모든 방화벽을 사용하지 않도록 설정했는지 확인합니다.

    1. TCPView를 실행하고 "빨간색" 강조 표시를 찾아 런타임에 모든 소켓 연결이 실제로 표시되는지 확인합니다.

      Portmon 등의 다른 포트 모니터링 도구를 사용할 수도 있습니다.

  4. 부하 생성기 컴퓨터에 설치된 바이러스 백신 프로그램이 이 소프트웨어를 방해하지 않는지 확인합니다.

  5. 문제의 원인이 네트워크 에뮬레이션 드라이버인지 부하 테스트 구성 요소인지 확인하려면 다음 단계를 수행합니다.

    1. 네트워크 에뮬레이션 드라이버에 문제가 있는지 확인합니다.

      1. 올바르게 구성된 네트워크 에뮬레이션을 사용하여 부하 테스트를 실행합니다. 이 경우 소켓 예외가 발생할 수도 있습니다.

      2. 다른 호스트를 ping하여 네트워크의 속도가 느리거나, 대기 시간이 길거나, 둘 모두에 해당하는지 확인합니다. 지연 값이 선택한 네트워크 프로필과 일치하는지 확인합니다. 대기 시간 값이 선택한 프로필과 일치하면 네트워크 드라이버가 정상적으로 작동하는 것입니다.

      3. 부하 테스트를 실행하고 있는 테스트 에이전트 컴퓨터에서 즐겨찾는 웹 페이지와 같은 외부 호스트에 연결해 봅니다. 이 테스트를 통해 부하 테스트가 실행 중이고 네트워크 드라이버가 사용하도록 설정되어 있을 때 외부 또는 랩 연결에 문제가 없는지 확인할 수 있습니다. 연결이 제대로 되면 네트워크 에뮬레이션 드라이버에는 문제가 없는 것입니다.

  6. 부하 테스트 구성 요소에 문제가 있는지 확인합니다.

    1. 부하 생성기와 동일한 컴퓨터(테스트 에이전트 컴퓨터)에 Sendrequests.exe를 다운로드하여 설치할 수 있습니다. Sendrequests.exe는 네트워크 에뮬레이션 부하 테스트 중에 발생하는 소켓 예외를 해결하기 위한 샘플 프로그램입니다.

      경고

      Sendrequests.exe는 Microsoft에서 지원하는 프로그램이 아닙니다.

      이 샘플 프로그램은 부하 테스트 구성 요소에 사용되는 정확한 소켓 연결 호출 집합을 시뮬레이션합니다. 이 테스트 프로그램에서도 소켓 예외가 표시된다면 부하 테스트 제품은 소켓 예외의 원인이 아닙니다. 소켓 예외는 환경, 컴퓨터, 네트워크 또는 도구 외적인 부분에서 문제가 발생함을 나타내기도 합니다.

      부하 테스트를 다시 실행하기 전에 외부 문제를 먼저 디버깅하십시오.

    2. 이 샘플 프로그램이 제대로 작동하는 경우 다음 그림과 같은 출력이 표시됩니다. 이 경우 환경이 원인이 아니라 부하 테스트 프로그램에서 문제가 발생하고 있을 가능성이 높습니다.

      Sendrequests.exe의 성공 시 출력

      SendRequests 출력

IPSEC는 네트워크 에뮬레이션과 호환되지 않음

IPSEC를 사용하도록 설정하면 네트워크 패킷의 포트가 암호화됩니다. 이 경우 네트워크 에뮬레이션 드라이버는 패킷을 받은 포트가 앞의 부하 테스트 시 네트워크 에뮬레이션의 작동 방식에 설명된 것과 같이 부하 테스트 엔진에 의해 설정된 포트 범위 내에 있는지 확인할 수 없습니다. 네트워크 에뮬레이션이 작동하도록 하려면 IPSEC를 사용하지 않도록 설정해야 합니다.

참고 항목

작업

부하 테스트 문제 해결

방법: 테스트 설정을 사용하여 네트워크 에뮬레이션 구성

방법: 부하 테스트 편집기를 사용하여 네트워크 추가

기타 리소스

부하 테스트 및 웹 성능 테스트 문제 해결

방법: 분산 부하 테스트에 대한 테스트 설정 만들기

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