• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'웹 성능'에 해당되는 글 1건

  • 2007.06.14 Visual Studio 2005로 로드런너 흉내내기 ( 웹 부하테스트 하기 )

Visual Studio 2005로 로드런너 흉내내기 ( 웹 부하테스트 하기 )

기술자료/.NET 2007. 6. 14. 11:23

MOSS 프로젝트를 하다보니, 역시 웹기반이여서 웹 기반 부하테스트를 할 기회가 생겼다.
얼씨구나 한 것 까지는 좋았는데, 이게 생각보다 큰 비용을 지불하는 고급 기능이였다.
어느 정도 고급인지는 알길은 없지만, 개인적인 범위나 간단한 테스트용도로는 쓸만하다고 판단된다.

쓰는 방법은 아래와 같다.

구성 준비

Visual Studio의 제품 별로 다르지만, 제품 군 중에, Visual Studio 2005 Team System(이하 VSTS) 제품에만 “팀 개발자 및 테스터 도구”을 설치할 수 있다. 그러므로 VSTS를 설치할 수 있으며, 또한 “팀 개발자 및 테스트 도구” 부분을 설치해주어야 한다

사용자 삽입 이미지


Visual Studio Test 프로젝트 시작

Visual Studio 을 실행 한 뒤에 “새로 만들기” -> “프로젝트” 를 한다.

사용자 삽입 이미지


프로젝트 종류 에서 “Visual C#” -> “테스트” -> “테스트 프로젝트”를 선택 한 뒤 , 이름에 적절한 이름을 넣고 확인을 클릭한다.

사용자 삽입 이미지


웹 테스트를 위한 스크립트 작성

만들어진 프로젝트에서 오른쪽 마우스 클릭해서 나오는 Context 메뉴에서 “추가” -> “웹 테스트”를 선택한다.

사용자 삽입 이미지


스크립트 생성을 위한 웹브라우징 하기.
자동으로 Internet Explore가 뜨는데, 여기서 시나리오 대로 웹 브라우징을 한다. 브라우징을 시작하면 왼편의 웹 테스트 레코더에 이동한 경로에 대한 사항들이 저장된다. 브라우징이 완료되면 중지를 클릭한다.
사용자 삽입 이미지
사용자 삽입 이미지




















스크립트 생성

캡처 한 스크립트에 대한 접속 스크립트 소스를 생성해야 한다. 코드 생성 방법은 .webtest 파일을 선택한 뒤에 왼편 창에서 나오는 상위 메뉴 중 코드 생성을 선택한다.

생성이 완료되면 해당 cs 파일이 생성이 되는데 이 cs 파일을 열면 테스트를 위한 전체 진행 프로그램이 자동 생성되었음을 확인할 수 있다.

사용자 삽입 이미지


스크립트 소스 수정

코드 내에 수정할 필요가 있는 사항들을 수정한다.
코드 자체를 이해할 수 있다면 최소한 각 시나리오 별로 스크립트를 나누어 추가 스크립트 구성도 가능하고 제작도 가능하다. 이 중 다른 부분은 제외하더라도, 굵게 표시한 ThinkTime 정도의 값의 수정이 필요하다. 각 Action 별로 지연시간을 의미하는데, 테스트의 중요한 요소 이므로 적절한 값으로 대체하여 구성한다

* Think Time

응답을 받은 직후부터 그 다음 번 호출을 날릴 때까지 사용자가 대기하는 시간을 의미한다
사용자 삽입 이미지



public override IEnumerator<WebTestRequest> GetRequestEnumerator()

{

   WebTestRequest request1 = new WebTestRequest("http://tsquare.netswork.co.kr/");

  request1.ThinkTime = 8;

  ExtractHiddenFields rule1 = new ExtractHiddenFields();

  rule1.ContextParameterName = "1";

  request1.ExtractValues += new EventHandler<ExtractionEventArgs>(rule1.Extract);

  yield return request1;

 

WebTestRequest request2 = new WebTestRequest("http://tsquare.netswork.co.kr/_layouts/TLogin.aspx");

request2.Method = "POST";

request2.QueryStringParameters.Add("ReturnUrl", "%2f_layouts%2fAuthenticate.aspx%3fSource%3d%252f", false, false);

request2.QueryStringParameters.Add("Source", "%2f", false, false);

FormPostHttpBody request2Body = new FormPostHttpBody();

request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());

request2Body.FormPostParameters.Add("AccountID", "test001");

request2Body.FormPostParameters.Add("password", "test001");

request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());

request2Body.FormPostParameters.Add("login.x", "40");

request2Body.FormPostParameters.Add("login.y", "40");

request2.Body = request2Body;

ExtractHiddenFields rule2 = new ExtractHiddenFields();

rule2.ContextParameterName = "1";

request2.ExtractValues += new EventHandler<ExtractionEventArgs>(rule2.Extract);

yield return request2;

 

              [ 이하 생략 ]

 



부하테스트 설정
코드 정리가 되면 부하 테스트를 위한 준비를 시작한다. 프로젝트 위에서 마우스 오른쪽 버튼을 클릭하여 “추가” -> “부하 테스트” 를 선택하여 부하테스트 제작 마법사를 띄운다.
사용자 삽입 이미지


사용자 삽입 이미지


패턴에 단계 부하에서 단계적으로 몇 명에 해당하는 부하를 넣을지를 판단하여 채운다.

사용자 삽입 이미지


부하테스트를 위한 테스트를 추가한다.

사용자 삽입 이미지


사용자 삽입 이미지


클라이언트 예상 브라우저를 선택한다. 만일 다양한 버전의 브라우저를 사용하는 환경에 대한 테스트라면 그 브라우저 사용 비율에 맞추어 추가한다
사용자 삽입 이미지


클라이언트와 서버 사이의 네트워크 매체를 설정한다.

일반적인 인트라넷은 LAN으로 하면 되고, 익스트라넷 또는 인터넷 환경이면 그에 맞는 유형과 비율을 설정한다.

사용자 삽입 이미지


부하테스트를 모니터링 할 대상을 설정한다. 그러나 AD 환경과 같이 모든 컴퓨터에 바로 접속할 수 있는 환경이 아닌 경우 타 시스템의 정보를 확인하는 작업은 제대로 진행되지 않는다. 차라리 대상 서버에서 직접 성능 MMC(제어판->를 이용하는 것이 좋다

사용자 삽입 이미지


테스트 실행

확장자가 .loadtest 라는 파일이 생성되는데, 이 파일을 연 뒤에 왼쪽 트리의 최상위에서 마우스 오른쪽 버튼을 클릭해서 “테스트 실행”을 선택한다

사용자 삽입 이미지


리포트 확인

실행을 하면 자동적으로 결과 리포트를 띄워주는데, 기본적으로 그래프를 제공하고 해당 로그 내용을 표나 요약등으로 확인할 수 있다.

사용자 삽입 이미지


728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

MOSS 2007 java me2dayzm 친구 Visual Studio Buscuit 수 것 좀 Azure 지름신 Tutorial 매뉴얼 인터파크 Google Apps Engine moss 비스킷 e-book WSS 협업 twi2me me2sms windows SharePoint 블로그 오류 불만 개발환경 2010 me2photo

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바