2022. 10. 28. 15:42ㆍ[TEST]_도구
개요
솔루션 개발이 완료 될 무렵
코드의 성능 테스트를 해야 합니다.
동시접속시 속도 유지를 테스트 한다던지,
에러 발생이 얼마나 나는지,
응답 속도의 평균이 얼마가 되는지 알도록 도와주는 오픈소스 툴이 있습니다.
오늘은 JMeter 를 사용해서 간단히 테스트 하는 방법을 알아보겠습니다.
테스트 대상
개발 한 WebService 프로그렘
테스트로 Local환경의 Spring Web Application 을 테스트 해보았습니다.
사용 툴
JMeter
설치
공식 사이트
해당 사이트에서
- DownLoad Releases 선택
- zip 파일 다운로드
- 다운 받은 zip 폴더를 압축 해제
압축 해제한 폭더에 bin/jmeter.bat 파일을 실행시킵니다.
위의 화면이 뜨면서 정상적으로 설치 된 것을 확인할 수 있습니다.
사용방법 설명
1. HTTP header 정보를 기입할 공간 만들기
HTTP Header Manger 생성
- test plan 마우스 우클릭
- add 클릭
- config element 선택
- HTTP Header Manger 선택
2. 얼만큼의 부하를 줄건지 설정할 공간 만들기
Thread Group 생성
- test plan 마우스 우클릭
- add 클릭
- Thread Group 선택
3 HTTP header 정보를 기입
로그인을 한 페이지의 API 테스트 시 로그인 정보를 미리 줘야 합니다.
보통 global storage 혹은 Session 혹은 Cookie 로 구분을 하게 됩니다.
해당 정보는 다음과 같은 형식으로 기입해 주면 됩니다.
쿠키의 경우
global-Storage 인 경우
4. Thread Group 정보를 기입
1. Number of Threads : 얼만큼의 사용자 수로 테스트 할 것인지 결정
2. Ramp-up period : 얼만큼 실행 시킬 것인지 (sec)
3. Loop Count : 얼만큼 반복 할 것인지 (infinite 설정시 stop 하기 전까지 실행)
4. Thread Group 아래에 한가지의 API 테스트 공간 만들기
5. HTTP Request 생성
- Thread Group 마우스 우클릭
- ADD 선택
- Sampler 선택
- HTTP Request 선택
6. HTTP Request 설정
- http 또는 https 프로토콜 종류 입력. Default = http
- Server Name 혹은 IP 주소 : localhost 사용 가능
- Port Number : Web Service 의 Port 번호 기입
- 해당 HTTP Request 의 형식 기입
- Path : API 발송 URL 기입
- 인코딩 정보 기입
- 만약 body 에 데이터를 실어서 보낸다면 해당 양식에 맞게 기입
7. Advanced 설정
java : JVM 에서 제공하는 HTTP 구현 사용. 제약사용이 있어 굳이 사용하지 않는다
HTTPClient4 : Apache 에서 제공하는 HTTP
8. 통신 결과를 알려주는 공간 생성
Listener 생성
- Thread Group 혹은 각각의 HTTP Request 에 마우스 우클릭
- ADD 선택
- Listener 선택
- view Result tree 와 summary Report 선택
view result tree
해당 항목은 HTTP 리퀘스트가 성공하는지 아닌지를 확인할 수 있습니다.
실패시 왜 실패하였는지 나오기 때문에 디버그용으로 사용합니다.
summery report
해당 Request 의 오류, 평균 응답속도, 등의 정보가 도표로 도출됩니다.
감사합니다.