IT기술

[Linux] Ngrinder 설치 및 테스트 Guide

POST IT 2022. 2. 23. 18:04

*본 과정은 Linux(Ubuntu 20.04.4 LTS) 환경에서 설치 및 테스트 환경을 구축한 것이기 때문에 타 OS에서 진행할 경우 과정이 상이할 수 있습니다.

 

 

 

Ngrinder 사용을 위해선 java 기반이기 때문에 버전 확인을 통해 설치 유/무를 확인합니다.

 

$ java -version

 

 

저의 경우 java가 설치되어있지않아 java 설치를 위해 아래의 명령을 입력하여 설치를 진행하였습니다.

 

 

$ sudo apt insatll openjdk-11-jre-headless

 

설치 후 java version을 다시 확인합니다.

 

$ java -version
openjdk version "11.0.13" 2021-10-19

 

java가 설치된 것이 확인되었다면 ngrinder 설치를 위해 아래의 명령을 실행합니다.

 

 

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

 

Releases · naver/ngrinder

enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.

github.com

(본인의 경우 ngrinder 3.5.3 버전으로 설치 하였으며, 상기 링크에 릴리즈된 최신 버전을 사용해도 괜찮습니다.)

 

$ wget https://github.com/naver/ngrinder/releases/download/ngrinder-3.5.3-20201127/ngrinder-controller-3.5.3.war

 

내려받은 war 파일을 실행합니다.

(Admin Web을 서비스할 포트를 지정하는 것이며 변경이 가능하므로 저의 경우 8080포트로 하였습니다.)

 

$ java -jar ngrinder-controller-3.5.3.war --port=8080

 

허나 실행 시 다른 동작이 불가하므로 백그라운드 실행을 위해서

아래의 명령을 실행하여 새로운 스크린 세션을 생성합니다.

$ screen -S NgrinderController (NgrinderController = Session Name)

 

생성된 세션에서 아래 명령을 다시 입력후 Ctrl + A + D를 입력시 세션이 닫히며, 해당 스크린에서 백그라운드로 동작하게 됩니다.

$ java -jar ngrinder-controller-3.5.3.war --port=8080

 

웹브라우저에서 본인의 IP + 설정한 포트를 입력하여 관리 페이지에 접속 합니다.

 

ex. localhost:8080

 

 

(최초 로그인시 ID/Passwd는admin/admin입니다.)

 

로그인 후 상단의 Script를 클릭한 후, Create - Create Script를 클릭하여 테스트할 새로운 스크립트를 작성합니다.

 

 

생성한 스크립트에서 수정 사항이 있는 경우 Validate를 클릭한 후, Save/Close를 클릭하여 스크립트 수정 화면에서 나갑니다.

 

 

스크립트가 생성 되었는지 확인 합니다.

 

gitconfig.yml의 경우 최초에 기본으로 등록 되어있음

 

에이전트를 다운로드 할 차례입니다.

아래의 명령을 입력하거나 혹은 관리 페이지의 admin - Download Agent를 클릭하여 다운로드 받을 수 있습니다.

 

$ wget http://localhost:8080/agent/download/ngrinder-agent-3.5.3-localhost.tar

 

다운로드 받은 에이전트 압축 파일의 압축을 해제 합니다.

 

tar -xvf ngrinder-agent-3.5.3-localhost.tar

 

압축을 해제한 후 ngrinder-agent 폴더로 이동하여 아래의 명령을 입력합니다.

 

$ ./run_agent.sh
or
$ ./run_agent_bg.sh(백그라운드 실행 시)
 

* Ngrinder의 구성요소 알고가기

 

- Controller : 부하 테스트를 위한 웹 인터페이스를 제공하며, 테스트 결과를 통계로 보여주고 Agent에게 부하에 대한 일을 시키는 역할을 합니다.

 

- Agent : Controller에 연결되어 Target Sever에 가상 사용자들이 접근하도록 일을 시키는 역할을 합니다. 

(에이전트의 경우 다른 서버에도 설치하여 동시에 부하를 줄 수 있습니다.)

               

- Target Server : 테스트할 대상 서버입니다.

 

 

 

관리 웹페이지의 admin - Agent Management에서 실행되어있는 에이전트에 대해 Approved/Disapproved 할수있습니다.

 

 

Performance Test - Create Test를 하여 Test를 작성합니다. 

 

 

Agent : Controller에 연결 승인된 수만큼 까지만 지정을 할 수 있습니다.

Vueser per agent : agent당 가상 유저수입니다. process, thread로 구성이 되어있고 수정이 가능합니다.

(기본값은 3000까지 설정 가능한것으로 되어있으나, System Configuration에서 주석 제거 후 설정할 최대 가상 유저 수를 늘릴 수 있습니다.)

Script: 저희가 만든 Script 설정에 대한 부분입니다. 

Target Host : 부하를 일으킬 호스트입니다.

Duration : 테스트를 진행할 시간입니다.

Run Count : 테스트를 실행할 횟수입니다. 한마디로 각 가상 유저가 몇 번을 부하를 일으킬지 설정하는 부분입니다.

Enable Rampe-Up : 트래픽을 서서히 증가하게 하는 설정입니다. 

 

 

 

 

설정이 완료되었다면, Save And Start를 클릭하여 실행합니다.

(Run Now를 실행시 바로 시작, Schedul을 통해 실행도 가능합니다.)

 

정상적으로 실행된 경우 The test is going to start soon이라는 문구가 확인 됩니다.

 

추가적으로 아래의 폴더로 이동한 후 tail 명령어를 통해 log 파일을 확인 시 에이전트 실행을 모니터링 할수 있습니다.

 

$ cd .ngrinder_agent/logs
$ tail -f agent.log

 

 

'IT기술' 카테고리의 다른 글

GitHub 커밋&푸쉬 CMD 사용법  (0) 2023.08.18
JAVA_HOME 환경변수 설정  (0) 2022.03.24