'2025/02/19'에 해당되는 글 1건

728x90

먼저 token 인증을 할 환경을 구축해야 한다.

JWT 토큰 인증 환경 구성 이해하는데 시간이 좀 걸렸다. 이 부분은 필요하면 나중에 설명하겠다.

 

설명은 그림 위주로 설명을 할 것이다.

로그인 처리 없이 JMeter 부하테스트하는 것은 어렵지 않게 찾을 수 있다.

 

처음에는 Thread 숫자를 1로 놓고 확인해야 한다. Loop Count 도 1로 설정한다.

2번 Thread Group 이라는 명칭을 주의깊게 보자. 앞으로 반복되는 이미지에서 2번 위치에 표기되는 항목 명칭을 보면 이해가 빠르게 될 것이다.

 

Threads Group
- continue : 에러가 발생해도 테스트를 계속 진행
- Start Next Thread Loop : 현재 쓰레드의 루프를 종료하고 다음 루프를 시작
- Stop Thread : 에러가 발생한 쓰레드만 종료
- Stop Test Now : 현재 실행중인 모든 샘플러를 강제로 중지하고 테스트를 즉시 종료

 

목표

- HTTP 요청을 통해 로그인 API 호출
- JSON 응답에서 토큰 추출
- 추출된 토큰을 이후 요청에 활용할 수 있도록 저장

 

HTTP Request 추가하고, Name을 로그인으로 변경했다.

 

 

Path 에 도메인 주소를 적어줬다. Virtual Host 로 여러개 설정한 환경에서 테스트해보니 첫번째 URL을 인식하더라.

그래서 테스트하고 싶은 도메인을 상단으로 올리고 클라우드 서버를 재기동해줬다.

7번 항목은 loginView.php 에서는 RSA 암호화를 하고 jwtLoginChk.php 파일에서는 RSA 복호화를 한 다음에 로그인에 성공하면 jwt 토큰인증을 생성하도록 처리한다.

하지만 JMeter 에서 RSA 암호화 생성하고 로그인처리하는 것은 쉽지 않는 거 같아서 jwtLoginChk2.php 파일을 생성하고 RSA 복호화처리하는 부분을 주석처리하고 8번 userID, password 를 입력받아 토큰 생성을 하도록 임시 변통했다.

JMeter에서는 JavaScript를 직접 실행할 수 없으므로, 사전에 암호화된 값으로 요청해야 한다.

하지만 Java 코드로 RSA 암호화하는 방법이 있더라. 다른 언어를 같이 다뤄보지 않았으면 해결방법 찾기가 쉽지 않을 수 있다.

 

로그인 하위에 HTTP Header Manager 를 추가한다.

12번 항목에 나오는 사항은 실행을 했을 때 반환하는 결과를 보고 찾아서 입력하면 된다.

 

 

로그인 결과로 반환하는 JSON 메시지에서 토큰을 자동 추출하기 위한 과정이다.

 

JSON 응답에서 토큰 추출
   JSON Extractor 추가 (HTTP Request 하위에 추가)
    Names of created variables: authToken
    JSON Path expressions: $.token
    Match No: 1
    Default Value: NOT_FOUND

 

 

로그인 후 쿠키/세션 처리
  로그인 성공 시, 응답 헤더에 Set-Cookie가 포함될 수 있다.
  HTTP Cookie Manager를 추가하여 이후 요청에서도 쿠키를 유지해야 한다.

 

 

토큰이 잘 생성되고 있는지 확인하기 위해 View Results Tree 를 추가해준다.

 

 

 

 

JSON 응답 확인 및 토큰 추출
  View Results Tree에서 응답 확인
  JSON 응답이 오면 JSON Extractor 추가하여 $.token 값 추출

 

 

Debug Sampler 에서 값이 잘 추출되고 있는지 확인할 수 있다.

 

 

로그인 이후의 URL 에 접속 테스트 설정

 

 

 

 

 

 

Label: 요청했던 Request Sampler의 이름
Samples: 서버에 요청한 횟수
Average: 평균응답시간(ms)
Min: 최소응답시간(ms)
Max: 최대응답시간(ms
Std.Dev.: 표준편차 요청에 대한 응답시간이 일정하고 안정적인가를 확인한다. 값이 적을수록 안정적이다.
Error: Error율(%)
Throughput: 처리량( 초당 처리건수)
KB/sec: 처리량(초당 처리 KB)

728x90

'Web 프로그램 > JMeter' 카테고리의 다른 글

JMeter RSA 암호화 로그인 방법  (1) 2025.02.21
블로그 이미지

Link2Me

,