2008년 1월 21일 월요일

Web Application Strees Tool

성능테스트

일반적으로 동일 PC에서 Web Browser를 2개 띄워 놓고 동일 Web Sites에 대해서 부하를 생성한다고 해도 각기 Browser는 각기 다른 Windows Socket을 통해서 상대방과 독립적으로 연결하고(Independent), 작업이 완료되면 연결을 해체하며(Connectionless), 각각 수행된 작업 상황은 저장되지 않는(Stateless) 특성을 가지고 있다.

 
 

1. Web Application Stress Tool

Microsoft사의 Web Application Stress Tool은 자사의 Windows NT(Windows 2000 포함) 계열의 Web Server 즉 Windows NT/IIS(Internet Information Server)/ASP/Site Server/Exchange Server 등을 사용해서 구축한 System에 대해서 Capacity Planning을 세우고 성능 테스트를 수행할 수 있도록 제작한 프로그램이다.

 
 

그러나 Web Browser가 Microsoft사의 Internet Explorer로 거의 표준화 된 지금 상황에 비추어 본다면, Web 기반 System에 대한 성능 테스트를 수행할 때 Server와 Client 사이에 복잡한 Correlation 처리가 발생하지 않는다면 이 Stress Tool을 사용을 고려해 볼 필요성이 있다.

 
 

특히 Server가 Windows 계열이 아닌 Unix/Solaris로 구성된 Web Server에도 특수한 Control이나 Component를 사용하지 않는다면 Stress의 생성이 가능하며, ASP 계열이 아닌 JAVA, JSP, PHP 등으로 만든 Web Server에도 Stress를 생성할 수 있다.

 
 

Microsoft에서 권고하는 Web Application Stress Tool을 사용하면, 실제로 많은 동시 사용자가 Web Browser에서 Web Server에 Request를 요청한 것과 유사한 부하를 생성할 수 있지만, 반면 Xecureweb(Java Script)을 사용한 인증, VeriSign(XML)을 사용한 인증, LDAP 인증 등을 제대로 통과하지 못하는 단점이 있다. 특히 Session Tracking 기법을 사용하는 시스템의 경우 접속 시 받은 Session이 Expired되기 전까지는 Error나 Transaction Fail없이 잘 사용할 수 있으나 이미 발급된 Session이 일정 시간이 지나면 저절로 Expired되기 때문에 제대로 부하를 생성할 수 없게 된다.

 
 

따라서 Session 관련 Correlation을 처리하지 못하기 때문에 인증 관련 특별한 처리를 해야 하는 경우 해당 Tool을 올바르게 적용하지 못할 가능성이 큰 문제점이 있으므로 해당 Tool을 사용해서 성능 테스트가 가능한지 Tool의 적합성을 검증하는 작업이 선행되어야 한다.


2. 기능적 특징

 
 


[그림] Windows Service 중 Web Tool Service를 선택한 화면.

 
 

Microsoft사의 Web Application Stress Tool은 Web Cat라고도 하는데 Microsoft사의 Homepage 에서 Download 받아 사용할 수 있는 등 Freeware와 유사하게 사용할 수 있다. 본 프로그램은 Windows NT, Windows 2000 Professional/Server, XP 등에서만 설치 및 실행이 가능한데(Windows 98/Se/ME에서는 설치 및 실행 불가) 많은 Stress를 생성하기 위해서는 부하를 생성하는 Client PC의 SPEC 및 Resource 사양이 높을수록 좋다. CPU Pentium III 500MHz이상, RAM 128MB 이상, HDD 300MB 이상의 Free Space 확보가 필요하다.

 
 

Windows NT 기반의 PC에 Web Application Stress Tool을 설치하고 나면 윈도우 – 시작 – 프로그램 – Microsoft Web Stress Application Tool 폴더에 Microsoft Web Stress Application Tool란 단축 아이콘이 생성된다. 더불어 Windows Service에 Web Tool이라는 개체가 등록되고 WEB Tool Service가 실행되는 여러 PC를 동시에 Load Generator로 사용할 수 있게 된다.

 
 

Web Application Stress Tool이 가진 기능적인 특징을 요약하면 다음과 같다.

 
 

해당 프로그램에 URL Tracking 기능을 포함하고 있는데, Stress 생성을 위해서는 어떤 URL에 대한 Request를 보낼 것인지, 그 URL 목록을 수동으로 만들 필요가 없다. 즉 Web Browser 상에서 작업을 수행하면 그 내용 대로 자동으로 Script가 생성되며 이를 사용해서 쉽게 Stress를 생성할 수 있다.

 
 

Stress 생성 시 Delay Time이나 Cookie 사용을 Recording할 수 있는데, Delay Time을 기록하지 않을 경우 Load Runner 사용 시 Think Time을 주지 않은 것과 같은 설정으로 Stress를 생성할 수 있는 것을 의미하고, Cookie를 Recording하지 않을 경우 설정한 Script를 수행할 때 사용자마다 자동으로 Cookie를 얻어 오게 된다.

 
 

각 사용자의 네트워크 대역폭(Bandwidth)을 설정하여 테스트할 수 있다. 지금은 잘 사용하지 않지만, Clients가 Modem 등의 저속 통신 장비를 사용한다면 각 사용자의 최대 네트워크 대역폭을 지정해서 보다 유사한 Client 환경을 Simulation해서 성능 테스트를 수행할 수 있다.

 
 

해당 프로그램이 Access DB를 내부적으로 사용하는데, 성능 테스트 수행 완료 후 성능 결과에 대한 요약 정보를 자동으로 생성해 준다.

응답 시간에 대한 모니터링 기능이 있는데 Server가 Windows NT 계열일 경우 성능 모니터에 기록되지 않는 사항 즉 Virtual User가 투입된 Percentage 비율별(25%, 50%, 75%, Min, Average, Max)로 성능 측정 지표들에 대한 결과를 얻을 수 있다.

 
 

3. Tool 메뉴 설명

 
 

해당 Tool은 크게 부하 생성용 Script를 수동 혹은 자동으로 입력하고 Method, Group, Delay Time을 지정할 수 있는 메인 메뉴 화면과 메인 메뉴에서 한 항목을 더블 클릭할 경우 세부 내역이 나타나는 화면 및 트리 구조에서 있는 각 항목을 선택한 화면으로 구성되어 있다.

 
 

특히 메인 메뉴 화면에서 원하는 대상에 대해 부하를 생성하는 Script를 기록한 후 특정 Object를 더블클릭하면 하나의 Object를 Server로부터 Clients가 받는 Action을 보다 상세하게 입력할 수 있는데, 이 메뉴를 잘 활용하면 보안 인증 통과, Query 조건, Data Pool 등을 처리할 수 있으므로 복잡한 업무, 특수한 기능 등을 사용할 수 있다.
 

[그림] Web Application Stress Tool의 Main 화면.

 
 


[그림] 메인 메뉴에서 한 항목을 더블 클릭할 경우 세부 내역이 나타나는 화면.

 
 

그밖에 각각 Content Tree/Setting/Perf Counters/Page Groups/Users/Clients/Cookies 메뉴 클릭 시 나타나는 화면 등으로 구성되어 있으며 각 화면에서 수행 가능한 역할은 다음과 같다.

 
 

● Content Tree : Web Service 상에서 Service하는 Components를 Directory와 File 그대로 얻을 수 있다면, 해당 Clients에서 해당 Directory를 Web Service의 Virtual Root Directory로 지정하여 수동으로 부하 생성 Script를 추가할 수 있다.

즉 Web Browser 상에서 실제로 목표 Site에 접속하지 않아도 Web Service를 하는 Directory 구조와 File을 받으면 이 내용을 Clients에 담고 부하 생성용 Script를 보다 Customizing 하여 생성할 수 있다.

 
[그림] Content Tree 메뉴에서 원하는 디렉터리와 파일을 선택하여 Apply 버튼 클릭.

 
[그림] 해당 작업 후 메인 메뉴에 지정한 파일이 등록된 화면.

 
 

● Setting : 부하 생성을 위한 설정을 지정한다.

 
 

● Perf Counters : 모니터링 대상 서버가 Windows NT 계열일 경우 해당 프로그램이 Windows의 Performance Monitor에 있는 Counter를 통해 Server 정보를 불러올 수 있다. 단 부하를 생성하는 PC에서 접속한 계정이 모니터링 대상 서버의 관리자(Administrators) 권한을 가지고 있어야 한다.

 
 

● Page Groups : Script 작성 중 각 페이지 그룹 명을 지정했다면 그룹 명별로 부하 생성 분포 비중을 조정할 수 있다. 즉 Login, menu1, menu2, menu3, logout 그룹별로 작업 그룹을 설정했다면 각각 부하 분산 비중을 30%, 10%, 20%, 10%,  30%와 같이 나눌 수 있다.

 
 

● Users : 부하 생성 시 사용할 사용자 ID와 Password를 지정할 수 있는 곳으로 이 곳에서 지정한 사용자 ID와 Password를 사용하기 위해서는 Script가 기록된 본문 안에 %USERNAME%, %PASSWORD가 올바르게 기록되어 있어야 한다.

 
 

● Clients : Virtual User Generator를 설정할 수 있다. PC 한 대를 사용할 경우에는 특별히 설정을 맞출 필요가 없지만 여러 대의 PC를 Virtual User Generator로 사용하기 위해서는 각 PC에 Web Application Stress Tool을 설치하고 Windows Service에 Web Tool이라는 개체가 등록되어 실행되고 있어야 한다.

 
 

● Cookies : 지정한 각 사용자 별로 사용하는 Cookie 값이 나타나는 곳으로 Recording 시 Record Browser Cookies를 선택했다면 최초 Recording 시 기록된 Data를 계속 사용하게 되고 해당 옵션을 선택하지 않았다면 Server에 접속 시 매번 새로운 Cookie 값이 새롭게 저장된다

댓글 없음:

댓글 쓰기