Apache JMeter
Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다.
JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다.
비슷한 부하테스트 도구로는 Apache Benchmark, Ngrinder, Pinpoint, Gatling등이 있다.
Gatling
- 스칼라를 통해 테스트 스크립트를 생성하는 부하 테스트 도구이다.
- 비동기식 아키텍처로 가상 사용자를 스레드가 아닌 메시지로 생성해 수천 명의 동시 사용자 재현가능한 성능 좋은 테스트 도구이다.
- 분산 테스트 지원하지 않아 다 수의 컴퓨터를 통해 테스트 진행이 불가능하다.
JMeter
- GUI를 제공해 쉽게 사용해 볼 수 있다.
- 한 명의 가상 사용자를 하나의 스레드로 생성하여 동시성 제한이 있다.
- 여러 대의 컴퓨터를 통해 테스트하고 결과를 종합할 수 있다.(분산 테스트 지원)
nGrinder
- Jython, Groovy 스크립트를 활용해 테스트 시나리오를 작성 할 수 있다.
- 한 명의 가상 사용자를 하나의 스레드로 생성하여 동시성제한 있다.
- 여러 대의 컴퓨터를 통해 테스트하고 결과를 종합할 수 있다.(분산 테스트 지원)
- JMeter 선정 이유
- 타 테스트 도구들보다 참고할 수 있는 레퍼런스가 많다.
- JMeter는 상대적으로 간단한 사용자 인터페이스를 가지고 있고, 러닝 커브가 낮아 성능 테스트를 더 쉽게 시작할 수 있다.
- 테스트를 위해 GUI를 제공하는 동시에 사용자가 Java로 테스트 스크립트를 작성할 수 있다.
Number of Threads: 20 몇 개의 쓰레드(유저 수)로 테스트할 지
Ramp-up period: 30 {Number of Thread} 만큼의 쓰레드를 몇초에 걸쳐서 만들지
Loop Count: 40 요청을 몇번을 반복할 지 (설정된 값에 따라Number of Threads X Ramp-up period 만큼 요청을 다시 보낸다.)
총 10번의 요청. 평균(Average), 최소, 최대의 단위는 ms (미리세컨드)단위 평균 40ms의 응답시간, 최소 32ms, 최대 70ms
Label : Sampler 명
Samples : 샘플 실행 수 (Number of Threads X Ramp-up period)
Average : 평균 걸린 시간 (ms)
Min : 최소
Max : 최대S
td. Dev. : 표준편차
Error % : 에러율
Throughput : 분당 처리량
Received KB/sec : 초당 받은 데이터량
Sent KB/sec : 초당 보낸 데이터량
Avg. Bytes : 서버로부터 받은 데이터 평균오류 0%는 HTTP 응답 코드로 판단합니다. 예외에 해당하는 400번대 또는 500번대 응답이 없었음을 예상할 수 있습니다.
Authorization 입력하는 방법 + Body Content-type도 여기서 지정해줘야한다.
counter 설정을 해주면 지정한 starting부터 값을 자동으로 넣어준다.
'항해99 > 스터디' 카테고리의 다른 글
[스터디] 클린 코드 (0) | 2024.05.03 |
---|---|
[스터디] Refresh Token을 Redis에 저장하는 이유와 적용 방법 (0) | 2024.04.17 |
[스터디] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - Nginx 무중단 배포 (0) | 2024.04.12 |
[스터디] 네이버, 카카오 소셜 로그인과 RefreshToken (0) | 2024.04.05 |
[스터디] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - Spring Security, JWT (1) | 2024.04.01 |