이런식으로 HTTP Header Manager에 원하는 값을 넣어서 request의 헤더값을 지정 할 수 있다.
내가 하던 프로젝트에서는 Jwt 로 유저를 구별하는데, 원하던 테스트는 1000명의 유저가 동시에 접근하는거다.
그렇다면 Header의 Authorization항목에 토큰값을 1000개를 준비해야 한다. 그걸 일일이 다 쓰는건 말이 안된다.
몇 개 안될 때는
이런식으로 넣어 줄 수 있겠지만....
그렇기에 있는 것이 JSR223 PreProcessor이다!!
이런 식으로 작성해준다면 요청을 보내기 전 User Defined Variables에 원하는 key, value를 넣어 준다.
참고로
${__evalVar(token${__threadNum})}
위의 Http Header Manager에서 Authorization 항목의 Value로 위와 같이 두었다. _threadNum은 요청을 보내는 스레드의 번호이다.
나는 테스트 할 때 1000개의 스레드를 열었으므로 _threadNum 1~ 1000 까지 순서대로 token1~1000값을 Authorization 항목에 넣어서 요청을 보낸다
결과값은 어떻게 텍스트로 추출하는가?
우선 이런식으로 JSON Extractor를 추가해서 응답으로 받는 Json의 값을 추출해 온다. 나는 response 에 겨우
{
"status" : "RIGHT"
}
이런 Json이 담겨져오기에 JSON Extractor를 하나만 작성해주었다.
그 후
위 사진과 같이 JSR223 PostProcessor 에 groovy코드를 넣어주면 알아서 파싱해서 파일로 저장해준다!!!
1000명이 100개의 티켓을 획득하려 할 때 생기는 동시성 문제를 Redis의 원자적 연산을 이용해서 잘 처리해준 결과이다!!
100명만 Right를 반환반고, 나머지는 퀴즈가 마감되었기에 End를 반환받는다!!!
'Spring boot' 카테고리의 다른 글
Jmeter 사용법!! (Mac OS brew로 설치) (0) | 2024.08.20 |
---|---|
Spring 인터페이스의 구현체가 여러 개일 때 (0) | 2024.08.10 |
JWT 이란? (0) | 2024.08.10 |
RedisTemplate.opsForValue().decremet() (0) | 2024.08.06 |
Spring Redis 분산 락 사용법 (0) | 2024.08.05 |