Apache JMeter를 이용한 API 테스트
Apache JMeter를 이용하여 API를 간단하게 테스트해보자.
백엔드 개발을 하다보면 최소한 내가만든 API에 대한 검수는 반드시 필요하게 된다. API를 테스트하는 도구는 여러가지가 있는데 개인적으로는 JMeter를 즐겨 사용하는 편이다.
Window 프로그램으로 저장된 파일로 테스트케이스를 관리할 수 있고 부하테스트 또한 쉽게 처리할 수 있기 때문이다.
여기에서는 API에 대한 Test Case를 작성하여 간단한 사용법을 메모한다.
이외에도 API 테스트를 위한 방법으로는 Swagger, JUnit, PostMan, Ngrinder, CRUL 등 다양한 방법을 활용할 수 있다.
JMeter 실행 (Window)
JMeter는 Java기반으로 만들어진 프로그램이라 Java가 기본적으로 설치되어 있어야 사용이 가능하다. (설치 과정 생략) JMeter 홈페이지에서 바이너리 zip 파일을 다운받아 적당한 경로에 압축을 풀고, jmeterw 응용 프로그램을 실행하면 설치없이 실행이 된다.
실행 화면
처음 실행한 화면은 다음과 같다. 여기에서 원하는 테스트 도구들를 직접 생성해주어야 한다.
우선 다음과 같이 Test Plan을 클릭하여 Thread Group을 추가해주자.
Thread Group 추가 후 선택해 보면 Thread에 대한 설정을 할 수 있는데, 각각 항목은 다음과 같다.
이름 | 설명 |
Number of Threads | 쓰레드 갯수 |
Ramp-up period (seconds) | 쓰레드 갯수 생성에 걸리는 시간 ( 쓰레드 10개, 50초 일 경우 5초마다 1개의 쓰레드를 생성한다.) |
Loop Count | 반복 횟수 |
쓰레드 그룹을 생성했으니 테스트를 위한 Http Request 케이스 하나를 생성해보자.
Http Request 항목을 보면 메뉴 항목들이 직관적으로 잘 표현된 것을 알 수 있다.
하단 탭에 Parameter / Body Data / File Upload는 각각 RequestParam/ RequestBody/ Multipart-formdata 데이터를 전송할 때 사용하면 된다.
Content-type, Authorization과 같은 쿠키/헤더의 경우 Add > config Element > Http Header/Cookie Manager를 통해 추가하여 사용한다.
다음은 결과를 보는 패널을 추가해보자.
아래와 같이 Tree 형태의 결과를 리스트로 볼 수 있다. 오류가 난 케이스의 경우 빨간 텍스트로 표기된다.
빨갛게 네모로 표현한 부분은 Test Plan 항목들을 enable/disable 하는 기능인데, 사용 또는 테스트하지 않을 항목을 disable 처리할 때 사용한다.
View Result Table로 추가한 경우 그리드 형태로 결과를 확인할 수 있다.
이제 테스트 결과를 막대 그래프로 확인하기 위해 Aggregate Graph를 추가해보자.
여기에선 다양한 Setting 옵션을 통해 그래프를 표현할 수 있다. 항목을 추가 후 실행하면 Graph 탭에 막대 그래프가 표기된다.
Graph Result를 활용하면 간단한 선 그래프로도 확인할 수 있다.
Listener에 다양한 Result 항목들을 직접 추가해보자
여기까지 간단하게 API를 테스트하는 방법을 알아보았다.