[Test] JMeter - 성능 테스트

홍정완·2022년 8월 24일
0

Java

목록 보기
23/25
post-thumbnail

💡 성능 측정 및 부하 테스트 기능을 제공하는 오픈 소스 자바 애플리케이션

jmeter.apache.org


Apache 재단의 오픈소스 라이브러리인 JMeter는 다음과 같은 테스트 방식을 지원한다.

  • 웹 - http, https
  • SOAP, REST 웹 서비스
  • FTP
  • LDAP
  • Mail(SMTP, POP3, IMAP)
  • 데이터 베이스(JDBC 사용)

JMeterMulti-Threading으로 부하 테스트도 가능하고, 시나리오대로 트래픽을 발생시켜서 시나리오 테스트도 가능하다. 또한 CLI도 지원하기 때문에 CI/CD를 연동하기도 편리하고 UI를 사용하는 것보다 메모리나 시스템 리소스를 적게 사용한다.



주요 개념

  • Thread Group : 한 스레드에 유저 한 명
    • 유저 그룹으로 동시에 여러 유저가 요청을 보내는 경우 세팅 가능
  • Sampler : 임의의 유저가 어떤 액션을 해야 하는가에 대해서 나타낸다.
  • Listener : 요청에 대한 응답을 보고 응답 하나하나의 시간을 계산하거나 응답들을 조합해 그래프를 그린다.
  • Configuration : Sampler나 Listener가 사용할 설정값(쿠키, JDBC 커넥션 등)
  • Assertion : 응답을 받았을 때 해당 응답이 성공적인지 확인하는 방법을 제공한다.(응답 코드, 본문 내용 등)



JMeter 설치


Windows 기준

jmeter.apache.org/download_jmeter.cgi

  • 위 사이트에서 jmeter 다운로드 및 압축 해제

  • Binaries

    • apache-jmeter-5.x.zip sha512 pgp

  • 압축 해제된 폴더/bin/jmeter 실행



Mac 기준

  • brew를 이용해 jmeter 설치
$ brew install jmeter
  • 설치한 jmeter 실행
$ open /usr/local/bin/jmeter



JMeter 사용


설치까지 끝났다면 이제 지금까지 만든 프로젝트와 Jmeter를 이용해서 실제로 사용을 해보자.



Previous

  • 테스트할 프로젝트를 실행해서 API를 응답할 수 있는 상태로 만든다.

    • 이번 포스팅은 HTTP Request 테스트를 기준으로 작성하며 만약 다른 부분을 테스트해야한다면 Sampler부터 변경해서 만들어주면 된다.

사전 데이터 준비

  • Postman 사용



Thread Group 만들어보기

JMeter에서 Thread Group 생성


테스트할 스레드 및 반복 횟수 설정

  • Number of Threads : 스레드 개수

  • Ramp-up period : 스레드 개수를 만드는 데 소요할 시간

  • Loop Count : 반복 횟수.

    • infinite 항목을 체크하면 위에 선언한 스레드 개수로 무한정 요청한다.

Sampler 만들기

✅ 이번 포스팅은 HTTP API 테스트를 기준으로 작성하기에 HTTP Request Sampler를 만들지만 만약 다른 것을 테스트할 예정이라면 목적에 맞는 Sampler를 선택하면 된다.


Sampler 설정

  • Protocol : HTTP, HTTPS 프로토콜

  • Server Name or IP : 테스트할 API의 호스트명 혹은 IP 주소

  • Port Number : 포트 번호

  • HTTP Request

    • GET : HTTP 메서드 선택 GET 외에도 POST, DELETE, PUT 등 다양한 메서드 제공
    • PATH : 테스트할 API Path 여기서는 스터디 조회를 할 것이다.
  • Parameters, Body Data, Files Upload
    : QueryString으로 파라미터를 보내거나, MessageBody를 직접 입력하거나 파일 업로드를 할 수도 있다.


Listener 만들기

다양한 테스트 결과 리스너를 만들 수 있다. 내가 보고자 하는 형태의 리스너를 선택해 확인하면 된다.
리스너는 단일 선택이 아니기에 여러 리스너를 추가해서 확인할 수도 있다.


Listener 결과 확인

테스트를 실행시켜보면 다음과 같이 API 요청에 대해서 요청 시간, 프로토콜, 응답 결과 등 각종 데이터들을 종합해서 Listen 해주고 볼 수 있다.


CLI 사용하기

JMeter의 테스트를 최초 실행 시에는 xxx.jmx 파일을 저장하라고 하는데, 이 파일을 이용해 CLI로 사용할 수가 있다.

profile
습관이 전부다.

0개의 댓글