[TIL] 23.04.11 JMeter를 이용한 성능테스트 ( TPS 지표로 Saturation Point 기준)

hyewon jeong·2023년 4월 11일
0

TIL

목록 보기
117/138
post-thumbnail

JMeter 를 이용한 성능테스트

테스트 전 진행 순서

1) 전체조회를 대상으로 성능이 좋지 않은 것으로 예상되는 API를 테스트 대상 선정하기
1-1) API 명세서보고 리스트 추리기
1-2) 테스트 시나리오 짜기- 전체조회 했을 때의 테스트 최대치
2) TPS - 점차적 스레드수를 늘려가면서 Saturation Point 지점 찾기

⭐️⭐️ 목표 ⭐️⭐️

동시 접속시 이서버의 최대치가 어느지점인가를 찾는 테스트

📌 한마디로 전체조회에서 요청이 많을것 같은 API (동시 요청시)

시나리오 예 )

  • 전체조회만했을때의테스트 최대치랑
  • 누군가 글작성해서 추가되면서 하는 전체조회 비교/(캐싱이 계속 새롭게 되기 때문) 일단 보류

1. ⚡️전체조회를 대상으로 성능이 좋지 않은 것으로 예상되는 API를 테스트 대상 선정하기

1-1. API 명세서보고 리스트 추리기

GET방식

APIURL
자유게시판 게시글 조회/freeboard/allboard
오운완 게시글 조회/t-exercise/allboard
오먹 게시글 조회/todaymeal/allboard
헬스장 전체 조회/api/gym/all
트레이너 조회/api/trainers/{id}
  • 선택조회를 제외한 이유 : 변경사항이 없는 한 선택조회는 캐싱에 들어가서 빨리 처리 됨

<빈도가 적은 API List>
|등록한 헬스장 전체 조회| /api/gym/owner/myposts |
| FAQ 전체 조회| /api/faqs/check |
| 문의 전체 조회| /api/contact/inquiries |
| 공지사항 전체 조회 | /api/managers/notices/check |
| 매니저 가입대기자 조회| /api/manager/standby|

테스팅 조건

  1. Jmeter를 활용하여 테스트를 진행
  2. 동시 접속자수를 5000 > 8000 > 7000 > 6000 > 5100 > 5050 기준으로 늘려가며 서버가 어디까지 견디는지 확인
  3. TPS 및 결과뷰를 통해 결과값을 분석하기

1-2. 테스트 실행

1-2-1. 자유게시판 게시글 조회 (/freeboard/allboard )

1) 전체 조회 만했을때의 테스트 최대치

조건 1.
Number of Threads (users) :5000 명의 사용자
Ramp-up period (seconds) : 1초 (예) 10명의 사용자가 10번의 반복적 수행을 1초안에 완료)
Loop Count : 1번의 반복적 수행
->5000요청

  • 조건1 Aggregate Graph 결과 : Average 909 / Error율이 0.00% 성공

조건 2.
Number of Threads (users) :8000명의 사용자
Ramp-up period (seconds) : 1초
Loop Count : 1번의 반복적 수행
-> 요청 8000

조건2 Aggregate Graph 결과 : Shutting test down 5118 /Average 725 / Error율이 0.00% 성공 / 처리시간 : 4초 / 최대 TPS 1855

조건 3.
Number of Threads (users) :7000명의 사용자
Ramp-up period (seconds) : 1초
Loop Count : 1번의 반복적 수행
-> 요청 7000

조건3 Aggregate Graph 결과 : Shutting test down 5024 /Average 834 / Error율이 0.00% 성공 / 처리시간 : 5초 / 최대 TPS 3289

조건 4.
Number of Threads (users) :6000명의 사용자
Ramp-up period (seconds) : 1초
Loop Count : 1번의 반복적 수행
-> 요청 6000

조건4의 Aggregate Graph 결과 : Shutting test down 5823 /Average 657 / Error율이 0.00% 성공 / 처리시간 : 4초 / 최대 TPS 2413

조건 5.
Number of Threads (users) :5100명의 사용자
Ramp-up period (seconds) : 1초
Loop Count : 1번의 반복적 수행
-> 요청 5100

조건5의 Aggregate Graph 결과 : Average 673/ Error율이 0.02% 실패/ 처리시간 : 4초 / 최대 TPS 2594

조건 6.
Number of Threads (users) :5050명의 사용자
Ramp-up period (seconds) : 1초
Loop Count : 1번의 반복적 수행
-> 요청 5050

조건6의 Aggregate Graph 결과 : Average 533 / Error율이 0.00% 성공 / 처리시간 : 3초 / 최대 TPS 2003

https://velog.io/@choiyunh/Jmeter%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-TPS-%EC%B8%A1%EC%A0%95-%EB%B0%8F-%EA%B0%9C%EC%84%A0

profile
개발자꿈나무

0개의 댓글