본문 바로가기
IT/QA

Jmeter 로 DataBase 부하 테스트하는 방법

by 보띵 2023. 6. 25.
반응형

Apache에서 제공하는 오픈소스 기반의 부하 발생툴인 Jmeter를 사용해서 Database에 부하를 발생시키는 방법에 대해 정리해 본다.

 

Jmeter는 아래 링크에서 다운로드할 수 있다.(2023-06-25 기준 5.6 버전이 최신, java 8 이상 필요)

 

기본 구성

DB 부하 테스트를 위한 기본 구성은 아래와 같다. 아래 기본 구성에서 필요한 정보에 따라 테스트 환경을 변경하면 된다.

DB 접속을 위한 JDBC Connection Configuration을 생성하고 그 아래 부하 설정을 위한 Thread Group를 생성한다.

Thread Group 아래는 부하 테스트 시간 설정을 위해 Runtime Controller를 생성하고 그 아래 JDBC Request를 생성해서 쿼리를 설정한다.

테스트 결과를 확인하기 위해 View Results Tree와 Summary Report 도 생성해 준다.

 

JDBC Connection Configuration

DB 접속을 위한 정보를 입력하는 설정이다. 주요 설정들만 살펴보자.

Variable Name for created pool : 해당 구성을 식별할 수 있는 식별자로 사용된다. 해당 값은 JDBC Request에서 사용할 수 있다.

Max Number of Connections : 최대로 접속할 수 있는 세션 수를 설정한다. (차단 관련 테스트를 할 경우 0으로 설정)

Database Connection Configuration

 - Database URL : JDBC로 접속할 URL을 설정한다. 사진의 설정은 SQL Server 접속 URL이며, SQL Server에서 제공하는 JDBC 연결 속성 설정값들도 입력이 가능하다.(연결 속성 설정 정보)

 - JDBC Driver class : 사용하는 JDBC 드라이버 클래스를 선택한다.

 - Username : DB의 접속계정을 입력한다.

 - Password : 접속계정의 패스워드를 입력한다.

 

Thread Group

부하를 주기 위해 가상 사용자를 설정하는 부분이다.

Number of Threads (users) : 가상 사용자 수를 설정한다.

Ramp-up period (seconds) : 가상 사용자를 시작시키는 시간이다. 만약 가상 사용자가 100이고 Ramp up 이 10이라면 사용자 시작 지연 시간은 0.1초이다. 10초 후에 100명의 사용자 부하가 시작된다.

Loop Count : 테스트를 반복할 횟수이다. Infinite를 체크하면 다른 설정이 없는 경우 무한으로 테스트가 진행된다.

 

 

Runtime Controller

테스트를 실행할 시간을 지정할 수 있다.

 

JDBC Request

DB에 접속해서 실행할 쿼리를 설정하는 부분이다.

Variable Name of Pool declared in JDBC Connection Configuration : 이전에 JDBC Connection Configuration에서 설정한 Variable Name for created pool 값이다. 해당 JDBC Request에서 어떤 JDBC 설정을 사용할지 입력하면 된다.

SQL Query : 실제로 DB에 접속해서 실행되는 쿼리이다. 쿼리 타입을 설정할 수 있고 Select, Insert 등 다양한 쿼리를 입력할 수 있다.

 

SQL Query 하단의 설정들을 통해 Parameter로 쿼리를 설정할 수도 있다.

 

View Results Tree

테스트 실행 후 개별 실행 결과를 확인할 수 있는 부분이다. JDBC Request에 대한 결과를 볼 수 있고, 실행한 쿼리와 쿼리에 대한 응답값도 확인할 수 있다.

 

Summary Report

부하테스트에 대한 종합적인 결과를 볼 수 있다. 

Samples : 쿼리 실행 수

Average : 평균 응답시간

Min : 최소 응답시간

Max : 최대 응답시간

Error % : 쿼리 실행 에러 비율

Throughput : 처리량 (초당 쿼리 실행 횟수)

Received KB/sec : 수신 트래픽 (KB/sec)

Sent KB/sec : 송신 트래픽(KB/sec)

반응형

댓글