웹개발을 하는 데 개발 성능 테스트를 하는 도구를 알아보는 중 오픈소스로 유명한 도구를 찾고 있었다.
관련 도구로는,
1. LoadRunner
( 성능테스트 왕좌, 기업 단위 )
2. Locust
(개발자 단위)
3. nGrinder
( 국내 오픈소스 )
4. JMeter
( 아파치 재단에서 LoadRunner를 따라잡이 위해 만든 오픈소스 )
그중에 가장 대중적으로 알려진 JMeter
를 알아볼려고 한다.
Thread Group
: 몇 개의 쓰레드가 동시에 요청을 보내는 지Sampler
: 어떤 유저가 해야 하는 액션Listener
: 응답을 받았을 때 어떤 동작을 취하는 지 (검증, 리포트, 그래프 그리기 등)Configuration
: Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)Assertion
: 응답 결과의 성공 여부를 판단하는 조건 (응답 코드, 본문 내용 등)사전에 Java 8 이상 설치가 꼭 필요
JMeter 다운로드 및 설치(Binaries
로 다운받아야!)
http://jmeter.apache.org/download_jmeter.cgi
JMeter 실행
bin/jmeter.bat
파일 더블클릭Transactions Per Second
2.0
부분 클릭해서 다운로드 후 압축 해제/Desktop/apache-jmeter-5.4.1/lib/ext/
폴더안에 넣는다처음에는, 부하테스트를 하기 위한 설정을 해주어야 한다.
처음 아이콘 > Add > Threads(Users) > Thread Group
이 그 설정을 해줄 수 있다.
Test plan
을 우클릭 한 후 Thread Group
을 추가한다.
1) Number of Threads(users)
- 몇 개의 쓰레드(유저 수)로 테스트할 지를 말한다. 물론 엄밀히 따졌을 때 스레드의 개수가 유저의 활동을 전부 포함할 수는 없겠지만 근사하게는 값을 도출시킬 수 있다. 스레드 수가 많을수록 서버는 많은 부하를 받을 것이다.
2) Ramp-up Period(in seconds)
- {Number of Thread} 만큼의 쓰레드를 몇초에 걸쳐서 만들 지를 의미한다.
3) Loop Count
- 요청을 반복하고자 하는 횟수, Infinite
를 누르면 무제한으로 실행하게 된다.
최종적으로는 다음과 같은 Test Plan
상태로 만들어주면 된다.
Thread Group
Http Request
여기서
GET, POST방식 등의 Http Request api를 만들어 주는 곳이다.
HTTP Request Defaults
는 해주면 좋은 것!
미리 Method 방식과 IP주소, Port번호를 디폴트로 해줄 수 있다.
Http Header Manager
는 Add > Config Element
위치에 있다.
보통 Authorization
값을 default 할때 많이 사용한다.
✅ 이런 설정들은 TestPlain을 저장하는 것이고 이를 저장하면 .jmx확장자
로 저장된다.
1) Thraed Group Add
Thraed Group > Http Request
추가
💥 주의!
POST방식으로 할려면 반드시 HTTP Header Manager
Add해주고
Content-Type => application/json을 기입해주어야 한다.