[Jmeter]
아파치(Apache)에서 개발한 성능 테스트 도구
Java 기반으로 동작해 GUI 를 통해 테스트 시나리오를 작성하고 테스트 결과를 시각적으로 볼 수 있다
다양한 프로토콜과 분산 테스트를 지원한다
[Mac OS 에서 설치방법]
1. 자바 설치확인
터미널에
java --version
검색해서 아무것도 안나오면 .. 설치하세요
2. Jmeter 다운로드 저는 홈브류로 설치했습니다
brew install jmeter
3. 실행
터미널에 jmeter (엔터)치면 실행됩니다
[테스트 시나리오]
- Test Plan (우클릭) → Add → Threads(Users)→ Thread Group 을 만듭니다
테스트 시나리오는 이렇다.
수량은 10개고, 10000명의 사용자가 들어올 것을 예상한다. 수량이 10개밖에 없기 때문에 엄청 빠르게 품절이 될 것이다. 그렇지만 요청 결과를 보기 위해? 딱 10건만 성공하는 것인지 보기 위해 60초로 설정했다
- Number of Threads(동시에 작업을 수행할 사용자 수, 몇명 들어올 예정일까요?) : 10000명의 사용자
- Ramp-up-period(seconds)(동시에 몇분동안 들어올까요?): 60초(1분동안)
- Loop Count(사용자가 몇번을 더 시도를 해볼까요?): 1번 반복한다
테스트를 하기 위해 회원 데이터를 넣어줄겁니다. 미리 준비한 CSV 파일을 넣어줍니다.
사용자 id만 가지고 요청을 보내려고 해요.. 이유는 ? 누가 보낸 요청인지 알기 위해서죠! 예약구매사이트에서는 필수!
- Test Plan (우클릭) → Add → ConfigElement→ CSV DataSetConfig 을 만듭니다
CSV 파일의 내용은 이렇게 되어있습니다.
user_id
1
2
3
4
5
....
10000
첫번째 줄에 user_id 가 있으니까
Variable Names(comma-delimited)에 user_id, 그 아래 Ignore first line에 변수 처리 해둔다
그리고 나서 주문 요청을 해야 하니까
Add → Sampler → HttpRequest 를 만들어 줍니다.
각자의 사정에 맞게 작성해줍니다
protocol : http, https 인지 작성하기
Server Name or IP : DNS 주소, 혹은 ip 주소, 저는 local 에서 테스트할 것이기 때문에 localhost 로 작성했습니다
Port Number: 보낼 포트 번호
이렇게 하고 실행시켜 보면 ?
: Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'text/plain;charset=UTF-8' is not supported]
라는 메세지를 만날 수 있는데, header 를 설정하지 않아서 그렇습니다.
만든 request(우클릭) → Add → Config Element → Http Header Manager 로 들어갑니다.
라이언 옆에 Add 추가하여
Content-Type application/json 적어줍시다
그리고 run 해준다면 엄청난 로그를 볼 수 있습니다! 결과는 WIL에 적을게요!
'DAITEM > 기술스텍 및 정리' 카테고리의 다른 글
[redis] 캐시(cache) 전략 (0) | 2024.05.20 |
---|