개요
jmeter 로 성능테스트를 수행하면서 좀 정리할겸 글 작성한다
설명 영문이라도 한글로 작성하고, 필요에 따라 영문도 혼용한다.
1. Test Plan 을 만든다.
File > New 를 클릭하면 아래의 화면처럼 테스트 플랜이 만들어진다.
2. Test Plan 에서 Thread Group 을 만든다.
Test Plan > Add > Threads(Users) > setUp Thread Group
3. Test Plan 하위에 생성한 Thread Group 의 설정값을 제어한다.
스레드 그룹은 작성된 테스트플랜의 시작점이다. 모든 컨트롤러 및 샘플러들은 스레드 그룹 아래에 소속되어야 한다. 스레드 그룹은 jmeter 가 테스트를 실행하는데 필요한 스레드의 개수를 제어한다.
Thread Properties
Number of Threads (users)
- 하나의 스레드이고 단일유저이다. 각각의 스레드는 독립된 형태로 동작한다.
Ramp-up period (seconds)
- Number of Threads 갯수만큼 도달하는데 몇 초를 사용할 것인지 정의한다. 만약 10 threads 를 설정하고 ramp-up periods 를 100 seconds 로 설정했다면, 10 개의 스레드를 모두 가용하는데 100초의 시간을 사용할 것이다. 결과적으로 10초마다 한개의 스레드가 실행된다는 의미이다.
Loop Count
- 스레드 그룹이 최대 몇번 반복할 것인지 정의한다. 1은 Number of Threads 만큼 한번만 수행하겠다는 의미이다.
4. Sampler Http Request 추가하기
테스트 스레드 그룹 우클릭 > Add > Sampler > Http Request 하면 Http Request 가 만들어진다.
샘플러는 자신이 구축한 웹서버에 http(s) 요청을 보내는 역할을 담당한다.
자세한 내용은 공식문서를 참고한다.
https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request
5. Listener 추가하기
리스너는 샘플러를 통한 단일 http 요청의 테스트 결과를 기록하고 확인할 수 있도록 해준다. 여기서 두 개의 리스너 를 추가한다. View Results Tree, View Results in Table 을 추가한다. 아래에 있다.
Add > Listener > View Results Tree
Add > Listener > View Results in Table
6. Aggregate Report 추가하기
Listener 를 통해서 개별적으로 테스트된 결과들을 통계내준다. 리포팅 테이블을 만든다. 해당 테이블에는 throughput(처리량), 에러율 등이 표시되어 있다. throughput 의 경우에는 샘플러 대상(웹서버 또는 애플리케이션 서버) 의 관점에서 계산된다.
자세한 내용은 공식문서를 참고한다.https://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report
Best Practice
공식홈페이지에 jmeter 를 잘 쓰기 위함 모범적인 사례를 말해준다.
- 항상 최신버전의 jmeter 를 유지하려고 하기
- 적정한 갯수의 스레드를 이용하
- ETC...
참고자료
- https://jmeter.apache.org/usermanual/test_plan.html#thread_group
- https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request
- https://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree
- https://jmeter.apache.org/usermanual/component_reference.html#View_Results_in_Table
- https://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report
- https://jmeter.apache.org/usermanual/best-practices.html#best_practices
'open source' 카테고리의 다른 글
2023-01-07 : [mockk] captured 사용 (0) | 2023.01.07 |
---|---|
2022-11-01 [mysql] : Locking Reads 읽기 (S-LOCK & X-LOCK) (0) | 2022.11.01 |
2022-08-20 [redis] : redis-cli 시 hex 를 순수 string 으로 보고자 할 때. (0) | 2022.08.20 |
2022-05-15 [mockk] wasNot called 사용 (0) | 2022.05.15 |
2021-12-19 [jmeter] jmeter 설치 및 실행 (1) (0) | 2021.12.19 |