Apache JMeter를 이용하여 API를 간단하게 테스트해보자.


백엔드 개발을 하다보면 최소한 내가만든 API에 대한 검수는 반드시 필요하게 된다. API를 테스트하는 도구는 여러가지가 있는데 개인적으로는 JMeter를 즐겨 사용하는 편이다. Window 프로그램으로 저장된 파일로 테스트케이스를 관리할 수 있고 부하테스트 또한 쉽게 처리할 수 있기 때문이다.
여기에서는 API에 대한 Test Case를 작성하여 간단한 사용법을 메모한다.

이외에도 API 테스트를 위한 방법으로는 Swagger, JUnit, PostMan, Ngrinder, CRUL 등 다양한 방법을 활용할 수 있다.


JMeter 실행 (Window)

JMeter는 Java기반으로 만들어진 프로그램이라 Java가 기본적으로 설치되어 있어야 사용이 가능하다. (설치 과정 생략) JMeter 홈페이지에서 바이너리 zip 파일을 다운받아 적당한 경로에 압축을 풀고, jmeterw 응용 프로그램을 실행하면 설치없이 실행이 된다.

실행 화면

처음 실행한 화면은 다음과 같다. 여기에서 원하는 테스트 도구들를 직접 생성해주어야 한다.

그림1. 초기 실행화면

우선 다음과 같이 Test Plan을 클릭하여 Thread Group을 추가해주자.

그림2. Thread Group 추가

Thread Group 추가 후 선택해 보면 Thread에 대한 설정을 할 수 있는데, 각각 항목은 다음과 같다.

이름 설명
Number of Threads 쓰레드 갯수
Ramp-up period (seconds) 쓰레드 갯수 생성에 걸리는 시간 ( 쓰레드 10개, 50초 일 경우 5초마다 1개의 쓰레드를 생성한다.)
Loop Count 반복 횟수

그림3. Thread Group 화면

쓰레드 그룹을 생성했으니 테스트를 위한 Http Request 케이스 하나를 생성해보자.

그림4. Http Request 생성

Http Request 항목을 보면 메뉴 항목들이 직관적으로 잘 표현된 것을 알 수 있다.
하단 탭에 Parameter / Body Data / File Upload는 각각 RequestParam/ RequestBody/ Multipart-formdata 데이터를 전송할 때 사용하면 된다.

Content-type, Authorization과 같은 쿠키/헤더의 경우 Add > config Element > Http Header/Cookie Manager를 통해 추가하여 사용한다.

그림5. Http Request 화면

다음은 결과를 보는 패널을 추가해보자.

그림6. View Result Tree 생성

아래와 같이 Tree 형태의 결과를 리스트로 볼 수 있다. 오류가 난 케이스의 경우 빨간 텍스트로 표기된다.
빨갛게 네모로 표현한 부분은 Test Plan 항목들을 enable/disable 하는 기능인데, 사용 또는 테스트하지 않을 항목을 disable 처리할 때 사용한다.

View Result Table로 추가한 경우 그리드 형태로 결과를 확인할 수 있다.

그림7. 결과 트리 확인

이제 테스트 결과를 막대 그래프로 확인하기 위해 Aggregate Graph를 추가해보자.

그림8. Aggregate Graph

여기에선 다양한 Setting 옵션을 통해 그래프를 표현할 수 있다. 항목을 추가 후 실행하면 Graph 탭에 막대 그래프가 표기된다.

그림9. Aggregate Graph 상세

Graph Result를 활용하면 간단한 선 그래프로도 확인할 수 있다.

Listener에 다양한 Result 항목들을 직접 추가해보자

그림10. Graph Result 그래프 이미지


여기까지 간단하게 API를 테스트하는 방법을 알아보았다.

성능 테스트 관련해서 더 자세한 설명을 보려면 공식사이트정리된 사이트를 참조해보자