프로젝트 후 성능테스트를 하기 위해 Jmeter를 사용해 봤다
📌 Jmeter란?
Apache에서 만든 자바로 만들어진 웹 어플리케이션 성능 테스트 오픈 소스
테스트 종류
- 웹 - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST 웹 서비스
- FTP
- JDBC
- LDAP
- JMS - Message-oriented middleware (MOM)
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
📌 설치방법
1. Apache JMter 접속 후 다운로드
👉 https://jmeter.apache.org/download_jmeter.cgi
* 다운로드 받은 후 원하는 경로에 압축을 풀어준다
📌 실행방법
1. cmd 접속
2. cmd에서 압축을 푼 폴더의 bin폴더로 이동
명령어 : cd 경로
3. jmeter입력 후 엔터
🤚 테스트 전
테스트 하는 서버는 운영 전, 운영서버여야 합니다.
개발서버일 경우 운영서버와 환경이 같아야만 측정기록이 정확성을 갖습니다,
🔖 Jmter테스트 용어
- Thread Group : 테스트에 사용될 쓰레드 개수, 쓰레드 1개당 사용자 1명
- Sampler : 사용자의 액션 (예: 로그인, 게시물 작성, 게시물 조회 등)
- Listener : 응답을 받아 리포팅, 검증, 그래프 등 다양한 처리
- Configuration : Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
- Assertion : 응답 확인 방법 (응답 코드, 본문 내용 비교 등)
📌 Jmter 사용법 + 기록 남기기
1. 테스트 생성
✔ File - New - Test Plan ( name은 원하는대로 작성)
2. Thread Group 생성
✔ Test Plan 우클릭 - Add - Threads - Thread Group
설정
- Action to be taken after a Sampler error에서 Error가 리턴됐을 때 어떻게 할 건지에 대한 설정을 할 수 있다
< Thread Properties >
- Number of Threads : 쓰레드 개수
- Ramp-up period : 쓰레드 개수를 만드는데 소요되는 시간
- Loop Count : infinite | n 으로 값을 설정할 수 있으며 설정된 값에 따라 Number of Threads X Ramp-up period 만큼 요청을 다시 보낸다.
3. Sampler
- Controller에 request 보내기
✔ Thread Group 우클릭 -> Add -> Sampler -> HTTP Request
설정
- Protocol : https 또는 http
- Server Name or IP : 호출할 IP
- Port Number : 8080
- HTTP Request : Mapping Method
- Path : 컨트롤러 URL
- Add : 파라미터 또는 RequestBody에 담을 값 추가
- Name : 파라미터 변수명
- Value : 파라미터 값
4. Listener
- 리턴 값을 바탕으로 그래프, 레포팅을 만들어 줌
- HTTP Request 우클릭 - Add - Listener - View Results Tree, jp@gc - Transactions per Second, Summary Report 생성
( + Hearder에 값이 필요하면 HTTP Header Manager) 생성
✔ HTTP Request - Config Element - HTTP Header Manager
✔ Add - 토큰값 추가
✔ HTTP Request - Listener - View Results Tree, jp@gc - Transactions per Second, Summary Report
- View Result Tree : 하나하나의 데이터를 확인
- jp@gc - Transactions per Second : 초마다 Transactions
- Summary Report : 레포트 생성
Samples - requset 갯수
Average - Sample Time의 평균
Min - Sample Time의 최소
Max - Sample Time의 최대
Std. Dev. - Sample Time의 표준편차
Error % - 에러율
Throughput - 시간당 처리량(=쓰루풋)
Received KB/sec - 시간당(sec) 받은 데이터(KB)
Sent KB/sec - 시간당(sec) 보낸 데이터(KB)
Avg. Bytes - 평균 바이트
✔ Summary Report 생성
✔ 파일 이름은 파일명.cvs로 한다
📌 시작
먼저 해당 기록이 있으면 컨트롤 + E 를 눌러서 삭제 해주거나, 상단에 빗자루모양을 클릭해서 지워준다
시작할때는 초록색 화살표를 누르면 된다
그래프가 잘나온다!!!!
📌 파일로 만들기
1. Generate HTML report
2.
1) Results file (csv or jtl) : Summary Report로 만든 파일 선택
2) user.properties file : jmeter.properies
3) Output directory : 결과값을 저장할 폴더 생성
📌 결과 확인
해당 폴더로 가면 확인할 수 있다
댓글