[Test] nGrinder을 이용한 성능테스트

AMUD·2023년 11월 27일
0

🦓 설치

설치 방법은 다양하다.

  • 프로그램을 다운 받아서 직접 설치
  • Docker 명령어 설치
  • Docker Composer 파일로 설치
    나는 이 중에서 docker-composer.yml 파일을 작성하여 컨테이너 형태로 띄웠다.

docker-composer.yml 파일

version: '3.8'
services:
  controller:
    image: ngrinder/controller
    restart: always
    ports:
      - "9000:80"
      - "16001:16001"
      - "12000-12009:12000-12009"
    volumes:
      - ./ngrinder-controller:/opt/ngrinder-controller
  agent:
    image: ngrinder/agent
    restart: always
    links:
      - controller

이렇게 작성하면 최신 버전으로 실행할 수 있다. 그런데 현재 버전이 오류를 많이 초래한다는 카더라가 있어서 아래와 같이 3.5.5버전으로 낮춰서 실행하는 것을 추천한다.

version: '3.8'
services:
  controller:
    image: ngrinder/controller:3.5.5 // 버전 낮추기
    restart: always
    ports:
      - "9000:80"
      - "16001:16001"
      - "12000-12009:12000-12009"
    volumes:
      - ./ngrinder-controller:/opt/ngrinder-controller
  agent:
    image: ngrinder/agent:3.5.5
    restart: always
    links:
      - controller

🍍 실행

$ docker-composer up -d

백그라운드 옵션 (-d) 로 컨테이너 띄운다

🧁 접속

http://localhost:9000/login 또는 http://{인스턴스_IP_주소}:9000/login으로 접속한다.

성공적으로 접속하면 초기 ID/PW는 admin/admin 이다.

로그인까지 성공하면 이렇게 뜬다.

🍫 스크립트 작성


오른쪽 상단 메뉴에서 Agent Management를 클릭한다.


그럼 위 화면이 뜬다.


상단에 Script 클릭하면, 스크립트 목록을 확인할 수 있다.


Create버튼을 눌러서 뜨는 모달에서 성능 테스트할 API 주소를 입력한다. 어차피 다시 스크립트 다 수정할 수 있으니 대충 입력해도 된다.'


Create 누르면 스크립트가 자동으로 생성된다. 이제 이 스크립트가 Spring Boot의 테스트코드와 같이 API를 실행할 시나리오가 된다. 자동 생성되는 스크립트는 입력한 API에 대해 GET 요청을 보내는 스크립트이다.


오른쪽 위에 Validate를 눌러서 한 번 제대로 실행되어야 테스트가 실행되는데, 위처럼 ERROR가 뜨면 안된다. 기본 생성 스크립트 ERROR가 뜨면 이 포스팅 위쪽에서 언급했듯이 버전 문제일 확률이 높다. 다시 버전을 낮춰서 실행하는 것을 추천한다.


Validate를 눌렀을 때 이렇게 뜨면 스크립트가 제대로 실행될 준비가 되었다는 것이다.

🏩 테스트 실행


스크립트 작성이 완료되었다면 상단의 Performance Test를 클릭한다. 처음에는 테스트 목록이 없을 것이다. 오른쪽 상단의 Create Test를 클릭한다.


테스트를 생성하기 위한 페이지가 뜬다. 아까 생성한 스크립트를 선택한 뒤, 적당한 조건을 설정하여 오른쪽 상단의 Save and Start 버튼을 눌러 성능 테스트를 실행한다.


그러면 이렇게 테스트 결과를 확인할 수 있다. 여기서 TPS란 초당 트랜잭션 수 (Transactions Per Second)를 뜻한다. 주로 컴퓨터 시스템이나 데이터베이스 시스템의 성능을 측정하는 데 사용되는 지표 중 하나이고 시스템이 얼마나 많은 트랜잭션을 각 초에 처리할 수 있는지를 나타낸다.

그리고 실행한 테스트 횟수와 성공/실패 횟수를 확인할 수 있다.


이렇게 실패 횟수가 많을 때 왼쪽 하단의 log 알집에서 간단한 로그도 확인할 수 있다.

🦴 참고

nGrinder을 이용한 Spring Boot 부하 테스트

profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글