웹개발을 하는 데 개발 성능 테스트를 하는 도구를 알아보는 중 오픈소스로 유명한 도구를 찾고 있었다.
관련 도구로는,
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 Second2.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을 기입해주어야 한다.
