본문 바로가기

Spring boot

Jmeter 꿀팁

반응형

이런식으로 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를 반환받는다!!!

반응형