이것저것

nGrinder

재심 2023. 4. 8. 15:31

목차

    [Github]

    https://github.com/naver/ngrinder

     

    [Windows에 Controller 구성하기]

    https://darozzang.tistory.com/entry/window%EC%97%90%EC%84%9C-nGrinder-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%8B%A4%ED%96%89

     

    [전제조건]

    java 1.8이상 설치되어있는 것이 좋음

    아래 명령어로 확인

     

    [Controller 설치]

    https://github.com/naver/ngrinder/releases경로에서 war 파일 다운로드 

    Window에서 cmd창 켜고 다운받은 경로에서 아래 커맨드로 실행

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

    실행 완료 후 브라우저에서 정상로드 확인 (초기 접속계정 admin/admin)

     

    [Linux에 Agent 구성하기]

    Agent 설치

    Window UI 우측 상단에서 agent 다운로드 클릭 (프록시 설정 필요)

    tar파일이 다운될텐데 이 파일을 Linux 서버로 옮겨준다. (WinScp 사용해서 옮김)

     

     

    서버접속하여 agent 실행 (Ubuntu 기준)

    # 압축풀기
    $ tar -xvf ngrinder-agent-3.5.5.tar
     
    $ cd ngrinder-agent
    $ sudo vim __agent.conf
     
    # agent.controller_host에 Controller서버의 호스트명을 적어준다.
    agent.controller_host={host_server}
     
    # 실행
    $ ./run-agent.sh
     
    #아래처럼 나오면 성공
     
    ...
    -5.0.3.jar:/home/kafka/ngrinder-agent/lib/asm-9.0.jar:/home/kafka/ngrinder-agent/lib/groovy-datetime-3.0.5.jar:/home/kafka/ngrinder-agent/lib/grinder-httpclient-3.9.1.jar:/home/kafka/ngrinder-agent/lib/httpcore5-5.0.3.jar:/home/kafka/ngrinder-agent/lib/grinder-dcr-agent-3.9.1.jar:/home/kafka/ngrinder-agent/lib/groovy-templates-3.0.5.jar:/home/kafka/ngrinder-agent/lib/grinder-core-3.9.1.jar:/home/kafka/ngrinder-agent/lib/groovy-3.0.5.jar:/home/kafka/ngrinder-agent/lib/junit-4.13.1.jar:/home/kafka/ngrinder-agent/lib/commons-io-2.6.jar:/home/kafka/ngrinder-agent/lib/grinder-http-3.9.1.jar:/home/kafka/ngrinder-agent/lib/picocontainer-2.13.6.jar:/home/kafka/ngrinder-agent/lib/logback-core-1.2.3.jar:/home/kafka/ngrinder-agent/lib/dnsjava-3.2.2.jar:/home/kafka/ngrinder-agent/lib/ngrinder-runtime-3.5.5.jar:/home/kafka/ngrinder-agent/lib/jna-platform-5.6.0.jar:/home/kafka/ngrinder-agent/lib/logback-classic-1.2.3.jar:/home/kafka/ngrinder-agent/lib/commons-lang-2.6.jar:/home/kafka/ngrinder-agent/lib/slf4j-api-1.7.30.jar:/home/kafka/ngrinder-agent/lib/hamcrest-all-1.1.jar:/home/kafka/ngrinder-agent/lib/hamcrest-core-2.2.jar:/home/kafka/ngrinder-agent/lib/groovy-xml-3.0.5.jar' net.grinder.engine.process.WorkerProcessEntryPoint
    2022-01-17 14:18:05,948 INFO  agent daemon: worker worker-0 started
    2022-01-17 14:18:05,961 INFO  agent daemon: worker worker-1 started
    ...

    Controller Web UI에서 확인 (우측상단의 agent 관리) 

    [테스트 해보기]

    스크립트 작성

    Web UI - 스크립트 - 만들기 - 스크립트 만들기 

     

     

    테스트 작성

    Web UI - 성능 테스트 - 테스트 생성

    에이전트: 현재 등록된 에이전트 수만큼 가능

    에이전트별 사용자: 최대 3000까지 가능하고 계산식은 "프로세스 X 스레드 수"로 된다. 

    스트립트: 위에서 작성한 스크립트 사용

     

    MTT: 평균 테스트타임 (vuser수를 늘리면 MTT도 같이 늘어난다고 한다)

    MTFB: 평균 첫 번째 바이트 도달 시간. 이것을 Response Time으로 볼 수도 있다고 한다. 

    TPS 공식: vuser = agent * process * thread

    → 위 공식으로 볼 때 에이전트 10개, 프로세스10개, 스레드 300이라면 30,000 개의 vuser가 지속적으로 요청하는 상황이다. 그래서 30,000요청을 서버에서 1초미만으로 처리하면 TPS는 30000이상이나오고 2초이상걸리면 TPS는 15000이하가 된다. 

     

     

    [참조]

    https://darozzang.tistory.com/entry/window%EC%97%90%EC%84%9C-nGrinder-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%8B%A4%ED%96%89

     

    window에서 nGrinder 설치 및 실행

    윈도우에서 nGrinder 를 사용해보자 java 기반이라 java를 설치해야 한다. 꼭 어떤버전을 사용해야 한다는 내용은 찾아보기 귀찮고 집에 1.8버전이 설치되어 있기 때문에 그냥 진행을 하였다. 울집은

    darozzang.tistory.com

     

    '이것저것' 카테고리의 다른 글

    Intellij에서 google-java-style 적용하기  (0) 2024.05.31
    Ansible 설치하기  (0) 2023.04.15
    JMeter  (0) 2023.04.01
    Intellij 단축키 모음  (0) 2023.03.09
    MSA에서 Outbox Pattern에 대해  (0) 2022.11.20