KR101196522B1 - 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 - Google Patents

스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 Download PDF

Info

Publication number
KR101196522B1
KR101196522B1 KR1020100108634A KR20100108634A KR101196522B1 KR 101196522 B1 KR101196522 B1 KR 101196522B1 KR 1020100108634 A KR1020100108634 A KR 1020100108634A KR 20100108634 A KR20100108634 A KR 20100108634A KR 101196522 B1 KR101196522 B1 KR 101196522B1
Authority
KR
South Korea
Prior art keywords
script
game server
online game
stress test
packet
Prior art date
Application number
KR1020100108634A
Other languages
English (en)
Other versions
KR20120047013A (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 KR1020100108634A priority Critical patent/KR101196522B1/ko
Publication of KR20120047013A publication Critical patent/KR20120047013A/ko
Application granted granted Critical
Publication of KR101196522B1 publication Critical patent/KR101196522B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법에 관한 것으로, 온라인 게임 서버로부터 캡쳐한 패킷을 이용하여 자동으로 테스트 스크립트를 생성하고, 수천 내지 수만의 동시접속을 생성하여 온라인 게임 서버에 부하를 인가함으로써 온라인 게임 서버의 스트레스 테스트를 수행하는 것을 특징으로 하며, 이러한 본 발명에 의할 때 서버 또는 클라이언트 단의 소스 코드를 수정하지 않고서도 간단하게 스트레스 테스트가 가능해진다.

Description

스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법{STRESS TEST SYSTEM FOR ONLINE GAME SERVER BASED ON SCRIPT AND METHOD THEREOF}
본 발명은 온라인 게임 서버의 스트레스 테스트 또는 로직 테스트를 위한 방법에 관한 것이다.
동시에 수 천에서 수 만의 사용자가 동시에 접속하여 이용하는 온라인 게임의 경우 일시적으로 네트워크 트래픽이 증가하거나 온라인 게임 서버에 인가되는 부하가 일시적으로 높아져, 서버가 일정 시간 이상 응답을 하지 않는다거나 의도치 않게 종료되는 등의 문제가 발생하기 쉽다.
수많은 동시접속자들이 이용하는 온라인 게임에서 오작동 발생시 게임제작사에 막대한 경제적 손실이 발생될 수 있으며, 게이머들이 큰 불편을 겪게 되어 고객 이탈현상이 발생됨은 충분히 예측이 가능하다.
이에 많은 온라인 게임 제작사들은 클로즈드 베타 또는 오픈 베타 기간 동안 버그를 잡고, 안정화를 시도한다.
그러나, 베타 기간동안 축적되는 명성이나 신뢰도가 매출과 직결되므로 게임의 공개 이전에 충분한 검증을 마칠 것이 요구되는 것이 현실이다.
따라서, 온라인 게임 서버의 스트레스 테스트를 위한 여러가지의 방법론들이 개발되고 있으나 종래의 방법론들은 일반적인 서버-클라이언트 구조와 마찬가지로 서버와 클라이언트의 일대일 관계를 가정하고 있어 다수의 게이머들간의 상호작용이 이루어지는 온라인 게임의 다양한 상황을 충분히 시뮬레이션할 수 없다는 한계를 가진다.
뿐만 아니라, 테스트 시나리오를 생성하기 위하여 서버나 클라이언트의 소스 코드를 수정하여 필요한 정보를 기록하게 하거나, 클라이언트에서 오가는 패킷을 캡쳐하여 이를 동작 단위로 나누어 사용하고 있다.
그러나, 이러한 종래기술은 소스코드의 수정을 요하므로 비효율적일 뿐만 아니라 실제로 부하 테스트를 거친 서버와 테스트 도중의 서버가 달라진다는 문제점을 야기한다.
또한, 클라이언트 단에서 패킷을 캡쳐하여 동작 단위를 나누는 경우 테스트 시나리오의 생성이 용이하여 구현이 간단하나, 최근의 MMORPG(Massively Multiplayer Online Role Playing Game)에 있기 마련인 게이머들간 인터랙션이 이뤄지는 파티 시스템이나 던젼 시스템에 대한 테스트가 어렵다는 문제점이 있다.
본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위하여 안출된 것으로 온라인 게임 서버로부터 캡쳐한 패킷을 분석하여 게임 스크립트의 형태로 테스트 시나리오를 생성하되, 이를 일정한 조건에 따라 실행함으로써 온라인 게임에서 일어날 수 있는 다양한 상황에 맞는 테스트가 가능해지는 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법의 제공을 목적으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템은 온라인 게임 서버와 클라이언트 사이의 통신 프로토콜 구조를 설명하는 파일을 생성하는 프로토콜 기술수단;
온라인 게임 서버가 클라이언트와 주고받는 바이너리 값인 패킷을 캡쳐하되, 캡쳐한 패킷을 상기 프로토콜 구조를 설명하는 파일을 이용하여 분석함으로써 대응하는 스크립트 명령어를 판단하고, 피연산자를 판단함으로써 스크립트를 생성하되, 생성된 스크립트를 파일로 저장하는 스크립트 생성수단;
하나 이상의 스트레스 테스트 수단과 연결되되, 설정된 바에 따라 연결된 각 스트레스 테스트 수단에 상기 생성된 스크립트와 스크립트 실행조건을 할당하는 제어수단; 및
온라인 게임 서버에 다수개의 동시접속을 생성하되, 할당된 스크립트 및 스크립트 실행조건에 의하여 스크립트를 실행함으로써 상기 다수개의 동시 접속을 통해 온라인 게임 서버에 부하를 인가하는 스트레스 테스트 수단;을 구비하는 것을 특징으로 한다.
한편, 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법은 온라인 게임 서버와 클라이언트 사이의 통신 프로토콜 구조를 설명하는 파일을 생성하는 제 110 단계;
온라인 게임 서버로부터 상기 온라인 게임 서버가 하나 이상의 클라이언트와 주고받는 패킷을 캡쳐하는 제 120 단계;
캡쳐한 패킷을 상기 생성된 프로토콜 구조를 설명하는 파일을 이용하여 파싱하는 제 130 단계;
파싱된 데이터를 이용하여 상기 캡쳐한 패킷에 대응하는 온라인 게임 서버 또는 클라이언트의 동작을 판단하는 제 140 단계;
상기 판단된 동작에 대응하는 스크립트 명령어를 판단하는 제 150 단계; 및
상기 파싱된 데이터 또는 미리 설정된 값에 따라 상기 판단된 스크립트 명령어의 피연산자를 상기 스크립트 명령어와 조합함으로써 스크립트를 생성하는 제 160 단계;를 포함하는 것을 특징으로 한다.
이와 같은 본 발명에 의할 때, 다수의 게이머들간 상호작용이 이루어지는 온라인 게임상의 다양한 상황에 대한 테스트 시나리오를 생성하는 것이 가능해지므로 온라인 게임 서버의 테스트 결과에 대한 신뢰도가 향상된다는 효과가 있다.
아울러, 캡쳐된 패킷을 동작별로 나누어 시나리오를 생성하는 대신 스크립트로 변환함으로써 작업자가 생성된 테스트 시나리오를 용이하게 수정할 수 있다는 효과가 있다.
뿐만 아니라, 테스트 시나리오에 의하여 예측되는 온라인 게임 서버로부터의 패킷 데이터와 실제 패킷을 비교하는 것에 의하여 다양한 경우의 수에 대해 온라인 게임 서버의 로직 테스트가 가능하다는 효과가 있다.
도 1은 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템과 클라이언트, 서버의 연결관계를 설명하는 망 구성도이며,
도 2는 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템의 구조를 설명하는 기능블록도이며,
도 3은 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법을 시계열적으로 설명한 플로우차트,
도 4는 도 3에 도시된 온라인 게임 서버의 스트레스 테스트 방법의 일측면을 설명한 플로우차트이다.
이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템의 구성을 상세히 살펴보기로 한다.
도 1에 도시된 바에 의하면 온라인 게임 서버(1)는 인터넷 망을 통해 다수의 클라이언트(2)와 연결된다.
이때, 클라이언트(2)는 각각 온라인 게임 서버(1)와 세션을 생성하여 온라인 게임을 진행하는데, 온라인 게임 서버(1)는 클라이언트(2)들로부터의 요청을 처리하고 그 결과를 반환한다. 한편, 온라인 게임의 특성상 동시 접속한 다수의 클라이언트(2)들간 대화 기타의 게임 내 인터랙션이 존재할 수 있으며 온라인 게임 서버(1)는 이러한 클라이언트들(2)간의 인터랙션을 처리하여 그 결과를 각각의 클라이언트(1)로 반환한다.
즉, 일반적인 클라이언트-서버 구조와는 달리 온라인 게임 서버(1)로부터 어느 하나의 클라이언트(2)로 전송되는 패킷은 오로지 온라인 게임 서버(1)에 의하여 결정되는 것이 아니라 다른 클라이언트(2)의 반응에 따라 다른 값을 가질 수 있다.
한편, 본 발명에 의한 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템(100)은 온라인 게임 서버로부터 패킷을 캡쳐한 다음 이를 기반으로 자동적으로 테스트 스크립트를 생성한다.
이후, 생성된 테스트 스크립트를 이용하여 온라인 게임 서버(1)에 부하를 인가하는 스트레스 테스트를 수행하는데, 이때 수천 내지 수만의 동시접속을 임의로 생성하여 스트레스 테스트를 수행할 수 있다. 네트워크 트래픽의 일시적인 부하가 발생하여 레이턴시 값이 높은 상황(High Latency)을 재현하거나 네트워크 장애로 인한 패킷 로스(Packet Loss)를 인위적으로 만들어 스트레스 테스트를 할 수 있으며, 온라인 게임 서버(1)의 CPU나 메모리 부하를 인위적으로 올린 조건에서 스트레스 테스트를 수행할 수 있다.
이와 같은 온라인 게임 서버의 스트레스 테스트 시스템(100)은 도 2에 도시된 바와 같이 프로토콜 기술수단(110), 스크립트 생성수단(120), 제어수단(130), 스트레스 테스트 수단(140) 및 모니터링 수단(150)을 구비한다.
이때, 프로토콜 기술수단(110)은 온라인 게임 서버(1)와 클라이언트(2) 사이의 통신 프로토콜 구조를 설명하는 파일을 생성한다.
패킷의 구조를 설명하는 파일은 일반적으로 사람이 읽을 수 있는 형태의 YAML(YAML A'int Markup Language)로 작성되는데, 프로토콜 기술수단(110)은 이를 읽어 스크립트 생성수단(120)이 이해할 수 있는 형태로 프로토콜 구조를 설명하는 파일을 생성한다.
이때, 프로토콜 기술수단(110)은 스크립트 생성수단(120)이 이해할 수 있도록 파이톤(Python)을 이용하여 확장자 .py의 형태로 작성할 수 있다.
한편, 스크립트 생성수단(120)은 온라인 게임 서버(1)가 다수의 클라이언트(2)들과 주고받는 바이너리 데이터인 패킷을 캡쳐한다. 바람직하게는 스크립트 생성수단(120)은 온라인 게임 서버(1)로부터 직접 캡쳐함으로써 온라인 게임 서버(1)가 하나 이상의 클라이언트(2)들의 인터랙션을 처리하는 과정에서 생성된 패킷을 획득할 수 있다.
온라인 게임 서버(1)의 네트워크 어댑터에 할당된 어드레스나 포트를 특정하고, TCP 또는 UDP와 같은 프로토콜을 설정하는 것에 의하여 패킷의 캡쳐가 이루어질 수 있다.
클라이언트(2)단에서 패킷을 캡쳐하는 경우 클라이언트(2)의 조작에 따른 패킷분석이 가능하다는 장점이 있어 로 데이터(Raw Data)인 패킷의 순서변경에 의한 테스트 시나리오의 생성이 가능한 까닭에 종래기술의 경우 클라이언트(2)단에서 패킷을 캡쳐하나, 본 발명의 스크립트 생성수단(120)은 온라인 게임 서버(1)로부터 직접 캡쳐함으로써 하나 이상의 클라이언트(2)들간의 인터랙션에 대하여 온라인 게임 서버(1)가 어떻게 처리하는지를 알 수 있다.
따라서, 다수의 클라이언트(2)들간의 인터랙션의 처리를 포함하는 온라인 게임 고유의 상황에 맞는 다양한 테스트 시나리오의 생성이 가능하게 된다.
한편, 이와 같이 캡쳐한 패킷은 바이너리 형태의 로 데이터인 까닭에 스크립트 생성수단(120)은 프로토콜 기술수단(110)이 생성한 프로토콜 구조를 기술한 파일을 참조하여 캡쳐한 패킷을 파싱한다.
패킷을 파싱함으로써 스크립트 생성수단(120)은 해당 패킷이 온라인 게임 서버(1)와 클라이언트(2)의 어떤 동작, 어떤 처리에 대한 것인지를 알 수 있다.
한편, 스크립트 생성수단(120)은 각각의 동작이나 처리를 스크립트 명령어로 대체하는데 예를 들어, 특정 대상을 공격한다거나, 특정 캐릭터의 위치를 특정 좌표로 옮긴다거나 하는 것이 그것이다.
이와 같이 각각의 동작이나 처리에 대응하는 스크립트의 명령어를 판단한 다음 해당 명령어의 피연산자를 상기 명령어와 조합함으로써 스크립트를 생성하게 된다.
패킷 분석 결과 무엇을 어떻게 처리했는지를 알 수 있는데, "어떻게"가 명령어에 해당한다면, "무엇을"이 피연산자에 해당한다.
예를 들어, 특정 플레이어 캐릭터, 특정 넌 플레이어 캐릭터, 맵상 대상물 등이 피연산자가 될 수 있을 것이다.
이와 같이 캡쳐한 패킷을 스크립트로 변환하는데 이를 순차적으로 변환함으로써 테스트 시나리오를 생성할 수 있게 된다.
즉, 온라인 게임 서버(1)와 클라이언트(2) 사이에 주고받은 패킷을 스크립트화함으로써 해당 과정에서의 온라인 게임 서버(1)의 동작을 재현하기 위한 시나리오가 생성되는 것이다.
이러한 시나리오는 다양한 환경이나 조건하에서 다양한 형태로 생성될 수 있다.
한편, 스크립트 생성수단(120)은 바람직하게는 Lua 언어를 통해 스크립트를 생성하고 이를 파일로 저장한다.
한편, 스크립트 생성수단(120)은 온라인 게임 서버(1)의 네트워크 어댑터에서 직접 패킷을 캡쳐하는 대신 온라인 게임 서버(1)와 클라이언트(2) 사이에서 릴레이 역할을 함으로써 패킷을 캡쳐하도록 구현될 수도 있다. 클라이언트(2)가 하나의 서버(1)와 통신하는 경우에만 적용이 가능하다는 한계가 있다.
제어수단(130)은 다수의 스트레스 테스트 수단(140)과 연결되며, 각 스트레스 테스트 수단(140)의 동작 상태를 모니터링하고, 테스트 결과를 수집하며, 각 스트레스 테스트 수단(140)에 생성된 스크립트 가운데 어느 하나 또는 그 이상을 할당하여 실행토록 제어한다.
온라인 게임 서버(1)의 스트레스 테스트를 시행하고자 하는 경우 작업자는 이러한 제어수단(130)을 이용하여 어떤 스크립트를 몇개의 동시접속을 통해 몇회 실행할 것인지를 설정할 수 있다.
작업자의 설정에 따라 제어수단(130)은 연결된 다수의 스트레스 테스트 수단(140)으로 스크립트를 할당하고, 실행조건을 할당한다. 이때, 실행조건이란 스크립트를 몇회 실행할 것인지, 몇개의 동시접속을 생성하여 실행할 것인지와 같은 조건을 포함할 수 있다.
다수의 스트레스 테스트 수단(140)은 제어수단(130)의 제어에 따라 스크립트를 실행하는데, 제어수단(130)은 스트레스 테스트 수단(140)들의 상태를 모니터링하여 이들 가운데 스크립트의 실행이 가능한 상태의 스트레스 테스트 수단(140)으로 스크립트를 할당하게 된다.
한편, 스트레스 테스트 수단(140)은 각각 온라인 게임 서버(1)에 동시접속을 수백 내지 수천개를 생성한다. 한편, 할당된 스크립트를 실행함으로써 온라인 게임 서버(1)에 부하를 인가한다. 이에 의하여 온라인 게임 서버(1)는 수백 내지 수천개의 클라이언트(2)가 동시접속하여 온라인 게임을 진행하는 것과 같은 상태에서 스트레스 테스트를 받게 된다.
다수개의 스트레스 테스트 수단(140)을 동시에 구동시킴으로써 동시접속수를 크게 늘릴 수 있음은 당연하다.
이와 같이 스트레스 테스트 수단(140)은 온라인 게임 서버(1)에 부하를 인가하고 온라인 게임 서버(1)로부터 처리 결과를 패킷으로 전송받게 되는데, 제어수단(130)은 그 결과를 수집함으로써 스트레스 테스트 수행결과를 작업자에게 리포팅한다.
제어수단(130)은 온라인 게임 서버(1)의 CPU, 메모리의 부하상태, 네트워크 트래픽에 따른 스트레스 테스트에서 더 나아가 미리 생성된 테스트 시나리오에 의거하여 특정 정보를 보냈을 때의 온라인 게임 서버(1)의 반응이나 기대한 대로의 패킷 응답이 오는지를 확인하는 것에 의하여 로직 테스트를 수행할 수 있다.
한편, 테스트 과정에서의 온라인 게임 서버(1)의 상태를 수집하기 위하여 온라인 게임 서버의 스트레스 테스트 시스템(100)은 스트레스 테스트 수단(140)에 의한 스크립트 실행 과정동안 온라인 게임 서버(1)의 CPU, 메모리 또는 네트워크 트래픽 가운데 하나 이상을 모니터링하는 모니터링 수단(150)을 더 구비할 수 있다.
이에 의하여 어떤 조건에서 온라인 게임 서버(1)의 오작동이 일어나는지를 판정할 수 있다.
이하에서는 상기와 같은 구성을 갖는 본 발명의 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템에서 테스트 시나리오인 스크립트가 자동으로 생성되어 스트레스 테스트에 적용되는 과정을 도 3 및 도 4를 참조하여 살펴보기로 한다.
우선, 온라인 게임 서버의 스트레스 테스트 시스템(100)이 온라인 게임 서버(1)와 클라이언트(2) 사이의 통신 프로토콜 구조를 설명하는 파일을 생성한다(S110).
한편, 온라인 게임 서버의 스트레스 테스트 시스템(100)은 온라인 게임 서버(1)로부터 상기 온라인 게임 서버(1)가 하나 이상의 클라이언트(2)와 주고받는 패킷을 캡쳐한다(S120).
이때, 패킷의 캡쳐는 바람직하게는 온라인 게임 서버(1)로부터 직접 이루어지나, 온라인 게임 서버(1)와 클라이언트(2) 사이에 위치한 릴레이의 형태로도 패킷 캡쳐를 할 수 있음은 물론이다.
이와 같이 패킷의 캡쳐가 이루어지면 이를 상기 S110 단계에서 생성된 프로토콜 구조를 설명하는 파일을 이용하여 파싱한다(S130).
한편, 파싱된 데이터로부터 캡쳐한 패킷이 각각 온라인 게임 서버(1) 또는 클라이언트(2)의 어떤 동작, 어떤 처리에 관한 것인지를 판단한다(S140).
이후, 상기 S140 단계에서 판단된 동작에 대응하는 스크립트 명령어를 판단한다(S150).
한편, 파싱된 데이터 또는 미리 설정된 값에 따라 상기 판단된 스크립트 명령어의 피연산자를 선택하고 이를 상기 스크립트 명령어와 조합함으로써 스크립트를 생성한다(S160).
이와 같이 스크립트가 생성되면 스트레스 테스트 수단(140)으로 스크립트를 할당하여 실행하도록 한다. 이때, 온라인 게임 서버(1)에 수백 내지 수천의 동시 접속을 생성하도록 함으로써 다수의 동시접속자에 의한 클로즈드 베타, 오픈 베타시와 동일한 조건에서 스트레스 테스트가 이뤄지도록 한다(S170).
이후 스크립트 실행결과를 이용하여 부하와 상황에 따른 온라인 게임 서버의 처리결과를 수집한다(S180). 즉, 이에 의하여 네트워크 트래픽이나 온라인 게임 서버(1)의 CPU, 메모리 부하에 따른 오동작 여부를 판단할 수 있음은 물론, 온라인 게임 서버(1)가 테스트 시나리오에 의해 예측된 것과 동일한 패킷을 전송했는가 여부에 따른 로직 테스트 결과를 수집할 수 있게 된다(S181).
이때, 스크립트 실행 과정동안 온라인 게임 서버(1)의 CPU, 메모리 또는 네트워크 트래픽 가운데 하나 이상을 모니터링함으로써 온라인 게임 서버(1)의 오동작시의 온라인 게임 서버(1)의 상태를 파악할 수 있다(S182).
이상과 같은 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법은 컴퓨터 프로그램의 형태로 제작되되, 컴퓨터로 판독가능한 기록매체에 수록되어 온라인 게임 서버(1) 또는 별도의 서버에서 실행될 수 있다.
이상 몇가지의 실시예를 들어 본 발명을 살펴보았으나 이러한 실시예는 예시의 목적을 위해 개시된 것이고, 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것임은 물론, 이는 하기의 특허청구범위를 벗어나지 아니하는 것으로 해석되어야 한다.
110 : 프로토콜 기술수단 120 : 스크립트 생성수단
130 : 제어수단 140 : 스트레스 테스트 수단
150 : 모니터링 수단

Claims (15)

  1. 온라인 게임 서버에 인가되는 스트레스를 테스트하는 장치에서 실행되는 방법에 있어서,
    온라인 게임 서버와 클라이언트 사이의 통신 프로토콜 구조를 설명하는 파일을 생성하는 제 110 단계;
    온라인 게임 서버로부터 상기 온라인 게임 서버가 하나 이상의 클라이언트와 주고받는 패킷을 캡쳐하는 제 120 단계;
    캡쳐한 패킷을 상기 생성된 프로토콜 구조를 설명하는 파일을 이용하여 파싱하는 제 130 단계;
    파싱된 데이터를 이용하여 상기 캡쳐한 패킷에 대응하는 온라인 게임 서버 또는 클라이언트의 동작을 판단하는 제 140 단계;
    상기 판단된 동작에 대응하는 스크립트 명령어를 판단하는 제 150 단계; 및
    상기 파싱된 데이터 또는 미리 설정된 값에 따라 상기 판단된 스크립트 명령어의 피연산자를 상기 스크립트 명령어와 조합함으로써 스크립트를 생성하는 제 160 단계;를 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  2. 제 1 항에 있어서,
    온라인 게임 서버에 다수개의 동시접속을 생성하되, 저장된 스크립트 파일을 미리 설정된 실행조건에 의하여 실행함으로써 온라인 게임 서버에 부하를 인가하는 제 170 단계;를 더 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  3. 제 2 항에 있어서,
    상기 스크립트 실행조건은 스크립트 실행횟수를 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  4. 제 1 항에 있어서,
    스크립트 실행결과를 이용하여 부하와 상황에 따른 온라인 게임 서버의 처리결과를 수집하는 제 180 단계;를 더 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  5. 제 4 항에 있어서,
    상기 실행된 스크립트와 온라인 게임 서버로부터 수신하는 패킷을 비교함으로써 온라인 게임 서버의 로직 테스트 결과를 수집하는 제 181 단계;를 더 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  6. 제 4 항에 있어서,
    스크립트 실행 과정동안 온라인 게임 서버의 CPU, 메모리 또는 네트워크 트래픽 가운데 하나 이상을 모니터링하는 제 182 단계;를 더 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법.
  7. 온라인 게임 서버와 클라이언트 사이의 통신 프로토콜 구조를 설명하는 파일을 생성하는 프로토콜 기술수단;
    온라인 게임 서버가 클라이언트와 주고받는 바이너리 값인 패킷을 캡쳐하되, 캡쳐한 패킷을 상기 프로토콜 구조를 설명하는 파일을 이용하여 분석함으로써 대응하는 스크립트 명령어를 판단하고, 피연산자를 판단함으로써 스크립트를 생성하는 스크립트 생성수단;
    하나 이상의 스트레스 테스트 수단과 연결되되, 설정된 바에 따라 연결된 각 스트레스 테스트 수단에 상기 생성된 스크립트와 스크립트 실행조건을 할당하는 제어수단; 및
    온라인 게임 서버에 다수개의 동시접속을 생성하되, 할당된 스크립트 및 스크립트 실행조건에 의하여 스크립트를 실행함으로써 상기 다수개의 동시 접속을 통해 온라인 게임 서버에 부하를 인가하는 스트레스 테스트 수단;을 구비하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  8. 제 7 항에 있어서,
    상기 스크립트 생성수단은 온라인 게임 서버의 네트워크 어댑터로부터 직접 패킷을 캡쳐하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  9. 제 7 항에 있어서,
    상기 스크립트 생성수단은 온라인 게임 서버와 클라이언트의 사이에서 릴레이 방식에 의하여 패킷을 캡쳐하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  10. 제 7 항에 있어서,
    상기 제어수단은 스트레스 테스트 수단들의 동작여부를 모니터링하되, 스크립트의 실행이 가능한 상태의 스트레스 테스트 수단에 스크립트를 할당하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  11. 제 7 항에 있어서,
    상기 스크립트 실행조건은 스크립트 실행횟수를 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  12. 제 7 항에 있어서,
    상기 제어수단은 각각의 스트레스 테스트 수단으로부터의 스크립트 실행결과를 이용하여 부하와 상황에 따른 온라인 게임 서버의 처리결과를 수집하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  13. 제 7 항에 있어서,
    상기 스트레스 테스트 수단에 의한 스크립트 실행 과정동안 온라인 게임 서버의 CPU, 메모리 또는 네트워크 트래픽 가운데 하나 이상을 모니터링하는 모니터링 수단;을 더 포함하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  14. 제 7 항에 있어서,
    상기 스트레스 테스트 수단은 상기 할당된 스크립트와 온라인 게임 서버로부터 수신하는 패킷을 비교함으로써 온라인 게임 서버의 로직 테스트를 수행하는 것을 특징으로 하는 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템.
  15. 제 1 항 내지 제 6 항 가운데 어느 한 항에 기재된 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 방법을 컴퓨터상에서 실행하는 프로그램이 수록된 컴퓨터로 판독가능한 기록매체.
KR1020100108634A 2010-11-03 2010-11-03 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 KR101196522B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100108634A KR101196522B1 (ko) 2010-11-03 2010-11-03 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100108634A KR101196522B1 (ko) 2010-11-03 2010-11-03 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20120047013A KR20120047013A (ko) 2012-05-11
KR101196522B1 true KR101196522B1 (ko) 2012-11-01

Family

ID=46265909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100108634A KR101196522B1 (ko) 2010-11-03 2010-11-03 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101196522B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102935A (zh) * 2017-03-01 2017-08-29 网易(杭州)网络有限公司 一种服务器压力测试方法及装置
KR20190103896A (ko) 2018-02-28 2019-09-05 (주)게임게이트 스마트 콘텐츠 테스트 방법 및 장치
KR20200092769A (ko) 2019-01-25 2020-08-04 주식회사 디지털프로그 스마트 콘텐츠 제공 시스템 검증방법
KR20220053432A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220053434A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220053430A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220082496A (ko) 2020-12-10 2022-06-17 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220087798A (ko) 2020-12-18 2022-06-27 주식회사 엔씨소프트 게임 객체 탐색 시스템 및 방법과 이를 수행하기 위한 클라이언트

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108377208B (zh) * 2018-01-16 2020-10-16 珠海金山网络游戏科技有限公司 一种基于协议回放的服务器压力测试方法及装置
CN109499071A (zh) * 2018-12-06 2019-03-22 珠海西山居移动游戏科技有限公司 一种检测游戏服务器协议安全的测试方法及装置
CN109634861B (zh) * 2018-12-11 2022-06-21 网易(杭州)网络有限公司 网络游戏协议的测试方法、装置、处理器及终端
CN113765862B (zh) * 2020-06-05 2024-02-09 腾讯科技(成都)有限公司 游戏协议测试的方法、装置、设备及计算机可读存储介质
CN112732580A (zh) * 2021-01-11 2021-04-30 珠海金山网络游戏科技有限公司 基于Unity的层级查找的自动化测试方法、装置及介质
CN116483718B (zh) * 2023-04-25 2023-11-14 无锡市软测认证有限公司 一种利用大数据实现大规模压力测试系统及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102935A (zh) * 2017-03-01 2017-08-29 网易(杭州)网络有限公司 一种服务器压力测试方法及装置
KR20190103896A (ko) 2018-02-28 2019-09-05 (주)게임게이트 스마트 콘텐츠 테스트 방법 및 장치
KR20200092769A (ko) 2019-01-25 2020-08-04 주식회사 디지털프로그 스마트 콘텐츠 제공 시스템 검증방법
KR20220053432A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220053434A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220053430A (ko) 2020-10-22 2022-04-29 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220082496A (ko) 2020-12-10 2022-06-17 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
KR20220087798A (ko) 2020-12-18 2022-06-27 주식회사 엔씨소프트 게임 객체 탐색 시스템 및 방법과 이를 수행하기 위한 클라이언트

Also Published As

Publication number Publication date
KR20120047013A (ko) 2012-05-11

Similar Documents

Publication Publication Date Title
KR101196522B1 (ko) 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법
KR101269671B1 (ko) 게임 테스트를 위한 게임 문법 기반의 패킷 캡쳐 분석 장치 및 그 방법
US11524237B2 (en) Systems and methods for distributing the generation of nonplayer characters across networked end user devices for use in simulated NPC gameplay sessions
US10282280B1 (en) Automated scalable video game testing system
CN104685459B (zh) 用于创建小游戏的方法
CN109698771B (zh) 游戏服务器压力测试方法及装置
US8667119B2 (en) System and method for re-generating packet load for load test
US11455231B2 (en) Testing as a service for cloud gaming
Iftikhar et al. An automated model based testing approach for platform games
CN106201854B (zh) 一种基于套接字的服务器负载测试方法及系统
Snellman et al. Towards automatic performance and scalability testing of rich internet applications in the cloud
US8556725B2 (en) Scenario-based load testing apparatus and method
US20100138813A1 (en) Method and apparatus for testing online performance on client/server architecture
KR101199485B1 (ko) 클라이언트/서버간 온라인 성능 테스트 방법 및 장치
CN108347356A (zh) 一种多协议单元测试方法、装置、电子设备和存储介质
KR20130026919A (ko) 분산 테스트 시스템 및 방법, 분산 테스트 관제 시스템 및 방법, 분산 테스트 플랜 작성 장치 및 방법, 분산 테스트 에이전트 및 분산 테스트 플랜 실행 방법
Alstad et al. Game network traffic simulation by a custom bot
Cho et al. Online game testing using scenario-based control of massive virtual users
KR20070060378A (ko) 부하 테스트를 통한 서버 애플리케이션 안정성 검증 시스템및 방법
KR20130017386A (ko) 게임 서버의 안정성 테스트 방법 및 장치
Eickhoff et al. Meterstick: Benchmarking performance variability in cloud and self-hosted minecraft-like games extended technical report
CN111600959B (zh) 一种内网客户端的测试数据生成方法及装置
CN109985387B (zh) 自动化测试方法和装置
KR101875428B1 (ko) 인 클라이언트 서버를 이용한 온라인 게임 내 캐릭터의 위치정보 제공장치 및 그 방법
CN113760518A (zh) 一种信息处理方法、装置及存储介质

Legal Events

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

Payment date: 20150921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190904

Year of fee payment: 8