KR20120060012A - 시나리오 기반 부하 테스트 장치 및 방법 - Google Patents

시나리오 기반 부하 테스트 장치 및 방법 Download PDF

Info

Publication number
KR20120060012A
KR20120060012A KR1020100121560A KR20100121560A KR20120060012A KR 20120060012 A KR20120060012 A KR 20120060012A KR 1020100121560 A KR1020100121560 A KR 1020100121560A KR 20100121560 A KR20100121560 A KR 20100121560A KR 20120060012 A KR20120060012 A KR 20120060012A
Authority
KR
South Korea
Prior art keywords
scenario
generating
packet
game
load
Prior art date
Application number
KR1020100121560A
Other languages
English (en)
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 KR1020100121560A priority Critical patent/KR20120060012A/ko
Priority to US13/242,711 priority patent/US8556725B2/en
Publication of KR20120060012A publication Critical patent/KR20120060012A/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
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/575Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for trading virtual items

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

시나리오 기반 부하 테스트 장치 및 방법이 개시된다. 본 발명에 따른 시나리오 기반 부하 테스트 장치는, 서버와 클라이언트 간의 패킷을 캡처하고 분석하여 가상 맵 및 게임 문법을 생성하는 패킷 분석부; 상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 시나리오 생성부; 및 상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 부하 발생부를 포함한다. 본 발명에 따른 시나리오 기반 부하 테스트 방법은, 서버와 클라이언트 간의 패킷을 캡처하는 단계; 상기 패킷을 분석하여 가상 맵을 생성하는 단계; 상기 패킷을 분석하여 게임 문법을 생성하는 단계; 상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 단계; 및 상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 단계를 포함한다.

Description

시나리오 기반 부하 테스트 장치 및 방법{scenario based load testing apparatus and method}
본 발명은 시나리오 기반 부하 테스트 장치 및 방법에 관한 것으로서, 시나리오 기반으로 가상 유저를 생성하여 게임의 부하를 테스트함으로써, 복잡한 게임의 로직(logic)에 대한 검증이 가능하고 부하 테스트에 대한 시간을 절감하고 테스트 생산성을 높일 수 있는 시나리오 기반 부하 테스트 장치 및 방법에 관한 것이다.
다중 사용자용 서버 어플리케이션의 안정성 및 성능을 자동으로 테스트해주는 소프트웨어 테스트 분야에 있어서, 임의의 부하를 만들어 낸 뒤 이를 서버에 영향을 주어서 서버의 안정성을 테스트하는 연구는 소프트웨어 공학 측면에서 보면 부하 테스트이며, 고부하 상태에서의 서버에 나타나는 이상 현상을 관찰하는 스트레스 테스트의 범주에 해당된다. 또한 게임의 로직을 분석하여 게임 서버 및 게임의 안정성을 분석하는 것은 게임 품질 보증(game quality assurance) 분야에 해당된다.
이러한 분야에서 부하 테스트를 위하여 가상 유저를 대규모로 생성 가능하게 하는 가상 유저에 의한 부하 발생 시스템이 연구되고 있다. 또한 실제와 같은 네트워크 환경에서 서버의 안정성을 테스트하기 위하여 가상의 네트워크 회선을 만들어주는 구조를 시뮬레이션 환경에 추가하는 연구가 진행되고 있다.
종래의 가상 유저에 의한 부하 발생 시스템은 캡쳐된 패킷을 그대로 사용하는 시스템 또는 캡처된 패킷에 아주 간단한 조작을 가하여 액션 단위의 부하를 재생성하는 시스템이 있었다. 종래의 가상 유저에 의한 부하 발생 시스템의 경우, 단순한 부하 테스트 및 스트레스 테스트를 손쉽게 진행하기 위한 것에 초점이 맞추어졌다. 즉, 종래의 부하 발생 시스템은 실제 클라이언트의 특정 패킷 샘플을 캡쳐한 다음 이에 대하여 적당히 조작을 수행한 다음 서버로 대량의 데이타를 보내는 방식을 이용하였다. 이 때 온라인게임의 특성상 아이디(ID) 및 패스워드(password), 세션(session) 키 값 등 세션마다 다른 정보를 사용해야 하는 경우가 있는데, 이를 위하여 간단한 패킷 조작을 수행한다. 즉 기존에 캡쳐된 패킷 리스트에서 특정 항목을 조작하여 각 세션마다 내용을 다르게 적용가능하게 함으로써 단순 반복적인 대량의 패킷을 생성 가능하게 된다.
이러한 종래의 부하 발생 시스템은 아주 단순한 형태의 부하 테스트만이 가능하여 테스트의 효용성이 부족하였다. 특히, 온라인 게임 서버의 경우 웹 서비스 등과 같은 일반 서버 애플리케이션에 비하여 복잡한 게임 로직을 사용하고 있기 때문에, 종래의 시스템만으로는 복잡한 로직에 대한 안정성 검사가 어려운 문제점이 있었다.
본 발명의 목적은 시나리오 기반으로 가상 유저를 생성하여 서버의 부하를 테스트함으로써, 복잡한 게임의 로직(logic)에 대한 검증이 가능하고 부하 테스트에 대한 시간을 절감하고 테스트 생산성을 높일 수 있는 시나리오 기반 부하 테스트 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치는, 서버와 클라이언트 간의 패킷을 캡처하고 분석하여 가상 맵 및 게임 문법을 생성하는 패킷 분석부; 상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 시나리오 생성부; 및 상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 부하 발생부를 포함하여 구성된다.
이 때, 상기 시나리오 생성부는, 상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성할 수 있다.
또한, 상기 시나리오 생성부는, 상기 시나리오를 텍스트 스크립트 형태로 기술하여 생성할 수 있다.
본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법은, 서버와 클라이언트 간의 패킷을 캡처하는 단계; 상기 패킷을 분석하여 가상 맵을 생성하는 단계; 상기 패킷을 분석하여 게임 문법을 생성하는 단계; 상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 단계; 및 상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 단계를 포함하여 구성된다.
이 때, 상기 시나리오를 생성하는 단계는, 상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성하는 단계를 포함할 수 있다.
또한, 상기 시나리오를 생성하는 단계는, 상기 시나리오를 텍스트 스크립트 형태로 기술하여 생성하는 단계를 포함할 수 있다.
본 발명의 일 측면에 따르면, 시나리오 기반으로 가상 유저를 생성하여 서버의 부하를 테스트함으로써, 복잡한 게임의 로직(logic)에 대한 검증이 가능하고 부하 테스트에 대한 시간을 절감하고 테스트 생산성을 높일 수 있는 시나리오 기반 부하 테스트 장치 및 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치를 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치에서 사용될 수 있는 시나리오의 일 예이다.
도 3은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치의 패킷 분석부를 개략적으로 도시한 도면이다.
도 4은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법에서 게임 문법을 생성하는 단계를 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치 및 방법에서 시나리오 스케쥴러에 의한 부하 생성 동작을 설명하기 위한 순서도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
도 1은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치를 개략적으로 도시한 도면이다.
본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치(100)는 패킷 분석부(101), 시나리오 생성부(102) 및 부하 발생부(103)를 포함하여 구성될 수 있다. 도 1에 도시된 시나리오 기반 부하 테스트 장치(100)는 예시적으로 도시된 것이며, 필요에 따라 일부 구성 요소가 추가, 삭제 또는 변경되어 구성될 수 있다.
패킷 분석부(101)는 서버(server)(10)와 클라이언트(client)(20) 간의 패킷(packet)을 캡처하고 분석하여 가상 맵(map) 및 게임 문법을 생성한다. 패킷 분석부(101)에 의해 생성되는 상기 가상 맵 및 게임 문법은 게임의 로직(logic)을 표현하게 된다. 상기 가상 맵은 시나리오가 실행될 맵이며, 상기 게임 문법은 프로토콜(protocol) 및 액션(action)을 포함한다. 프로토콜은 서버(10)와 클라이언트(20) 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타낸다. 액션은 상기 복수의 패킷 중에서 게임에 있어 수행되는 이동, 전투, 아이템 거래 등과 같은 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 정의한 것이다. 패킷 분석부(101)의 구체적인 구성은 추후 도면을 참조하여 상세히 후술하도록 한다.
시나리오 생성부(102)는 상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 부이다. 시나리오 생성부(102)는 상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성할 수 있다. 또한, 시나리오 생성부(102)는 테스트를 수행하는 사용자의 입력을 받아 상기 시나리오를 생성할 수 있다. 상기 시나리오는 텍스트 스크립트(text script) 형태로 기술되어 생성될 수 있다. 이 때, 상기 시나리오의 생성은 시각 편집기를 통하거나, 직접 텍스트로 입력하는 방법으로 이루어질 수 있다. 시각 편집기를 통하여 생성된 시나리오는 추후 최종적으로 텍스트 스트립트 형태로 변환될 수 있다.
또한, 상기 시나리오는 반복적인 행동을 지원하기 위한 제어문을 포함할 수 있다. 제어문은 부하 테스트를 수행하는 사용자가 단순하고 반복적인 작업을 최소화할 수 있도록 한다. 이는 게임의 부하 테스트에 대한 시간을 절약하게 하고 테스트 생산성을 높일 수 있게 한다.
도 2는 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치에서 사용될 수 있는 시나리오의 일 예이다.
상기 기술된 바와 같이, 시나리오는 가상 유저의 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의함으로써 생성될 수 있다. 도 2를 참조하면, 시나리오는 가상 유저가 가상 맵에서 지점(A), 지점(B), 지점(C) 및 지점(D)를 차례대로 지나가도록 정의될 수 있고 각 지점에 대한 행동이 정의될 수 있다. 예를 들어, 시나리오는 지점(A)에서는 가상 유저가 생성되고 시나리오를 진행하기 위한 가상 맵에 진입하고, 지점(B)에서는 가상 유저가 몬스터(monster) 80마리를 잡고 아이템(item)을 획득하며, 지점(C)에서는 가상 유저가 약초 30개를 채집하고, 지점(D)에서는 획득한 모든 아이템과 약초를 엔피시(NPC; Non-Player Character)에게 팔도록 정의될 수 있다. 도 2에서와 같이 가상 유저는 특정한 위치를 순차적으로 지나면서, 특정 위치에서 전투, 채집, 거래 등과 같은 게임의 액션을 수행하게 된다. 이러한 게임의 다양한 행동들을 가상 유저가 수행하게 됨으로써, 기존의 단순한 부하 테스트와는 달리 실제 게이머의 행동 양식과 유사한 사실적 테스트가 가능하게 된다.
상기 시나리오는 테스트를 수행하는 사용자의 입력을 받아 생성될 수 있으며, 텍스트 스크립트 형태로 기술되어 생성될 수 있다. 예를 들면, 도 2에 도시된 시나리오를 텍스트 스크립트 형태로 기술하면 다음과 같이 표현될 수 있다.
doAction LOGIN
moveTo 100,-3,50 (FORMATION=3)
doAction ATTACK
doAction LOOT
moveTo 200,300,90 (SPEEDTYPE=OPTIMAL)
doAction HERVAL
Delay 1.0
moveTo 200,300,90 (SPEEDTYPE=OPTIMAL)
doAction TRADE
End
이 때, 시나리오 스크립트는 doAction 과 moveTo 액션으로 구성되게 된다. moveTo는 가상 유저를 테스트를 원하는 지점까지 이동시키고, doAction은 전투, 채집, 거래 등과 같은 가상 유저의 행동을 정의한다. doAction 키워드에 나타나는 액션은 게임에서 미리 정해져 있게 된다. 일 실시예에서, LOGIN은 가상 맵에 진입하기 위한 로그인, ATTACK은 공격, LOOT는 아이템 줍기, HERVAL은 약초 채집, TRADE는 거래 등과 같이 미리 정해질 수 있다.
상기와 같은 시나리오의 생성은 시각 편집기를 통하거나, 직접 텍스트로 입력하는 방법으로 이루어질 수 있다. 시각 편집기를 통하여 생성된 시나리오는 추후 최종적으로 텍스트 스트립트 형태로 변환될 수 있다.
다시 도 1로 돌아와서, 부하 발생부(103)는 패킷 분석부(101)에서 생성된 게임 문법 및 시나리오 생성부(102)에서 생성된 시나리오에 따라 부하를 발생시킨다. 즉, 부하 발생부(103)는 상기 게임 문법을 참고하여 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시킨다. 상기 시나리오는 이동과 액션을 수행하게 되고, 액션에 대하여 프로토콜을 생성하여 서버(10)로 전송하게 된다. 이 때, 생성되는 다수의 네트워크 부하는 다수의 네트워크 세션을 의미하며 곧 다수의 유저를 의미한다. 일 실시예에서, 부하 발생부(103)는 상기 시나리오를 파싱하여 시나리오 엘리먼트(element)의 리스트(list)를 구성하고, 상기 시나리오 엘리먼트를 순차적으로 진행하는 상기 패킷 데이터를 생성하여 상기 부하를 발생시키는 시나리오 스케쥴러를 포함할 수 있다. 상기 시나리오 스케쥴러는 시나리오 즉, 텍스트 스크립트 파일을 읽어서 이를 파싱(parsing)한다. 파싱된 결과는 시나리오 엘리먼트의 리스트로 구성하게 된다. 상기 시나리오 스케쥴러는 시스템에서 지정한 시간 간격에 대하여 상기 시나리오 엘리먼트를 순차적으로 진행하게 된다. 상기 시나리오 엘리먼트의 리스트에 대하여 끝까지 수행하면 시나리오 실행이 종료된다. 개별 시나리오 엘리먼트들은 가상 맵에서 해당 위치로 이동하는 명령이나, 해당 위치에서 전투나 채집 등의 수행 액션을 포함하고 있다. 상기 시나리오 스케쥴러의 구체적인 동작에 대해서는 추후 도면을 참조하여 상세하게 후술하도록 한다.
도 3은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치의 패킷 분석부를 개략적으로 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치의 패킷 분석부(101)는 패킷 캡처부(310), 가상 맵 생성부(320) 및 게임 문법 생성부(330)를 포함하여 구성될 수 있다. 여기서, 게임 문법 생성부(330)는 프로토콜 정의부(331) 및 액션 정의부(332)를 포함하여 구성될 수 있다. 도 3에 도시된 시나리오 기반 부하 테스트 장치의 패킷 분석부(101)는 예시적으로 도시된 것이며, 필요에 따라 일부 구성 요소가 추가, 삭제 또는 변경되어 구성될 수 있다.
패킷 캡처부(310)는 서버와 클라이언트 간의 패킷을 캡처한다. 패킷 캡처부(310)에 의한 패킷 캡처 과정은 통상 하나의 게임 플레이에 대한 송수신 패킷을 수집하는 과정으로 수집된 패킷들은 리스트 형태로 저장될 수 있다.
가상 맵 생성부(320)는 상기 패킷을 분석하여 가상 맵을 생성한다. 상기 가상 맵은 시나리오가 실행될 맵이다.
게임 문법 생성부(330)는 상기 패킷을 분석하여 게임 문법을 생성하는 부이다. 게임 문법 생성부(330)는 프로토콜 정의부(331) 및 액션 정의부(332)를 포함할 수 있다. 프로토콜 정의부(331)는 상기 서버와 상기 클라이언트 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타내는 프로토콜을 정의하고, 액션 정의부(332)는 상기 복수의 패킷 중에서 게임에 있어 수행되는 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 액션을 정의한다. 예를 들면, 상기 액션은 이동, 전투, 채집, 거래, 파티 플레이와 같은 것일 수 있다. 이 때, 게임 문법 생성부(330)는 상기 프로토콜 및 상기 액션을 이용하여 상기 게임 문법을 생성할 수 있다.
도 4은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법이 시작되면, 먼저 서버와 클라이언트 간의 패킷을 캡처한다(S401). 단계(S401)는 통상 하나의 게임 플레이에 대한 송수신 패킷을 수집하는 과정으로 수집된 패킷들은 리스트 형태로 저장될 수 있다.
그 다음은, 상기 패킷을 분석하여 가상 맵을 생성하고(S402), 게임 문법을 생성한다(S403). 상기 가상 맵은 시나리오가 실행될 맵이고, 상기 게임 문법은 프로토콜 및 액션을 포함한다. 프로토콜은 상기 서버와 상기 클라이언트 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타낸다. 액션은 상기 복수의 패킷 중에서 게임에 있어 수행되는 이동, 전투, 아이템 거래 등과 같은 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 정의한 것이다.
가상 맵을 생성하고(S402), 게임 문법을 생성하고 나면(S403), 상기 가상 맵에서의 가상 유저의 시나리오를 생성한다(S404). 단계(S404)에서 상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성할 수 있다. 또한, 단계(S404)에서 테스트를 수행하는 사용자의 입력을 받아 상기 시나리오를 생성할 수 있다. 상기 시나리오는 텍스트 스크립트 형태로 기술되어 생성될 수 있다. 이 때, 상기 시나리오의 생성은 시각 편집기를 통하거나, 직접 텍스트로 입력하는 방법으로 이루어질 수 있다. 시각 편집기를 통하여 생성된 시나리오는 추후 최종적으로 텍스트 스트립트 형태로 변환될 수 있다.
시나리오가 생성되면(S404), 상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시킨다(S405). 상기 시나리오는 이동과 액션을 수행하게 되고, 액션에 대하여 프로토콜을 생성하여 상기 서버로 전송하게 된다. 이 때, 생성되는 다수의 네트워크 부하는 다수의 네트워크 세션을 의미하며 곧 다수의 유저를 의미한다.
도 5는 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법에서 게임 문법을 생성하는 단계를 설명하기 위한 순서도이다.
도 5에 도시된 과정은 도 4에서의 단계(S403)에 대응하는 단계이다.
본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 방법에서 게임 문법을 생성하는 단계에서는 먼저, 상기 서버와 상기 클라이언트 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타내는 프로토콜을 정의한다(S501). 그리고 상기 복수의 패킷 중에서 게임에 있어 수행되는 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 액션을 정의한다(S502). 예를 들면, 상기 액션은 이동, 전투, 채집, 거래, 파티 플레이와 같은 것일 수 있다. 프로토콜 및 액션이 정의되면(S501, S502), 상기 프로토콜 및 상기 액션을 이용하여 상기 게임 문법을 생성한다(S503).
도 6은 본 발명의 일 실시예에 따른 시나리오 기반 부하 테스트 장치 및 방법에서 시나리오 스케쥴러에 의한 부하 생성 동작을 설명하기 위한 순서도이다.
먼저, 시나리오 스케쥴러는 시나리오 즉, 텍스트 스크립트 파일을 읽어서 이를 파싱(parsing)한다(S601). 파싱된 결과로 시나리오 엘리먼트 리스트를 생성하게 된다(S602). 해당 시나리오가 실행될 가상 유저 그룹을 선택하고(S603), 실행할 시나리오를 지정하게 되면, 시나리오 스케쥴러는 시스템에서 시나리오 엘리먼트를 순차적으로 진행하게 된다. 상기 시나리오 엘리먼트의 리스트의 마지막인지 확인(S604)하고 마지막이면 시나리오 실행이 종료된다. 개별 시나리오 엘리먼트들은 가상 맵에서 해당 위치로 이동하는 명령이나, 해당 위치에서 전투나 채집 등의 수행 액션을 포함하고 있다. 시나리오는 단순 반복적인 행동을 지원하기 위하여 제어문을 지원한다. 따라서 시나리오 엘리먼트가 제어문인지 확인하고(S605), 제어문이면 해당 시나리오 엘리먼트를 실행하여, 조건식을 검사하고, 조건식에 따라 실행에 대해 제어한다(S606).
시나리오 엘리먼트가 제어문이 아니면, 개별 시나리오 엘리먼트를 실행하고(S607), 액션을 실행한다(S608). 개별 시나리오 엘리먼트는 사용자의 이동이나 이동된 위치에서의 개별 액션을 나타나게 되는데, 이러한 행동들은 미리 가상 유저 시스템에서 액션으로 정의되어 있다. 가상 유저 시스템의 액션은 시간 규약과 실제로 게임 서버로 전송해야 할 게임 프로토콜 패킷에 대해 규약하고 있다. 액션이 종료되면(S609) 시나리오 엘리먼트가 종료되고, 리스트의 다음 엘리먼트가 실행된다(S610).
이상 본 발명의 특정 실시예를 도시하고 설명하였으나, 본 발명의 기술사상은 첨부된 도면과 상기한 설명내용에 한정하지 않으며 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 형태의 변형이 가능함은 이 분야의 통상의 지식을 가진 자에게는 자명한 사실이며, 이러한 형태의 변형은, 본 발명의 정신에 위배되지 않는 범위 내에서 본 발명의 특허청구범위에 속한다고 볼 것이다.

Claims (12)

  1. 서버와 클라이언트 간의 패킷을 캡처하고 분석하여 가상 맵 및 게임 문법을 생성하는 패킷 분석부;
    상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 시나리오 생성부; 및
    상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 부하 발생부를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  2. 청구항 1에 있어서,
    상기 시나리오 생성부는,
    상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  3. 청구항 1에 있어서,
    상기 시나리오 생성부는,
    상기 시나리오를 텍스트 스크립트 형태로 기술하여 생성하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  4. 청구항 1에 있어서,
    상기 시나리오는,
    반복적인 행동을 지원하기 위한 제어문을 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  5. 청구항 1에 있어서,
    상기 패킷 분석부는,
    상기 서버와 상기 클라이언트 간의 패킷을 캡처하는 패킷 캡처부;
    상기 패킷을 분석하여 가상 맵을 생성하는 가상 맵 생성부; 및
    상기 패킷을 분석하여 게임 문법을 생성하는 게임 문법 생성부를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  6. 청구항 5에 있어서,
    상기 게임 문법 생성부는,
    상기 서버와 상기 클라이언트 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타내는 프로토콜을 정의하는 프로토콜 정의부; 및
    상기 복수의 패킷 중에서 게임에 있어 수행되는 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 액션을 정의하는 액션 정의부를 포함하되,
    상기 프로토콜 및 상기 액션을 이용하여 상기 게임 문법을 생성하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  7. 청구항 1에 있어서,
    상기 부하 발생부는,
    상기 시나리오를 파싱하여 시나리오 엘리먼트의 리스트를 구성하고, 상기 시나리오 엘리먼트를 순차적으로 진행하는 상기 패킷 데이터를 생성하여 상기 부하를 발생시키는 시나리오 스케쥴러를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 장치.
  8. 서버와 클라이언트 간의 패킷을 캡처하는 단계;
    상기 패킷을 분석하여 가상 맵을 생성하는 단계;
    상기 패킷을 분석하여 게임 문법을 생성하는 단계;
    상기 가상 맵에서의 가상 유저의 시나리오를 생성하는 단계; 및
    상기 게임 문법 및 상기 시나리오에 따라 상기 가상 유저에 대응하는 패킷 데이터를 생성하여 부하를 발생시키는 단계를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 방법.
  9. 청구항 8에 있어서,
    상기 시나리오를 생성하는 단계는,
    상기 가상 유저의 상기 가상 맵에서의 위치와 상기 위치에 대한 행동을 정의하여 상기 시나리오를 생성하는 단계를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 방법.
  10. 청구항 8에 있어서,
    상기 시나리오를 생성하는 단계는,
    상기 시나리오를 텍스트 스크립트 형태로 기술하여 생성하는 단계를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 방법.
  11. 청구항 8에 있어서,
    상기 게임 문법을 생성하는 단계는,
    상기 서버와 상기 클라이언트 간의 복수의 패킷 중 개별 패킷에 대한 송수신 규약을 나타내는 프로토콜을 정의하는 단계;
    상기 복수의 패킷 중에서 게임에 있어 수행되는 하나의 단위 행동을 나타내는 일련의 패킷들을 묶어 액션을 정의하는 단계; 및
    상기 프로토콜 및 상기 액션을 이용하여 상기 게임 문법을 생성하는 단계를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 방법.
  12. 제8항에 있어서,
    상기 부하를 발생시키는 단계는,
    상기 시나리오를 파싱하여 시나리오 엘리먼트의 리스트를 구성하는 단계; 및
    상기 시나리오 엘리먼트를 순차적으로 진행하는 상기 패킷 데이터를 생성하여 상기 부하를 발생시키는 단계를 포함하는 것을 특징으로 하는 시나리오 기반 부하 테스트 방법.
KR1020100121560A 2010-12-01 2010-12-01 시나리오 기반 부하 테스트 장치 및 방법 KR20120060012A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100121560A KR20120060012A (ko) 2010-12-01 2010-12-01 시나리오 기반 부하 테스트 장치 및 방법
US13/242,711 US8556725B2 (en) 2010-12-01 2011-09-23 Scenario-based load testing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100121560A KR20120060012A (ko) 2010-12-01 2010-12-01 시나리오 기반 부하 테스트 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120060012A true KR20120060012A (ko) 2012-06-11

Family

ID=46162722

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100121560A KR20120060012A (ko) 2010-12-01 2010-12-01 시나리오 기반 부하 테스트 장치 및 방법

Country Status (2)

Country Link
US (1) US8556725B2 (ko)
KR (1) KR20120060012A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법
CN107480059A (zh) * 2017-08-03 2017-12-15 网易(杭州)网络有限公司 操作序列的获取方法、装置、存储介质、处理器和服务端
KR101978403B1 (ko) * 2019-01-28 2019-05-14 넷마블 주식회사 부하 발생 장치, 이의 동작 방법, 및 이를 포함하는 성능 테스트 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130065694A1 (en) * 2011-09-13 2013-03-14 Electronics And Telecommunications Research Institute Method for performance test of online game server
KR101891981B1 (ko) * 2011-10-07 2018-10-04 한국전자통신연구원 온라인 게임 패킷 분석 시스템 및 방법
JP6223617B1 (ja) * 2017-05-26 2017-11-01 株式会社テクテック 仮想地図表示システム、プログラム及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774902A (zh) * 2003-04-16 2006-05-17 索尼计算机娱乐公司 数据传输装置、数据传输方法、游戏机及游戏系统
KR100962532B1 (ko) 2007-12-18 2010-06-14 한국전자통신연구원 부하 테스트를 위한 패킷의 부하 재생성 시스템 및 그 방법
KR101269671B1 (ko) 2009-12-01 2013-05-30 한국전자통신연구원 게임 테스트를 위한 게임 문법 기반의 패킷 캡쳐 분석 장치 및 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법
CN107480059A (zh) * 2017-08-03 2017-12-15 网易(杭州)网络有限公司 操作序列的获取方法、装置、存储介质、处理器和服务端
CN107480059B (zh) * 2017-08-03 2021-01-26 网易(杭州)网络有限公司 操作序列的获取方法、装置、存储介质、处理器和服务端
KR101978403B1 (ko) * 2019-01-28 2019-05-14 넷마블 주식회사 부하 발생 장치, 이의 동작 방법, 및 이를 포함하는 성능 테스트 시스템

Also Published As

Publication number Publication date
US8556725B2 (en) 2013-10-15
US20120142424A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
US8396962B2 (en) Game grammar-based packet capture and analysis apparatus and method for conducting game test
KR101196522B1 (ko) 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법
KR100962532B1 (ko) 부하 테스트를 위한 패킷의 부하 재생성 시스템 및 그 방법
KR20120060012A (ko) 시나리오 기반 부하 테스트 장치 및 방법
KR101520056B1 (ko) 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법
CN105959177A (zh) 一种游戏服务器压力测试脚本的生成方法和装置
CN103475743B (zh) 一种用于云服务的方法、装置及系统
EP2421198A1 (en) User behavior based mobile broadband user plane traffic generation system and method for real-like measurement generation
KR20120070130A (ko) 가상 게임 클라이언트 생성 방법 및 그 장치
Alstad et al. Game network traffic simulation by a custom bot
CN110474900A (zh) 一种游戏协议测试方法及装置
KR101199485B1 (ko) 클라이언트/서버간 온라인 성능 테스트 방법 및 장치
Cho et al. Scenario-based approach for blackbox load testing of online game servers
KR20130037831A (ko) 온라인 게임 패킷 분석 시스템 및 방법
CN105760308A (zh) 多客户端协同测试方法和装置
KR100811468B1 (ko) 부하 테스트를 통한 서버 애플리케이션 안정성 검증 시스템및 방법
CN105446867B (zh) 一种测试数据的生成方法及装置
KR20130043572A (ko) 온라인 게임 서버의 성능 테스트 방법
KR20130017386A (ko) 게임 서버의 안정성 테스트 방법 및 장치
CN109985387B (zh) 自动化测试方法和装置
Alstad et al. Minecraft computer game performance analysis and network traffic emulation by a custom bot
Leng et al. Designing a testbed for large-scale distributed systems
CN113760518A (zh) 一种信息处理方法、装置及存储介质
McDonald et al. A new online tool for gamer network performance analysis
CN111600959A (zh) 一种内网客户端的测试数据生成方法及装置