KR101199485B1 - 클라이언트/서버간 온라인 성능 테스트 방법 및 장치 - Google Patents

클라이언트/서버간 온라인 성능 테스트 방법 및 장치 Download PDF

Info

Publication number
KR101199485B1
KR101199485B1 KR1020090023513A KR20090023513A KR101199485B1 KR 101199485 B1 KR101199485 B1 KR 101199485B1 KR 1020090023513 A KR1020090023513 A KR 1020090023513A KR 20090023513 A KR20090023513 A KR 20090023513A KR 101199485 B1 KR101199485 B1 KR 101199485B1
Authority
KR
South Korea
Prior art keywords
packet
client
server
group
unit
Prior art date
Application number
KR1020090023513A
Other languages
English (en)
Other versions
KR20100062797A (ko
Inventor
김주영
박창준
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US12/490,032 priority Critical patent/US20100138813A1/en
Publication of KR20100062797A publication Critical patent/KR20100062797A/ko
Application granted granted Critical
Publication of KR101199485B1 publication Critical patent/KR101199485B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 부하 테스트를 통한 온라인 게임 서버 애플리케이션(game server application)의 성능 및 안정성을 확보하기 위한 기술로서, 다수의 게임 클라이언트(client)와 서버간의 통신과정을 게임 서버 애플리케이션 단에서 수집하여 재생 또는 재 생성하는 기술에 관한 것이다. 본 발명은 모든 서버 시스템에 패킷 캡쳐 모듈을 설치하여 게임이 시작되어 끝날 때까지의 전 과정을 저장함으로써, 서버 애플리케이션의 안정성을 테스트하기 위한 상황 재현 및 연출에 용이한 환경을 제공한다. 본 발명으로 인해, 게임 서버의 정확한 성능 테스트가 가능하고, 서버 애플리케이션의 문제점을 보다 정확하게 발견해 문제점을 빠른 시간 안에 해결할 수 있다.
게임 서버, 패킷 캡쳐, 클라이언트

Description

클라이언트/서버간 온라인 성능 테스트 방법 및 장치{METHOD AND APPARATUS FOR TESTING ONLINE PERFORMANCE ON CLIENT/SERVER}
본 발명은 다중 사용자용 서버 어플리케이션의 안정성 및 성능을 자동으로 테스트해주는 소프트웨어 테스트 기술에 관한 것으로, 특히 부하 테스트를 통한 온라인 게임 서버 애플리케이션의 성능 및 안정성을 테스트하는데 적합한 온라인 게임 성능 테스트 방법 및 장치에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다.[2006-S-044-03, 멀티코아 CPU 및 MPU기반 크롯플랫폼 게임기술 개발]
임의의 부하를 생성한 뒤 이를 서버에 가하여 서버의 안정성을 테스트하는 연구는 소프트웨어 공학 측면에서 보면 부하 테스트이며, 고부하 상태에서의 서버에 나타나는 이상 현상을 관찰하는 스트레스 테스트의 범주에 해당된다.
실제 클라이언트와 비슷한 역할을 수행하는 가상 클라이언트를 사용하거나 웹 서버의 경우 네트워크 패킷을 캡쳐하여 이를 부하로 사용하여 활용하는 연구가 진행되고 있으며, 최근에는 좀더 실제와 같은 네트워크 환경에서 서버의 안정성을 테스트하기 위하여 가상의 네트워크 회선을 만들어주는 구조를 시뮬레이션 환경에 추가하는 연구가 진행되고 있다.
통상, 클라이언트/서버 기반의 온라인 게임을 개발할 때 온라인 게임 서버 애플리케이션의 안정성 테스트가 중요한 부분을 차지하며, 이를 감안한 클라이언트/서버간 온라인 성능 테스트 기술 개발이 지속적으로 다루어지고 있다.
그 중에서, 패킷을 수집하여 대규모의 부하로 재 생성하는 기술이 다각도로 연구되고 있는데, 기존에는 실제 게임 클라이언트를 이용하는 방식과, 게임 클라이언트 단에서 게임 서버와의 통신 패킷을 수집하여 대량으로 재 생성하는 방식을 취하고 있다.
전자의 방식은 프로그램 상에서 다룰 부분들이 많아 실제 테스트를 적용하는데 고급 기술 인력이 투입되어야 하는 단점이 있으며, 후자의 방식은 주로 웹서버를 테스트하기 위한 목적으로 만들어진 것이 대부분이어서 게임과 같은 인터랙티브한 어플리케이션을 테스트하는데 다소 무리가 따른다.
비록, 게임의 특성을 고려해 만들어진 기술이라 할지라도, 게임 클라이언트 단에서 게임 사용자 한 명의 게임 플레이 패킷을 캡쳐하여 대량으로 재 생성하는 방식을 취해 다양한 게임 사용자의 플레이를 생성해 내는데 한계가 있으며, 대규모 사용자들의 게임 플레이를 그대로 재생해 내는 것은 현실적으로 불가능하다는 문제가 있다.
이에 본 발명은, 다수의 게임 클라이언트와 서버간의 게임 플레이 통신 패킷을 모두 수집하여 게임 서버단에서 모든 게임 클라이언트의 패킷을 캡쳐하여 대규모의 부하를 재생 또는 재 생성함으로써, 서버의 성능 테스트에 필요한 게임 사용자들의 다양한 행동 패턴들을 수집할 수 있는 클라이언트/서버간 온라인 성능 테스트 기술을 마련하고자 한다.
또한 본 발명은, 게임 사용자들의 게임 플레이 재생이 가능하여 서버의 안정성에 문제가 발생한 시점을 반복 연출할 수 있게 함으로써, 서버의 문제점을 보다 효과적으로 발견하여 빠른 시간에 개선할 수 있는 클라이언트/서버간 온라인 성능 테스트 기술을 마련하고자 한다.
본 발명의 과제를 해결하기 위한 일 관점의 일 실시예에 따르면, 네트워크를 통해 서버 그룹에 접속되어 온라인 서비스를 제공받는 클라이언트 그룹과, 상기 네트워크를 통해 상기 클라이언트 그룹에게 온라인 서비스를 제공하며, 상기 클라이언트 그룹과의 통신에 따른 패킷 정보를 캡쳐링하는 서버 그룹과, 상기 캡쳐링된 패킷 정보에 대한 분석, 편집 및 스크립팅을 수행하여 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 통합 관리하는 중앙 관리부와, 상기 중앙 관리부의 스크립팅 결과에 따라 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하 를 재 생성하는 부하 생성부를 포함하는 클라이언트/서버간 온라인 성능 테스트 장치를 제공한다.
본 발명의 과제를 해결하기 위한 일 관점의 다른 실시예에 따르면, 네트워크를 통해 서버 그룹에 접속되어 온라인 서비스를 제공받는 클라이언트 그룹과, 상기 네트워크를 통해 상기 클라이언트 그룹에게 온라인 서비스를 제공하는 서버 그룹과, 상기 클라이언트 그룹과 상기 서버 그룹 간의 통신에 따른 패킷 정보를 캡쳐링하는 패킷 캡쳐부와, 상기 캡쳐링된 패킷 정보에 대한 분석, 편집 및 스크립팅을 수행하여 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 통합 관리하는 중앙 관리부와, 상기 중앙 관리부의 스크립팅 결과에 따라 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하를 재 생성하는 부하 생성부를 포함하는 클라이언트/서버간 온라인 성능 테스트 장치를 제공한다.
본 발명의 과제를 해결하기 위한 다른 관점에 따르면, 클라이언트 그룹과 서버 그룹이 네트워크를 통해 접속되는 클라이언트/서버간 온라인 성능 테스트 방법으로서, 상기 클라이언트 그룹과 서버 그룹 간의 통신에 필요한 패킷 정보의 캡쳐 대상 프로토콜을 설정하는 과정과, 상기 패킷 정보의 캡쳐 대상 포트 및 IP 정보를 설정하는 과정과, 상기 패킷 정보의 캡쳐링을 수행한 후 캡쳐링된 패킷 정보를 저장하는 과정과, 상기 저장된 패킷 정보를 분석 및 편집하는 과정과, 상기 분석 및 편집 과정이 완료되면 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하를 재 생성하는 과정을 포함하는 크랄이언트/서버간 온라인 성능 테스트 방법을 제공한다.
본 발명에 의하면, 모든 장르의 온라인 게임의 성능 및 안정성을 테스트하는데 적용이 가능하며, 테스트에 소요되는 비용과 기간을 단축할 수 있다. 또한, 테스트에 필요한 게임 사용자에 해당하는 가상의 부하를 게임 서버단에서 통신 패킷 캡쳐를 통해 수집하므로 별도의 고도의 작업을 하지 않고 빠른 시간안에 테스트를 수행할 수 있다. 또한, 간단한 조작만으로 사용할 수 있으므로 개발자 뿐만 아니라 시스템 엔지니어 등 시스템 안정성 테스트에 손쉽게 활용될 수 있다.
본 발명은 온라인 게임 서버의 성능 및 안정성 테스트를 위해 게임 서버에서 네트워크 패킷을 캡쳐하는 것을 특징으로 한다. 이 경우, 서버 어플리케이션에 실제보다 더 많은 부하가 걸리는 상황이 발생할 수 있는데, 이를 방지하기 위해 서버와 별도로 패킷 캡쳐를 위한 모듈을 설치하거나 추가적인 부하를 만들어 내지 않는 패킷 캡쳐 방언을 마련할 수 있다.
또한 본 발명은, 부하로 사용할 패킷 데이터의 유효성을 패킷 분석부에서 판단하여 정상적인 게임 플레이에 사용된 패킷들만 서버 성능 테스트에 사용하는 것을 특징으로 한다.
또한 본 발명은, 대규모 사용자용 온라인 게임 서버의 성능 및 안정성을 테스트할 수 있도록 대량의 부하를 재생 혹은 생성하는 구조를 갖는 것을 특징으로 한다. 이를 위해 부하 생성기를 여러 호스트에서 실행하여 성능 및 안정성 테스트 를 진행하는 것을 특징으로 한다.
또한 본 발명은, 게임 서버의 상태를 확인하기 위한 모니터링 수단을 마련하여 게임 서버의 상태를 실시간 모니터링하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 장치에 대한 구성 블록도로서, 클라이언트 그룹(100), 서버 그룹(200), 중앙 관리부(300), 부하 생성부(400), 모니터링부(1), 패킷 데이터베이스(10)를 포함한다.
도 1에 도시한 바와 같이, 클라이언트 그룹(100)은, 예컨대 인터렉티브 애플리케이션(interactive application)을 위한 게임(game) 클라이언트 그룹으로서, 도시 생략된 네트워크(예를 들면, 인터넷)를 통해 서버 그룹(200)에 접속되어 온라인 게임 서비스를 제공받을 수 있다.
서버 그룹(200)은, 예컨대 인터렉티브 애플리케이션을 위한 게임 서버 그룹으로서, 네트워크를 통해 클라이언트 그룹(100)에게 온라인 게임 서비스를 제공할 수 있다.
이러한 서버 그룹(200)은, 각각의 온라인 게임 서비스를 위한 다수의 서버들(204/1~204/N)과, 이러한 서버들(204/1~204/N) 각각에 대응되게 구비되는 패킷 캡쳐부들(202/1~202/N)을 포함한다. 예를 들어, 서버1(204/1)에는 패킷 캡쳐부 1(202/1)이 구비되며, 서버2(204/2)에는 패킷 캡쳐부2(202/2)가 각각 구비될 수 있다.
여기서, 임의의 패킷 캡쳐부, 예컨대 패킷 캡쳐부1(202/1)은, 임의의 클라이언트와 서버간의 통신 과정, 예컨대 클라이언트1(100/1)과 서버1(204/1) 간의 통신 과정을 수집하는 역할을 한다.
구체적으로 패킷 캡쳐부1(202/1)은, 패킷 수집을 위한 대상 프로토콜(예컨대, TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol))을 설정하며, 설정된 대상 프로토콜에 따라 네트워크 정보(예컨대, IP 주소 정보 및 포트 정보)를 설정하고, 설정된 네트워크 정보에 따라 패킷 캡쳐 드라이버를 사용하여 클라이언트1(100/1)과 서버1(204/1) 간의 송수신 패킷을 수집하여 패킷 정보를 캡쳐하는 것을 특징으로 한다.
패킷 데이터베이스(10)는 이와 같이 캡쳐링 되는 패킷 정보를 임시 저장하는 역할을 한다.
모니터링부(1)는 서버 그룹(200)의 현재 상태, 예컨대 서버 그룹(200)에 접속한 클라이언트의 수, 네트워크 사용량, 서버 그룹(200) 내의 각 서버들의 리소스 사용량, 응답 시간 등을 모니터링하고, 모니터링된 결과를 후술하는 중앙 관리부(300)로 전송하는 역할을 한다.
중앙 관리부(300)는 패킷 분석부(302), 패킷 편집부(304), 스크립팅부(306), 결과 저장부(308) 등을 포함하며, 클라이언트/서버간 온라인 성능 테스트 장치의 전반적인 테스트 과정을 통합 관리하는 역할을 한다.
중앙 관리부(300) 내의 패킷 분석부(302)는, 패킷 데이터베이스(10)에 저장된 패킷 정보를 불러와서 해당 패킷 정보에 대한 데이터 유효성 검사를 수행한다. 즉, 패킷 분석부(302)는 해당 패킷이 어떤 종류의 패킷인지, 예를 들어 서버1(204/1)에 접속하기 위한 로그인(log-in) 패킷인지, 위치 변경을 위한 이동 패킷인지 등을 분석할 수 있다. 이러한 유효성 검사 과정을 통해 의미 없는 패킷들은 버려지고, 실제 게임 진행에 필요한 패킷들만 분석 과정에 포함시킬 수 있을 것이다. 이때, 패킷 분석부(302)의 분석 과정에서 각 클라이언트, 예컨대 클라이언트1(100/1)로부터 수집된 패킷에 태그(tag) 정보를 설정할 수 있는데, 이러한 태그 정보에는 패킷 리스트의 고유 ID와, 해당 패킷이 로그인 과정에서 사용된 패킷인지 월드(world) 진입을 위해 사용된 패킷인지에 대한 패킷 정보가 삽입될 수 있다.
패킷 편집부(304)는 패킷 분석부(302)에서 분석된 패킷의 내부 데이터를 편집하는 역할을 한다. 즉, 캡쳐링된 패킷의 데이터 중 일부를 다른 값으로 치환해야 하는 경우, 예를 들어 ID나 패스워드 등의 편집이 필요한 경우에 해당 패킷을 가공하는 역할을 할 수 있다.
스크립팅부(306)는 패킷 편집부(304)의 편집 결과에 따라 클라이언트/서버간 온라인 성능 테스트를 위한 시나리오 스크립트를 작성하는 역할을 한다. 예를 들어, 캡쳐링된 패킷 정보를 그대로 재생한다든지, 수집된 패킷을 대량으로 재 생성하고 사용자 수를 증가시켜 로그인 테스트를 반복하는 등 테스트하고자 하는 항목에 따라 조건문, 반복문, 분기문 등을 사용하여 스크립트를 작성하는 성능 테스트의 일련의 과정을 작성할 수 있다.
결과 저장부(308)는 스크립팅부(306)에서 작성된 시나리오 스크립트 결과를 포함하는 모든 작업 과정을 저장하는 역할을 한다.
한편, 부하 생성부(400)는 클라이언트/서버간 온라인 성능 테스트 시에 실제 클라이언트의 역할을 하는 부하, 즉 가상 클라이언트를 생성하여 서버 그룹(200)에 접속할 수 있게 하는 역할을 한다. 이러한 부하 생성부(400)에는 다수의 생성기들(402/1~402/N)들이 구비될 수 있는데, 이러한 생성기들(402/1~402/N)은 중앙 관리부(300)의 결과 저장부(308)에 저장된 시나리오 스크립트를 수신하고, 수신된 시나리오 스크립트에 따라 가상 클라이언트를 생성하여 서버 그룹(200)에 부하를 가하는 역할을 할 수 있다. 이때, 호스트 시스템의 성능에 따라 생성할 수 있는 부하에 제한이 있으므로, 여러 대의 호스트에 설치하면 더 많은 가상 클라이언트를 생성해 낼 수 있을 것이다.
도 2는 본 발명의 다른 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 장치에 대한 구성 블록도로서, 클라이언트 그룹(100), 서버 그룹(200), 패킷 캡쳐부(202), 중앙 관리부(300), 부하 생성부(400), 모니터링부(1), 패킷 데이터베이스(10)를 포함한다.
도 2의 실시예가 도 1의 실시예와 다른 점은, 패킷 캡쳐부(202)가 서버 그룹(200) 내의 각 서버에 설치되지 않고, 서버 그룹(200)의 앞단에 별도로 설치된다는 점이다. 이 경우, 도 1의 실시예와 비교하여 서버 그룹(200)의 외부에 패킷 캡쳐부(202)가 설치되기 때문에, 서버 그룹(200)의 서비스 부하가 상대적으로 줄어들 수 있을 것이다.
도 2에 도시한 바와 같이, 클라이언트 그룹(100)은, 예컨대 인터렉티브 애플리케이션을 위한 게임 클라이언트 그룹으로서, 도시 생략된 네트워크(예를 들면, 인터넷)를 통해 서버 그룹(200)에 접속되어 온라인 게임 서비스를 제공받을 수 있다.
서버 그룹(200)은, 예컨대 인터렉티브 애플리케이션을 위한 게임 서버 그룹으로서, 네트워크를 통해 클라이언트 그룹(100)에게 온라인 게임 서비스를 제공할 수 있다. 이러한 서버 그룹(200)은, 각각의 온라인 게임 서비스를 위한 다수의 서버들(204/1~204/N)을 포함한다.
패킷 캡쳐부(202)는, 서버 그룹(200)의 전단에 설치되어 임의의 클라이언트와 서버간의 통신 과정, 예컨대 클라이언트1(100/1)과 서버1(204/1) 간의 통신 과정을 수집하는 역할을 한다.
구체적으로 패킷 캡쳐부(202)는, 패킷 수집을 위한 대상 프로토콜(예컨대, TCP 또는 UDP)을 설정하며, 설정된 대상 프로토콜에 따라 네트워크 정보(예컨대, IP 주소 정보 및 포트 정보)를 설정하고, 설정된 네트워크 정보에 따라 패킷 캡쳐 드라이버를 사용하여 클라이언트1(100/1)과 서버1(204/1) 간의 송수신 패킷을 수집하여 패킷 정보를 캡쳐하는 것을 특징으로 한다.
패킷 데이터베이스(10)는 이와 같이 캡쳐링 되는 패킷 정보를 임시 저장하는 역할을 한다.
모니터링부(1)는 서버 그룹(200)의 현재 상태, 예컨대 서버 그룹(200)에 접속한 클라이언트의 수, 네트워크 사용량, 서버 그룹(200) 내의 각 서버들의 리소스 사용량, 응답 시간 등을 모니터링하고, 모니터링된 결과를 후술하는 중앙 관리부(300)로 전송하는 역할을 한다.
중앙 관리부(300)는 패킷 분석부(302), 패킷 편집부(304), 스크립팅부(306), 결과 저장부(308) 등을 포함하며, 클라이언트/서버간 온라인 성능 테스트 장치의 전반적인 테스트 과정을 통합 관리하는 역할을 한다.
중앙 관리부(300) 내의 패킷 분석부(302)는, 패킷 데이터베이스(10)에 저장된 패킷 정보를 불러와서 해당 패킷 정보에 대한 데이터 유효성 검사를 수행한다. 즉, 패킷 분석부(302)는 해당 패킷이 어떤 종류의 패킷인지, 예를 들어 서버1(204/1)에 접속하기 위한 로그인 패킷인지, 위치 변경을 위한 이동 패킷인지 등을 분석할 수 있다. 이러한 유효성 검사 과정을 통해 의미 없는 패킷들은 버려지고, 실제 게임 진행에 필요한 패킷들만 분석 과정에 포함시킬 수 있을 것이다. 이때, 패킷 분석부(302)의 분석 과정에서 각 클라이언트, 예컨대 클라이언트1(100/1)로부터 수집된 패킷에 태그 정보를 설정할 수 있는데, 이러한 태그 정보에는 패킷 리스트의 고유 ID와, 해당 패킷이 로그인 과정에서 사용된 패킷인지 월드 진입을 위해 사용된 패킷인지에 대한 패킷 정보가 삽입될 수 있다.
패킷 편집부(304)는 패킷 분석부(302)에서 분석된 패킷의 내부 데이터를 편집하는 역할을 한다. 즉, 캡쳐링된 패킷의 데이터 중 일부를 다른 값으로 치환해야 하는 경우, 예를 들어 ID나 패스워드 등의 편집이 필요한 경우에 해당 패킷을 가공하는 역할을 할 수 있다.
스크립팅부(306)는 패킷 편집부(304)의 편집 결과에 따라 클라이언트/서버간 온라인 성능 테스트를 위한 시나리오 스크립트를 작성하는 역할을 한다. 예를 들어, 캡쳐링된 패킷 정보를 그대로 재생한다든지, 수집된 패킷을 대량으로 재 생성하고 사용자 수를 증가시켜 로그인 테스트를 반복하는 등 테스트하고자 하는 항목에 따라 조건문, 반복문, 분기문 등을 사용하여 스크립트를 작성하는 성능 테스트의 일련의 과정을 작성할 수 있다.
결과 저장부(308)는 스크립팅부(306)에서 작성된 시나리오 스크립트 결과를 포함하는 모든 작업 과정을 저장하는 역할을 한다.
한편, 부하 생성부(400)는 클라이언트/서버간 온라인 성능 테스트 시에 실제 클라이언트의 역할을 하는 부하, 즉 가상 클라이언트를 생성하여 서버 그룹(200)에 접속할 수 있게 하는 역할을 한다. 이러한 부하 생성부(400)에는 다수의 생성기들(402/1~402/N)들이 구비될 수 있는데, 이러한 생성기들(402/1~402/N)은 중앙 관리부(300)의 결과 저장부(308)에 저장된 시나리오 스크립트를 수신하고, 수신된 시나리오 스크립트에 따라 가상 클라이언트를 생성하여 서버 그룹(200)에 부하를 재 생성하는 역할을 할 수 있다. 이때, 호스트 시스템의 성능에 따라 생성할 수 있는 부하에 제한이 있으므로, 여러 대의 호스트에 설치하면 더 많은 가상 클라이언트를 생성해 낼 수 있을 것이다.
이하, 상술한 구성과 함께, 본 발명의 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 방법, 구체적으로 온라인 게임 서버의 성능 테스트를 위해 패킷을 수집하고 생성해 내는 과정을 순차적으로 나타낸 패킷 캡쳐 및 부하 생성 과정에 대해 첨부한 도 3의 흐름도를 참조하여 상세히 설명하기로 한다.
실시예의 설명에 앞서, 클라이언트/서버간의 온라인 성능 테스트 시 인터렉티브 애플리케이션이 적용되는 온라인 환경을 부각시키고, 실시예를 용이하게 이해하기 위해서는, 클라이언트 그룹(100)은 게임 클라이언트 그룹을 나타내며, 서버 그룹(200)은 게임 서버 그룹을 나타냄을 주지할 필요가 있을 것이다.
또한, 본 실시예의 온라인 성능 테스트 과정에 필요한 패킷 캡쳐부는 도 1에서 설명한 바와 같이 서버 그룹 내의 임의의 서버에 설치될 수 있거나, 또는 도 2에서 설명한 바와 같이 서버 그룹의 전단에 설치될 수 있는데, 도 3의 실시예의 설명에서는 서버 그룹(200)의 서비스 부하가 상대적으로 적은 도 2의 온라인 성능 테스트 장치에 적용된 패킷 캡쳐부(202)를 예시적으로 적용하기로 한다.
도 3에 예시한 바와 같이, 먼저, 서버 그룹(200)의 전단에 설치된 패킷 캡쳐부(202)는, 패킷 수집을 위해 캡쳐 대상 프로토콜을 설정한다(S300). 이때의 대상 프로토콜 설정은, 예컨대 ICMP(Internet Control Message Protocol), IGMP(Internet Group Management Protocol), GGP(Gateway-to-Gateway Protocol) 등 여러 프로토콜 중 클라이언트/서버간의 온라인 환경은 TCP와 UDP가 대부분이므로 TCP나 UDP, 또는 그 둘 모두를 설정할 수 있을 것이다.
이후 패킷 캡쳐부(202)는 캡쳐 대상 포트 및 IP를 설정한다(S302). 서버 그룹(200)에는 대상 클라이언트와 주고 받는 패킷 외에 다른 패킷들도 다수가 송수신 될 수 있으므로, 이러한 패킷들을 일차적으로 걸러내기 위해 대상 포트와 IP를 설정한다.
캡쳐 대상 포트 및 IP 설정이 완료되면, 패킷 캡쳐부(202)는 클라이언트 그 룹(100)과 서버 그룹(200) 간의 통신에 따른 패킷 정보를 수집하여 캡쳐링을 시작한다(S304).
이렇게 캡쳐링 되는 패킷 정보는 원 데이터 그대로 패킷 데이터베이스(10)에 저장된다(S306).
패킷 데이터베이스(10)에 저장된 패킷 정보는 중앙 관리부(300)를 통해 패킷 분석 과정, 패킷 편집 과정, 스크립팅 과정 등의 일련의 과정들을 거치게 된다(S308).
여기서, 패킷 분석 과정은, 패킷 데이터베이스(10)에 저장된 패킷 정보를 불러와서 해당 패킷 정보에 대한 데이터 유효성을 검사하는 과정을 포함한다. 예컨대, 해당 패킷이 어떤 종류의 패킷인지, 예를 들어 서버1(204/1)에 접속하기 위한 로그인 패킷인지, 위치 변경을 위한 이동 패킷인지 등을 분석하는 과정이다. 이러한 유효성 검사 과정을 통해 의미 없는 패킷들은 버려지고, 실제 게임 진행에 필요한 패킷들만 분석 과정에 포함시킬 수 있을 것이다. 이때, 패킷 분석 과정에서 각 클라이언트, 예컨대 클라이언트1(100/1)로부터 수집된 패킷에 태그 정보를 설정할 수 있는데, 이러한 태그 정보에는 패킷 리스트의 고유 ID와, 해당 패킷이 로그인 과정에서 사용된 패킷인지 월드 진입을 위해 사용된 패킷인지에 대한 패킷 정보가 삽입될 수 있다.
패킷 편집 과정은, 패킷 분석 과정에서 분석된 패킷의 내부 데이터를 편집하는 과정을 포함한다. 즉, 캡쳐링된 패킷의 데이터 중 일부를 다른 값으로 치환해야 하는 경우, 예를 들어 ID나 패스워드 등의 편집이 필요한 경우에 해당 패킷을 가공하는 과정을 포함할 수 있다.
스크립팅 과정은, 패킷 편집 과정의 편집 결과에 따라 클라이언트/서버간 온라인 성능 테스트를 위한 시나리오 스크립트를 작성하는 역할을 한다. 예를 들어, 캡쳐링된 패킷 정보를 그대로 재생한다든지, 수집된 패킷을 대량으로 재 생성하고 사용자 수를 증가시켜 로그인 테스트를 반복하는 등 테스트하고자 하는 항목에 따라 조건문, 반복문, 분기문 등을 사용하여 스크립트를 작성하는 성능 테스트의 일련의 과정을 포함할 수 있다.
이후, 이러한 패킷 분석 과정, 패킷 편집 과정, 스크립팅 과정 등의 과정들이 완료되면(S310), 중앙 관리부(300)는 패킷 분석 과정, 패킷 편집 과정, 스크립팅 과정 등에 따른 작업 결과, 예컨대 시나리오 스크립트를 저장하고, 부하 생성부(400)로 작업 결과를 전송한다.
이에 따라 부하 생성부(400)는, 전송된 작업 결과에 대응하는 시나리오에 따라 가상 클라이언트를 생성하고, 서버 그룹(200)에 부하를 재 생성하여 온라인 서비스 환경, 예를 들어 가상 클라이언트의 온라인 게임 플레이가 진행될 수 있도록 한다(S312).
도 4는 부하 생성을 위한 패킷 분석, 패킷 편집, 스크립팅 과정을 예시적으로 나타낸 도면이다.
도 4에 예시한 바와 같이, 패킷 수집 결과 패킷 데이터베이스(10)에 저장된 패킷은 도면부호(400)와 같이 패킷 리스트의 집합으로 이루어져 있다. 이러한 원시 데이터에 고유 아이디를 붙여주고 불필요한 부분을 삭제하는 등의 작업이 패킷 분석부(302)에서 이루어질 수 있다.
또한, 도면부호(402)와 같이, 패킷 분석 과정에서 패킷의 재사용을 위해 패킷을 특성, 즉 로그인을 위한 패킷인지 이동을 위한 패킷인지를 구분하는 태그를 붙이는 작업을 하게 된다. 패킷 분석 과정이 종료된 후에는, 패킷 내부 데이터 편집 과정이 패킷 편집부(304)에서 수행된다. 패킷 편집 과정에서는, 패킷 데이터 중 치환이 필요한 부분의 구조를 정의하고 네이밍(naming)을 한다.
다음, 도면부호(404)는, 테스트 시나리오를 구성하는 스크립팅 과정을 예시한 것으로서, 앞서 정의해 놓은 패킷 정보를 치환하는 등 조건문, 반복문, 분기문을 사용하여 테스트 시나리오를 작성하는 과정을 포함할 수 있다.
이상 설명한 바와 같이, 본 실시예에 따르면, 다수의 클라이언트와 서버간의 통신 패킷을 모두 수집하여 서버 그룹에서 모든 클라이언트의 패킷을 캡쳐하여 대규모의 부하를 재 생성함으로써, 서버의 성능 테스트에 필요한 사용자들의 다양한 행동 패턴들을 수집할 수 있는 클라이언트/서버간 온라인 성능 테스트 기술을 구현한 것이다.
앞서 언급한 실시예는 본 발명을 한정하는 것이 아니라 예증하는 것이며, 이 분야의 당업자라면 첨부한 청구항에 의해 정의된 본 발명의 범위로부터 벗어나는 일 없이, 많은 다른 실시예를 설계할 수 있음을 유념해야 한다. 청구항에서는, 괄호 안에 있는 어떤 참조 기호도 본 발명을 한정하도록 해석되지 않아야 한다. "포함하는", "포함한다" 등의 표현은, 전체적으로 모든 청구항 또는 명세서에 열거된 것을 제외한 구성 요소 또는 단계의 존재를 배제하지 않는다. 구성 요소의 단수의 참조부는 그러한 구성 요소의 복수의 참조부를 배제하지 않으며, 그 반대도 마찬가지이다. 본 발명은, 몇몇 별개의 구성 요소를 포함하는 하드웨어 수단 및 적절히 프로그램된 컴퓨터 수단에 의해 실시될 수 있다. 몇몇 수단을 열거하는 청구항에서, 이들 수단의 몇몇은 하드웨어의 같은 항목에 의해 구현될 수 있다. 서로 다른 종속항에 확실한 수단이 기술되었다고 하는 단순한 사실은, 이러한 수단의 조합이 사용될 수 없다는 것을 나타내지 않는다.
본 발명을 통해, 다양한 종류의 시뮬레이션을 사전에 수행하여 시스템의 안정성을 확보함으로써, 온라인 게이머(gamer)들에게 한단계 업그레이드 된 온라인 게임 서비스 환경을 제공할 뿐만 아니라, 온라인 게임 활성화로 인해 온라인 게임 업체들의 매출 증진에 기여할 것으로 예상된다.
도 1은 본 발명의 일 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 장치에 대한 구성 블록도,
도 2는 본 발명의 다른 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 장치에 대한 구성 블록도,
도 3는 본 발명의 실시예에 따른 클라이언트/서버간 온라인 성능 테스트 과정을 예시한 흐름도,
도 4는 본 발명의 부하 생성을 위한 패킷 분석, 편집, 스크립팅 과정을 예시한 도면.

Claims (10)

  1. 네트워크를 통해 서버 그룹에 접속되어 온라인 서비스를 제공받는 클라이언트 그룹과,
    상기 네트워크를 통해 상기 클라이언트 그룹에게 온라인 서비스를 제공하며, 상기 클라이언트 그룹과의 통신에 따른 패킷 정보를 캡쳐링하는 서버 그룹과,
    상기 캡쳐링된 패킷 정보에 대한 분석, 편집 및 스크립팅을 수행하여 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 통합 관리하는 중앙 관리부와,
    상기 중앙 관리부의 스크립팅 결과에 따라 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하를 재 생성하는 부하 생성부를 포함하되,
    상기 서버 그룹은,
    각각의 온라인 게임 서비스를 위한 다수의 서버들과,
    상기 다수의 서버들의 각각에 대응되게 구비되는 패킷 캡쳐부를 포함하는
    클라이언트/서버간 온라인 성능 테스트 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 패킷 캡쳐부는,
    패킷 수집을 위한 대상 프로토콜을 설정하며, 상기 설정된 대상 프로토콜에 따라 네트워크 정보를 설정하고, 상기 설정된 네트워크 정보에 따라 상기 클라이언트 그룹과 서버 그룹 간의 송수신 패킷을 수집하여 패킷 정보를 캡쳐하는 클라이언트/서버간 온라인 성능 테스트 장치.
  4. 제 1 항에 있어서,
    상기 중앙 관리부는,
    상기 패킷 정보에 대한 데이터 유효성 검사를 수행하는 패킷 분석부와,
    상기 패킷 분석부에서 분석된 패킷의 내부 데이터를 편집하는 패킷 편집부와,
    상기 패킷 편집부의 편집 결과에 따라 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 위한 시나리오 스크립트를 작성하는 스크립팅부와,
    상기 스크립팅부에서 작성된 시나리오 스크립트 결과를 포함하는 작업 과정을 저장하는 결과 저장부
    를 포함하는 클라이언트/서버간 온라인 성능 테스트 장치.
  5. 네트워크를 통해 서버 그룹에 접속되어 온라인 서비스를 제공받는 클라이언트 그룹과,
    상기 네트워크를 통해 상기 클라이언트 그룹에게 온라인 서비스를 제공하는 서버 그룹과,
    상기 클라이언트 그룹과 상기 서버 그룹 간의 통신에 따른 패킷 정보를 캡쳐링하는 패킷 캡쳐부와,
    상기 캡쳐링된 패킷 정보에 대한 분석, 편집 및 스크립팅을 수행하여 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 통합 관리하는 중앙 관리부와,
    상기 중앙 관리부의 스크립팅 결과에 따라 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하를 재 생성하는 부하 생성부
    를 포함하는 클라이언트/서버간 온라인 성능 테스트 장치.
  6. 제 5 항에 있어서,
    상기 패킷 캡쳐부는,
    패킷 수집을 위한 대상 프로토콜을 설정하며, 상기 설정된 대상 프로토콜에 따라 네트워크 정보를 설정하고, 상기 설정된 네트워크 정보에 따라 상기 클라이언트 그룹과 서버 그룹 간의 송수신 패킷을 수집하여 패킷 정보를 캡쳐하는 클라이언 트/서버간 온라인 성능 테스트 장치.
  7. 제 5 항에 있어서,
    상기 중앙 관리부는,
    상기 패킷 정보에 대한 데이터 유효성 검사를 수행하는 패킷 분석부와,
    상기 패킷 분석부에서 분석된 패킷의 내부 데이터를 편집하는 패킷 편집부와,
    상기 패킷 편집부의 편집 결과에 따라 상기 클라이언트 그룹과 서버 그룹 간의 온라인 성능 테스트를 위한 시나리오 스크립트를 작성하는 스크립팅부와,
    상기 스크립팅부에서 작성된 시나리오 스크립트 결과를 포함하는 작업 과정을 저장하는 결과 저장부
    를 포함하는 클라이언트/서버간 온라인 성능 테스트 장치.
  8. 제 7 항에 있어서,
    상기 패킷 분석부는, 상기 클라이언트 그룹으부터 수집된 패킷에 태그 정보를 설정하는 클라이언트/서버간 온라인 성능 테스트 장치.
  9. 제 7 항에 있어서,
    상기 스크립팅부는, 테스트하고자 하는 항목에 따라 조건문, 반복문, 분기문을 각각 사용하여 스크립트를 작성하는 클라이언트/서버간 온라인 성능 테스트 장치.
  10. 클라이언트 그룹과 서버 그룹이 네트워크를 통해 접속되는 클라이언트/서버간 온라인 성능 테스트 방법으로서,
    상기 클라이언트 그룹과 서버 그룹 간의 통신에 필요한 패킷 정보의 캡쳐 대상 프로토콜을 설정하는 과정과,
    상기 패킷 정보의 캡쳐 대상 포트 및 IP 정보를 설정하는 과정과,
    상기 패킷 정보의 캡쳐링을 수행한 후 캡쳐링된 패킷 정보를 저장하는 과정과,
    상기 저장된 패킷 정보를 분석 및 편집하는 과정과,
    상기 분석 및 편집 과정이 완료되면 가상 클라이언트를 생성하여 상기 서버 그룹으로 부하를 재 생성하는 과정
    을 포함하는 클라이언트/서버간 온라인 성능 테스트 방법.
KR1020090023513A 2008-12-01 2009-03-19 클라이언트/서버간 온라인 성능 테스트 방법 및 장치 KR101199485B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/490,032 US20100138813A1 (en) 2008-12-01 2009-06-23 Method and apparatus for testing online performance on client/server architecture

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080120800 2008-12-01
KR1020080120800 2008-12-01

Publications (2)

Publication Number Publication Date
KR20100062797A KR20100062797A (ko) 2010-06-10
KR101199485B1 true KR101199485B1 (ko) 2012-11-09

Family

ID=42363004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090023513A KR101199485B1 (ko) 2008-12-01 2009-03-19 클라이언트/서버간 온라인 성능 테스트 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101199485B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150035151A (ko) 2013-09-27 2015-04-06 에스케이플래닛 주식회사 애플리케이션 성능 테스트를 위한 시스템, 단말장치, 검증장치, 방법 및 컴퓨터로 판독 가능한 기록 매체
US10212036B2 (en) 2014-12-29 2019-02-19 Lg Cns Co., Ltd. Performance testing method, performance testing apparatus performing the same and storage medium storing the same
US11436125B2 (en) 2017-08-16 2022-09-06 Netmarble Corporation Game test automation device and method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138302B1 (ko) * 2011-08-26 2012-04-25 주식회사 쏘그웨어 온라인 게임 서버-테스트 통합 장치
KR20140115602A (ko) * 2013-03-21 2014-10-01 주식회사 퓨전소프트 Sns 서버의 프로토콜 분석 방법
KR101498700B1 (ko) * 2013-09-23 2015-03-06 주식회사 플로우시스 가상화시스템 환경에서의 스토리지 성능 테스팅장치
KR101978403B1 (ko) * 2019-01-28 2019-05-14 넷마블 주식회사 부하 발생 장치, 이의 동작 방법, 및 이를 포함하는 성능 테스트 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150035151A (ko) 2013-09-27 2015-04-06 에스케이플래닛 주식회사 애플리케이션 성능 테스트를 위한 시스템, 단말장치, 검증장치, 방법 및 컴퓨터로 판독 가능한 기록 매체
US10212036B2 (en) 2014-12-29 2019-02-19 Lg Cns Co., Ltd. Performance testing method, performance testing apparatus performing the same and storage medium storing the same
US11436125B2 (en) 2017-08-16 2022-09-06 Netmarble Corporation Game test automation device and method

Also Published As

Publication number Publication date
KR20100062797A (ko) 2010-06-10

Similar Documents

Publication Publication Date Title
KR100962532B1 (ko) 부하 테스트를 위한 패킷의 부하 재생성 시스템 및 그 방법
KR101199485B1 (ko) 클라이언트/서버간 온라인 성능 테스트 방법 및 장치
KR101269671B1 (ko) 게임 테스트를 위한 게임 문법 기반의 패킷 캡쳐 분석 장치 및 그 방법
US20100138813A1 (en) Method and apparatus for testing online performance on client/server architecture
Barse et al. Synthesizing test data for fraud detection systems
US7099797B1 (en) System and method of testing software and hardware in a reconfigurable instrumented network
US7376550B1 (en) Simulation of network traffic using non-deterministic user behavior models
US9465718B2 (en) Filter generation for load testing managed environments
US8291068B2 (en) Automatic protocol detection
KR101196522B1 (ko) 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법
WO2009002997A2 (en) System and method for distributed software testing
CN108923999A (zh) 一种网游服务器性能自动化测试方法及系统
CN106559289A (zh) Sslvpn网关的并发测试方法及装置
CN112860569A (zh) 一种自动化测试方法、装置、电子设备和存储介质
Dhiman et al. Performance testing: a comparative study and analysis of web service testing tools
KR20130026919A (ko) 분산 테스트 시스템 및 방법, 분산 테스트 관제 시스템 및 방법, 분산 테스트 플랜 작성 장치 및 방법, 분산 테스트 에이전트 및 분산 테스트 플랜 실행 방법
Bahga et al. Performance evaluation approach for multi-tier cloud applications
US8556725B2 (en) Scenario-based load testing apparatus and method
Cho et al. Scenario-based approach for blackbox load testing of online game servers
KR100811468B1 (ko) 부하 테스트를 통한 서버 애플리케이션 안정성 검증 시스템및 방법
CN114564387A (zh) 一种针对OpenStack云平台的场景式自动化测试方法及系统
CN102761453B (zh) 一种测试客户端可用性的方法及客户端
KR20130017386A (ko) 게임 서버의 안정성 테스트 방법 및 장치
KR101138302B1 (ko) 온라인 게임 서버-테스트 통합 장치
CN111600959B (zh) 一种内网客户端的测试数据生成方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 8