Game > GameAnvil > 테스트 개발 가이드 > 시작하기

개요

GameHammer는 GameAnvil 엔진을 이용한 게임 서버 개발 뒤 사용할 수 있는 성능 및 기능 테스트 도구입니다. 실제 커넥터에서 제공하는 모든 기능을 똑같이 사용 하여 테스트 할 수 있으며, 스트레스 테스트를 위해 다수의 GameHammer를 동시에 실행하는 등으로 사용할 수 있습니다. 테스트 진행 중에 진행 상황을 확인하거나 테스트 최종 결과를 취합해 확인하고 저장할 수 있습니다.

  • 커넥터에 있는 모든 기능을 동일하게 지원
  • Sync/Async 방식 모두 지원
    • Async 방식의 API 제공
    • Sync 방식을 위한 future 제공
  • 수천 개 이상의 커넥션 동시에 사용 가능
  • 상태 기반의 시나리오 관리 기능 지원

이 가이드에서는 게임 헤머의 사용법을 상세한 예제와 함께 제공합니다. 서버 엔진과 동일하게 IntelliJ를 기준으로 사용 설명합니다.

지원 환경 및 프로토콜

지원하는 네트워크 프로토콜

  • TCP/IP
  • SSL over TCP/IP

사용 가능한 응용 프로토콜 형식

  • Google Protocol Buffers
  • 커스텀 바이트 스트림
  • HTTP/HTTPS(특정한 용도로 한정)

프로젝트에 GameHammer 디펜던시 추가

GameHammer는 GameAnvil과 마찬가지로 Maven을 통해 배포됩니다. pom.xml 파일의 dependencies 요소에 다음과 같이 추가하면 GameHammer를 사용할 수 있습니다.

<dependencies>
        <!-- GameHammer -->
        <dependency>
            <groupId>com.nhn.gameanvil</groupId>
            <artifactId>gamehammer</artifactId>
            <version>2.0.0-jdk11</version>
        </dependency>
<dependencies>

Maven으로 GameHammer jar 파일 생성하기

GameHammer를 이용해 테스트 시나리오를 작성한 뒤 GameAnvil 콘솔에서 테스트할 목적 등으로 jar 파일을 생성할 수 있습니다.

GameHammer를 추가한 프로젝트의 pom.xml이 있는 디렉터리에서 아래 명령어를 실행합니다.

mvn package

명령어 실행 후, 빌드 과정이 출력되고 마지막으로 빌드에 성공했다는 메시지를 확인합니다. 아래와 같이 나오면 성공입니다.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.880 s
[INFO] Finished at: 2023-11-13T17:49:48+09:00
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0

새롭게 생성된 target 디렉터리 안에서 빌드된 파일을 확인할 수 있습니다.

불필요한 debug로그 제거 방법

GameHammer를 실행했을 때, 내부 라이브러리 관련 DEBUG레벨 로그가 발생할 수 있습니다. 동작에는 이상이 없으나, 이러한 로그를 제거하고 싶을 때에는 VMOption에 아래 항목을 추가해 주세요.

-Dio.netty.tryReflectionSetAccessible=true
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/jdk.internal.misc=ALL-UNNAMED
TOP