nGrinder 간편 사용가이드

nGrinder란

nGrinder는 부하테스트를 위한 플랫폼으로 웹 애플리케이션 Controller와 자바 애플리케이션 Agent로 구성 되어있다.

nGrinder Controller

  • 웹 애플리케이션으로 스크립트를 설정하여 성능테스트를 하게하는 도구이다.

nGrinder agent

  • 가상 유저 생성자로 실제 부하를 주는 클라이언트이다.

설치

선행 조건

  • nGrinder의 Controller와 agent를 설치하기 위해선 Oracle JDK 1.6 이상 혹은 OpenJDK 1.7 이상이 필요하다.
  • nGrinder는 agent간 통신을 위해 여러 포트를 사용한다. 아래의 포트들이 방화벽에 걸리지 않는지 확인이 필요하다.
    • Agent: Any ==> Controller: 16001
    • Agent: Any ==> Controller: 12000 ~ 12000+(동시 테스트 허용수만큼)
    • Controller: Any ==> Monitor: 13243
    • Controller ==> Public user: 톰캣설정에 따르지만 기본은 8080이다.

다운로드

Controller 설치

  • 다운받은 WAR파일을 ${TOMCAT_HOME}/webapps 하위에 위치 시킨다. /ngrinder-controller 경로를 제외하고 싶다면 WAR파일명을 ROOT.war로 변경한다.
  • 메모리 설정을 상향 조절한다. catalina.sh 상단에 아래의 내용을 추가한다.

    1
    JAVA_OPTS="-Xms600m -Xmx1024m -XX:MaxPermSize=200m"
  • 톰캣 실행, ${TOMCAT_HOME}/startup.sh 후 http://localhost:8080/ngrinder-controller-X.X 로 접속한다.

Agent 설치

  • nGrinder 3.3 이후로는 Agent를 Controller에서 받는다.
  • http://localhost:8080/ngrinder-controller-X.X에 접속후, 로그인한다. 로그인 아이디와 비번은 동일하게 admin 이다.
  • 우측 상단 메뉴에서 Download Agent를 클릭한다.
  • Agent 압축을 푼다.

    1
    tar xzf ngrinder-agent-3.4.2-localhost.tar
  • nGrinder 3.3 이후로는 연결된 Agent는 Controller에 의해 자동적으로 승인된다(Agent 시작후 Controller에서 바로 사용할 수 있음을 의미한다)

  • Agent를 실행한다.
    1
    2
    3
    4
    5
    # Agent 실행
    ./run_agent.sh

    # Agent 백그라운드 실행
    ./run_agent_bg.sh

Quick Start

  • Controller 접속 후 로그인 (아이디/비번 : admin 동일)
    Login
  • Quick Start는 테스트를 만들기 편리한 방법이다. 테스트할 URL을 입력만 하면 테스트 스크립트가 자동적으로 생성된다.

설정 페이지

Config

  • Agent: Agent수, Controller에 연결승인된 수만큼까지만 지정할 수 있다.
  • Vuser per agent: Agent당 가상 유저수, Process와 Thread로 구성한다.
  • Script: 테스트할 스크립트
  • Target Host: 테스트 대상 호스트
  • Duration: 테스트할 시간
  • Run Count: 테스트 실행 횟수(각 Thread당으로 전체 실행 횟수는 Vuser per agent를 곱한 값이다)
  • Enable Ramp-Up: 트래픽을 서서히 증가하게하는 설정

테스트 실행

RunTest

  • Save and Start 클릭시 테스트 실행

결과 화면

TestResult

  • Total Vusers: Vusers 수
  • TPS: 평균 TPS
  • Peak TPS: 최고 TPS
  • Mean Test Time: 평균 테스트시간
  • Executed Tests: 테스트 실행 횟수
  • Successful Tests: 테스트 성공 횟수
  • Errors: 에러 횟수
  • Run time: 테스트 실행시간

Reference : nGrinder README