ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 성능 테스트. nGrinder
    BackEnd/Tests 2022. 2. 15. 21:46
    반응형

      nGrinder는 Naver에서 만든 스트레스 테스트용 플랫폼입니다. 스크립트 생성, 테스트 실행, 모니터링 및 결과 보고서 생성기를 동시에 실행할 수 있습니다.

     

    nGrinder 구성 요소

    • Controller: 테스터가 테스트 스크립트를 생성하고 테스트 실행을 구성할 수 있도록 하는 웹 애플리케이션
    • Agent: 부하를 생성하는 가상 사용자 생성기

     

    nGrinder 특징

    • Jython or Groovy 스크립트를 사용하여 테스트 시나리오를 생성하고 여러 에이전트를 사용하여 JVM에서 스트레스를 생성합니다.
    • 사용자 정의 라이브러리(jar, py, maven 종속성)로 테스트를 무제한 확장합니다.
    • 프로젝트 관리, 모니터링, 결과 관리 및 보고서 관리를 위한 웹 기반 인터페이스를 제공합니다.
    • 여러 테스트를 동시에 실행합니다. 사전 설치된 여러 에이전트를 할당하여 각 에이전트의 활용도를 최대화합니다.
    • 스크립트 관리를 위해 Subversion을 포함합니다.
    • 스트레스를 생성하는 에이전트와 스트레스를 받는 대상 머신의 상태를 모니터링할 수 있습니다.
    • 1억 명 이상의 사용자가 있는 거대한 시스템을 테스트하는 데 사용되는 입증된 솔루션입니다.

     

    nGrinder 설치

      nGrinder는 웹 애플리케이션(Controller)과 Java 애플리케이션(Agent, Monitor)의 조합입니다. 컨트롤러와 에이전트를 설치하려면 Oracle JDK 1.6+ 또는 OpenJDK 1.7+이 필요합니다. nGrinder는 에이전트 및 에이전트와 통신하기 위해 많은 포트를 사용합니다.

    • Agent: Any > Controller: 16001
    • Agent: Any > Controller: 12000 ~ 12000+ (동시 테스트)
    • Controller: Any > Monitor: 13243
    • Controller > Public user: 8080 (default)

     

    nGrinder 다운로드

    https://github.com/naver/ngrinder/releases

    ngrinder-controller-3.5.5-p1.war click

    nGrinder 실행

      nGrinder는 기본적으로 웹 서버 포트 8080을 사용합니다. 다른 포트를 사용하려면 --port port_number를 매개변수로 지정하면 됩니다.

    $ java -jar ngrinder-controller-3.5.5-p1.war --port 8082

      오류가 발생할 경우 다음 명령어로 nGrinder를 실행합니다. nGrinder는 SVNKit, maven, Jetty 웹서버, groovy, python과 같은 라이브러리가 매우 많기 때문에 매우 큰 PermGen 메모리가 필요합니다. PermGen 설정으로 nGrinder를 다시 실행합니다.

    $ java -XX:MaxPermSize=200m -jar ngrinder-controller-3.5.5-p1.war --port 8082

      터미널에 다음 로그가 표시되면 nGrinder 컨트롤러를 실행할 준비가 된 것입니다.

    Started NGrinderControllerStarter in 12.931 seconds (JVM running for 14.323)

      브라우저를 열고 http://localhost:8082/ 접속합니다.

     

    Agent 설치

      관리자로 로그인합니다. (admin / admin) 우측 상단 메뉴의 Download Agent를 클릭합니다.

      에이전트가 포함된 tar 아카이브 파일이 다운로드되면 압축해제를 합니다.

    $ tar xvf ngrinder-agent-3.5.5-p1-localhost.tar

     

    Agent 실행

    $ ./run_agent.sh
    • run_agent.sh # for linux / mac
    • run_agent_bg.sh # If you want to run it in the background for linux / mac
    • run_agent.bat # for windows

     

    Agent 중지

    • stop_agent.sh # for linux / mac
    • stop_agent.bat # for windows

    Controller에 Agent가 등록되었는지 확인합니다.

     

    API 테스트

    Quick Start에 테스트 할 API URL을 입력하고 [Start Test] 버튼을 클릭합니다.
    Test Configuration 후 [Clone and Start] Click

    • Agent: 기본적으로 시스템당 하나의 에이전트만 지원됩니다. 하나의 시스템에서 여러 에이전트를 실행하려면 일부 에이전트 옵션을 구성해야 합니다. 에이전트 구성 안내서 참조하시면 됩니다.
    • Vuser per agent: 에이전트별 가상사용자 수입니다. 애플리케이션 특성에 따라 지정합니다. 예) admin: 100 ~ 500, front serving: 1000 ~ 3000
    • script: Groovy or Jython script, [R4] 클릭하면 스크립트를 확인하고 수정할 수 있습니다.
    • Duration: 테스트를 수행할 시간을 지정합니다. 실제 운영 환경에서는 10분 이상 테스트를 수행합니다.
    • Enable Ramp-Up: 테스트를 수행할 때 점점 부하를 증가시킬지 체크합니다. 우측 콤보박스에서 Process or Thread로 설정이 가능합니다. Thread 설정 후 기본 설정 값을 사용합니다.

    Report

      Report를 보면 TPS가 4,016인 것을 확인할 수 있습니다. 이는 초당 약 4,000건의 Traffic을 처리할 수 있다는 의미입니다. 좌측의 Errors 건수가 존재하거나 우측 그래프에서 0으로 떨어지는 케이스가 존재한다면 좌측 하단의 Logs 압축 파일을 확인합니다.

     

    [참고정보]

    nGrinder

    nGrinder Installation Guide

    반응형

    'BackEnd > Tests' 카테고리의 다른 글

    기타 테스트. ETC  (0) 2022.02.19
    아키텍처 테스트. ArchUnit  (0) 2022.02.19
    운영 이슈 테스트. Chaos Monkey  (0) 2022.02.19
    성능 테스트. JMeter  (0) 2022.02.14

    댓글

Designed by Tistory.