API 성능 테스트가 필요할 때 사용할 수 있는 여러 툴 중에서 JMeter를 이용한 테스트 방법에 대해서 정리한다.
JMeter에 대한 기본 개념과 설치 방법 및 테스트 방법에 대해서 알아보자.
JMeter 를 이용한 API 성능 테스트
JMeter?
JMeter는 Apache에서 개발한 오픈소스 성능 테스트 툴이다. 데이터가 많거나 응답 시간이 중요한 API에 경우에는 성능에 신경을 쓸 수 밖에 없는데 이떄 여러 사용자가 동시에 해당 API를 요청했을 때의 정보가 필요할 때가 있다. 이럴때 사용할 수 있는 것이 JMeter이다.
JMeter를 통해 사용자의 수를 설정하고 몇 초 간격으로 몇번을 반복하는 시뮬레이션 상황을 만들어 해당 API의 성능을 테스트 해볼 수 있다. JMeter는 JVM이 설치만 되어 있다면 어떤 환경에서든 구동이 가능하다. CLI를 통해서도 지원하고 GUI로도 지원을 한다. JMeter에 대해서 설치하는 방법과 사용하는 방법에 대해서 정리한다.
설치방법
터미널에 접속하여 brew를 통해 설치를 해준다.
또는 사이트에서 직접 설치도 가능하다.
https://jmeter.apache.org/download_jmeter.cgi
다운을 완료하였으면 다음 명령어를 통해서 실행 시켜준다.
이때 만약 JMeter GUI가 뜨지 않고 다음과 같은 창이 뜨고 멈춘다면 화면에 나와있듯이 omz update를 통해서 업데이트 후 실행하면 JMeter가 잘 실행될 것이다.
JMeter가 정상 실행되면 다음과 같이 GUI 화면이 뜬다.
테스트 방법
먼저 Test Plan 우클릭하여 Tread Group를 만들어 준다.
만든 그룹에서 옵션들을 설정해준다.
옵션들 중에서 테스트를 위해 Thread Properties를 설정해주어야 하는데 하나씩 알아보자.
Thread Properties
- Number of Threads (users) - 동시 접속자 수 a
- Ramp-Up Period (in seconds) - b초 마다 실행
- Loop Count - 실행 횟수 c (Forever는 무한)
아래처럼 5 1 1 (a=5 / b=1 / c=1) 로 설정을 했다면 동시의 사용자 5명이 1초마다 1번 실행하는 것과 같다.
만약 10 5 100 이라고 하면 동시의 사용자 10명이 5초 간격으로 실행하는 것을 100번 반복하는 것과 같다.
Loop Count 옆 체크박스인 Infinite를 활성화 시키면 무한으로 반복한다.
이렇게 기본그룹 설정을 마치고 쓰레드그룹 우클릭을 하여 HTTP Request를 생성해준다.
Http Request 에서는 테스트할 API의 정보를 입력해주는 곳이다. Protocol / IP / Port / Method / Path / Parameter 등을 API에 맞게 설정을 해준다.
이렇게 API 설정을 마쳤다면 결과를 받아서 보여줄 Listener를 만들어야 한다. 쓰레드 그룹 우클릭해서 이번에는 Listener에서
Summary Report를 생성해준다.
Summary Report에서는 해당 API 테스트에 대해서 얼마나 요청을 하였는지 평균응답시간, 최소 최대 응답 시간 등 성능테스트에 대한 여러 데이터를 제공해준다.
Summary Report 외에도 Listener에 보면 여러가지 설정들이 있는데 아래와 같이 응답 시간에 대해서 그래프로 보여주는 기능도 있고 그 외에 기능도 다양하니 하나씩 써보는 것을 추천한다.
이렇게 세팅이 끝났다면 Summary Report로 이동해서 아래보이는 이미지에서 초록색 시작버튼을 눌러주면 된다.
그러면 그룹에서 설정했던 값으로 API 테스트를 시작하게 된다.
'DevOps' 카테고리의 다른 글
Docker Compose를 통한 Kafka 환경 구성 및 Kafka Manager 구성 (2) (0) | 2022.11.29 |
---|---|
Docker Compose를 통한 Kafka 환경 구성 및 Kafka Manager 구성 (1) (0) | 2022.11.22 |
Jenkins - Build Periodically 옵션을 이용한 스케줄러 사용 방법 (0) | 2022.05.15 |
Nginx - 윈도우 명령어 정리 (0) | 2021.08.18 |
Nginx - Nginx와 Node.js 환경 서버 구성하기 (feat. Windows) (2) | 2021.06.25 |
댓글