성능 테스트

JMeter JWT 토큰 필요한 API 테스트 방법

DevNona 2025. 2. 4. 23:30

 

스프링 프로젝트의 특정 API 성능 개선 과정에서 JMeter을 사용하려고 합니다.

대상 API가 로그인을 해야 테스트 가능하기 때문에 JMeter로 테스트 환경을 구성을 해보겠습니다.

JMeter 설치 및 이해

https://leeggmin.tistory.com/10

 

[JMeter] Apache JMeter를 이용한 간단한 성능 테스트

기존에 서비스하던 코드들을 리팩토링 하면서 문득 코드 리팩토링 후 과연 성능 차이가 있을까? 궁금해졌다. 많은 성능 테스트 Tool들이 있었는데 JMeter, nGrinder, k6.. 그 중 오랜기간 릴리즈 하고

leeggmin.tistory.com

JMeter 설치 및 기본적인 활용 방법에 대해 설명해주는 글입니다.

 

JMeter의 Thread Group에 있는 HTTP Request 샘플러가 있을 경우, 각 요청이 순차적으로 실행됩니다.  

로그인 HTTP Request 만들기

1. 로그인할 데이터 만들기

로그인을 위한 데이터를 만들어 줍니다. 저는 MySQL Export 기능으로 유저 테이블의 더미 데이터에서 유저 로그인 데이터를 CSV로 변환하겠습니다.

 

Thread Group을 우클릭하고 Add > Config Element > CSV Data Set Config 을 선택하여 동적 데이터를 넣어줍니다.

FileName에 데이터파일, Variable Names에 열별 데이터가 의미하는 변수명을 적습니다.

 

데이터는 HTTP Request의 Body Data에 ${변수명}으로 사용합니다.

 

2. HTTP Header 설정

JSON 형식의 데이터를 Body에 실어보내기 때문에 Header의 Content-Typeapplication/json으로 설정해야 합니다.

 

HTTP Request Sampler 우클릭 Add > Config Element > HTTP Header Manager 선택

이곳에 Content-Type,  application/json 을 입력합니다.

 

3. 응답 Header에서 JWT 추출

로그인 HTTP Request 를 우클릭 Add > Post Processors > Regular Expression Extractor 추가합니다.

  • Response Headers 선택
  • 추출된 값을 저장할 변수 이름으로 JwtToken 지정
  • JWT 토큰 추출하기 위한 정규 표현식 지정 - Authorization : (Bearer .+)
  • 정규식의 첫 번째 캡처 그룹을 사용함을 의미 - $1$
  • 정규식과 매칭된 값 중 몇 번째 매치를 추출할지 지정 - 1

JWT 헤더에 삽입

JWT이 필요한 HTTP Request에 HTTP Header Manager에 위에 작성한 변수를 사용하면 됩니다.

 

HTTP Header Manager 설정 후 JMeter를 실행시키면 요청 헤더에 토큰이 정상적으로 들어간 것을 확인할 수 있습니다.