JMeter 요소 및 구성 요소: 스레드 그룹, 샘플러

⚡ 스마트 요약

JMeter 요소는 모든 테스트 계획의 구성 요소입니다. 스레드 그룹은 가상 사용자를 생성하고, 샘플러는 요청을 보내고, 리스너는 결과를 표시하며, 구성 요소는 이러한 요청에 필요한 기본값과 데이터를 제공합니다.

  • 🔘 스레드 그룹: 각 스레드는 테스트 대상 애플리케이션을 실행하는 가상 사용자 한 명을 나타냅니다.
  • ☑️ 샘플러: 요청에 사용할 프로토콜(FTP, HTTP, JDBC, SMTP 등)을 결정하세요.
  • 청취자: 결과를 그래프, 트리, 표 또는 로그 파일 형식으로 표시합니다.
  • 🧪 구성 요소: 테스트 전체에서 샘플러가 재사용할 기본값과 변수를 설정합니다.
  • 🛠️ 데이터 기반 실행: CSV 데이터 세트 구성은 각 시뮬레이션 사용자에게 서로 다른 자격 증명을 제공합니다.
  • 현대어에서의 동등한 표현: BSF 샘플러는 더 이상 지원되지 않으며, 현재 릴리스 스크립트는 JSR223을 통해 제공됩니다. Groovy.

JMeter 구성 요소: 스레드 그룹, 샘플러, 리스너 및 구성 요소

요소란 무엇입니까? JMeter?

다양한 구성 요소 JMeter Elements라고 합니다. 각 요소는 특정 목적을 위해 설계되었습니다.

아래 그림은 몇 가지 공통 요소를 보여줍니다. JMeter 그리고 그것들이 스레드 그룹 아래에 어떻게 위치하는지 보여줍니다.

JMeter 샘플러, 로직 컨트롤러, 리스너, 구성 요소, 어설션, 타이머 및 프로세서 위에 스레드 그룹이 있는 요소 계층 구조 다이어그램

모든 구성 요소를 한꺼번에 공부하는 것은 혼란과 지루함을 초래할 뿐입니다. 여기서는 시작하기 전에 반드시 알아야 할 구성 요소들을 살펴보겠습니다. 테스트 in JMeter.

나머지 구성 요소들은 후속 튜토리얼에서 사용될 때마다 설명하겠습니다. 이번 튜토리얼에서 다루는 요소들은 아래와 같습니다.

스레드 그룹

스레드 그룹은 스레드들의 모음입니다. 각 스레드는 테스트 대상 애플리케이션을 사용하는 한 명의 사용자를 나타냅니다. 기본적으로 각 스레드는 서버에 대한 실제 사용자 요청 하나를 시뮬레이션합니다.

스레드 그룹 제어 기능을 사용하면 각 그룹에 대한 스레드 수를 설정할 수 있습니다.

예를 들어, 스레드 수를 100으로 설정하면, JMeter 아래 그림과 같이 테스트 대상 서버에 100개의 사용자 요청을 생성하고 시뮬레이션합니다.

다이어그램 JMeter 사용자 1부터 사용자 100까지를 시뮬레이션하는 스레드 그룹으로, 각 사용자들이 테스트 대상 애플리케이션에 요청을 보냅니다.

스레드 그룹 패널에는 점진적 활성화 기간이 있어 모든 사용자를 한 번에 시작하는 대신 스레드 시작 시간을 분산시킵니다.

샘플러

이미 알고 있듯이 JMeter HTTP, FTP, JDBC 및 기타 여러 프로토콜 테스트를 지원합니다.

또한 스레드 그룹은 서버에 대한 사용자 요청을 시뮬레이션한다는 것을 알고 있습니다.

하지만 스레드 그룹은 어떤 유형의 요청(HTTP, FTP 등)을 해야 하는지 어떻게 알 수 있을까요?

정답은 샘플러입니다.

사용자 요청은 FTP 요청, HTTP 요청, JDBC 요청 등 다양할 수 있습니다. 아래 그림은 이 튜토리얼에서 다루는 샘플러들을 보여줍니다.

트리 다이어그램 목록 JMeter 샘플러: FTP 요청, HTTP 요청, JDBC 요청, BSF 샘플러, 액세스 로그 샘플러 및 SMTP 샘플러

FTP 요청

FTP 서버의 성능 테스트를 하고 싶다고 가정해 보겠습니다. FTP 요청 샘플러를 사용할 수 있습니다. JMeter 이 작업을 수행하려면. 이 컨트롤러를 사용하면 FTP "파일 다운로드" 또는 "파일 업로드" 요청을 FTP 서버로 보낼 수 있습니다.

다이어그램 표시 JMeter 파일을 업로드하거나 다운로드하기 위해 FTP 서버에 FTP 요청을 보내는 것

예를 들어, 테스트 중인 FTP 서버에서 "Test.txt" 파일을 다운로드하려면 다음에서 일부 매개변수를 구성해야 합니다. JMeter 아래 그림과 같습니다.

FTP 요청 샘플러 패널 (서버: ftp.example.com, 포트: 21, 원격 파일: Test.txt, 로그인 방식: 익명)

패널은 서버를 다음과 같이 설정합니다. ftp.example.com포트 21, 원격 파일 Test.txt 및 get(RETR) 옵션, 따라서 JMeter 해당 서버로 FTP 명령을 전송하고 파일을 다운로드합니다.

HTTP 요청

이 샘플러를 사용하면 HTTP/HTTPS 요청을 웹 서버에 보낼 수 있습니다.

아래의 예를 고려하십시오. JMeter HTTP 요청을 보냅니다. Google 웹사이트에서 HTML 파일이나 이미지를 가져옵니다.

다이어그램 JMeter HTTP 요청을 보내는 중 Google 사이트와 HTML 및 이미지 수신

튜토리얼에서 JMeter 성능 시험이 HTTP 요청에 대해 더 자세히 설명드리겠습니다. 이것은 가장 많이 사용되는 샘플러입니다. 웹 애플리케이션 테스트 업무는 다음에 의존합니다.

JDBC 요청

이 샘플러를 사용하면 데이터베이스를 실행할 수 있습니다. 성능 시험. JDBC 요청(SQL 쿼리)을 데이터베이스로 보냅니다.

다이어그램 JMeter SQL 쿼리를 데이터베이스 서버로 전송하고 결과를 수신하는 것

예를 들어, 데이터베이스 서버에 test_tbl이라는 테이블에 test_result라는 필드가 저장되어 있다고 가정해 보겠습니다. 데이터베이스 서버에서 이 데이터를 쿼리하여 구성하려고 합니다. JMeter 보내다 SQL 데이터를 검색하기 위해 이 서버에 쿼리를 보냅니다.

쿼리 유형이 SELECT 문으로 설정된 JDBC 요청 패널에서 쿼리는 `select test_result from test_tbl where id = 1`입니다.

여기서 쿼리 유형은 SELECT 문이며 쿼리 내용은 다음과 같습니다. select test_result from test_tbl where id = 1JDBC 연결 구성 요소는 변수 이름 필드가 가리키는 풀을 제공해야 합니다.

BSF 샘플러

이 샘플러를 사용하면 다음을 사용하여 샘플러를 작성할 수 있습니다. BSF 스크립팅 언어.

다음은 BSF 샘플러의 예입니다. JMeter스크립트 언어, 스크립트에 전달되는 매개변수, 그리고 인라인 스크립트 또는 외부 스크립트 파일을 지정하는 필드가 있습니다.

스크립트 언어, 매개변수, 외부 스크립트 파일 및 인라인 스크립트 본문을 입력할 수 있는 필드가 있는 BSF 샘플러 패널

사용 중단 예정 안내: BSF 계열 요소는 JSR223 요소로 대체되면서 더 이상 사용되지 않게 되었으며, 현재는 더 이상 사용되지 않습니다. JMeter 구성 요소 참조최신 버전에서는 다음을 사용하세요. JSR223 샘플러Groovy이는 스크립트를 컴파일하고 부하 시 훨씬 더 나은 성능을 보여줍니다. 위의 패널은 이전 테스트 계획에 여전히 포함되어 있기 때문에 여기에 유지됩니다.

액세스 로그 샘플러

이 샘플러를 사용하면 액세스 로그를 읽고 HTTP 요청을 생성할 수 있습니다. 로그 항목에는 이미지, HTML, CSS 등이 포함될 수 있습니다.

액세스 로그 샘플러 패널에 기본 서버 및 포트 필드, TCLogParser 플러그인 클래스 및 로그 파일 위치가 표시됩니다.

Parser 필드의 기본값은 다음과 같습니다. org.apache.jmeter.protocol.http.util.accesslog.TCLogParser그리고 로그 파일 위치 필드는 다음을 가리킵니다. JMeter 재생하고 싶은 로그를 선택하세요.

SMTP 샘플러

메일 서버를 테스트하려면 SMTP 샘플러를 사용할 수 있습니다. 이 샘플러는 SMTP 프로토콜을 사용하여 이메일 메시지를 보내는 데 사용됩니다.

SMTP 샘플러 패널에는 서버 설정, 메일 주소, 인증 및 보안 옵션, 메시지 설정이 포함되어 있습니다.

이 패널은 서버 설정, 메일 주소, 인증 및 메시지 설정을 그룹화하고 포트 필드 옆에 기본 포트(SMTP 25, SSL 465, StartTLS 587)를 표시합니다.

청취자

리스너는 테스트 실행 결과를 보여줍니다. 트리, 표, 그래프 또는 로그 파일과 같은 다양한 형식으로 결과를 표시할 수 있습니다.

리스너가 결과를 그래프, 트리, 표 및 보고서 보기로 확장하는 것을 보여주는 다이어그램

The 그래프 결과 리스너는 서버 응답 시간을 그래프로 표시하고, 그 아래에 샘플 수, 평균, 편차, 처리량 및 중앙값을 출력합니다.

그래프 결과 리스너는 응답 시간과 데이터, 평균, 중앙값, 편차 및 처리량 계열을 그래프로 표시합니다.

결과 트리 보기 각 사용자 요청의 결과를 기본 HTML 형식으로 표시하며, 샘플러 결과 탭에서는 로드 시간, 지연 시간, 크기 및 응답 코드를 보고합니다.

왼쪽에 요청 목록이 있고 샘플러 결과 탭에 응답 코드 200이 표시되는 결과 트리 리스너를 봅니다.

결과를 표 형식으로 보기 각 샘플당 한 행씩, 표 형식으로 테스트 결과 요약을 보여줍니다.

샘플 번호, 시작 시간, 스레드 이름, 레이블 및 샘플 시간을 열로 하는 표 형식으로 결과를 볼 수 있습니다.

로그 파일에는 동일한 요약 정보가 텍스트로 기록되는데, 이는 GUI 없이 테스트를 실행할 때 저장되는 내용입니다.

샘플러 레이블, 샘플 수, 평균 및 총계를 포함하는 집계 로그 요약 목록입니다.

최고의 연습: GUI 리스너는 메모리를 소모하고 결과에 영향을 미치므로, 실제 부하 테스트는 GUI 모드가 아닌 일반 모드에서 실행한 후 저장된 결과 파일을 열어 확인하십시오.

구성 요소

구성 요소는 샘플러가 나중에 사용할 기본값과 변수를 설정합니다.

아래 그림은 일반적으로 사용되는 일부 구성 요소를 보여줍니다. JMeter.

트리 다이어그램 JMeter 구성 요소: CSV 데이터 세트 구성, HTTP 쿠키 관리자, 로그인 구성 요소, HTTP 요청 기본값 및 FTP 요청 기본값

CSV 데이터 세트 구성

100명의 사용자가 각기 다른 자격 증명으로 로그인하는 웹사이트를 테스트한다고 가정해 보겠습니다. 이 경우 스크립트를 100번 반복해서 실행할 필요는 없습니다. 스크립트에 매개변수를 추가하여 각 사용자가 다른 로그인 자격 증명을 입력하도록 할 수 있습니다. 이러한 로그인 정보(예: 사용자 이름과 비밀번호)는 텍스트 파일에 저장할 수 있습니다. JMeter 해당 텍스트 파일에서 다양한 매개변수를 읽을 수 있는 요소가 있습니다. 이는 "CSV 데이터 세트 구성"으로, 파일에서 각 줄을 읽어 변수로 분할하는 데 사용됩니다.

JMeter 로그인 컨트롤러 아래에서 CSV 데이터 세트 구성이 선택되고 HTTP 요청 기본값이 함께 표시되는 테스트 계획 트리

CSV 데이터의 예시입니다. CSV 파일은 대상 웹사이트에 로그인하는 데 사용되는 사용자 이름과 비밀번호가 포함된 텍스트 파일입니다.

텍스트 파일 csv_data.txt에는 사용자 이름, 비밀번호 및 쿠키 길이 값이 쉼표로 구분된 네 줄로 저장되어 있습니다.

HTTP 쿠키 관리자

예를 들어 이것을 이해하자.

귀하는 브라우저(Firefox(크롬 등) 브라우저를 사용하여 브라우징하세요. www.google.com.

사용자 이름과 비밀번호로 로그인합니다.

사용자 이름과 비밀번호는 쿠키 형태로 컴퓨터에 저장됩니다.

다음에 방문하게 되면 www.google.com다시 로그인할 필요가 없습니다. 브라우저가 쿠키를 사용자 데이터로 사용하여 로그인하기 때문입니다.

HTTP 쿠키 관리자는 웹 브라우저와 동일한 기능을 합니다. HTTP 요청을 보내고 응답에 쿠키가 포함되어 있으면 쿠키 관리자는 해당 쿠키를 자동으로 저장하고 해당 웹사이트에 대한 향후 모든 요청에 ​​사용합니다.

HTTP 요청 기본값

이 요소를 사용하면 HTTP 요청 컨트롤러가 사용하는 기본값을 설정할 수 있습니다.

예를 들어,

당신은 google.com 서버로 100개의 HTTP 요청을 보내고 있습니다.

100번의 요청 모두에 대해 서버 이름인 google.com을 수동으로 입력해야 합니다.

대신 아래와 같이 "서버 이름 또는 IP" 필드를 google.com으로 설정한 HTTP 요청 기본값 요소를 하나 추가할 수 있습니다.

HTTP 요청 기본 설정 패널 (서버 이름: google.com, 포트: 80, 연결 및 응답 시간 제한 설정)

100번씩 입력할 필요가 없습니다. 이 요소는 튜토리얼에서 자세히 설명될 것입니다. JMeter 성능 시험.

로그인 구성 요소

로그인 구성 요소를 사용하면 샘플러에서 사용자 이름과 암호 설정을 추가하거나 재정의할 수 있습니다.

예를 들어, 한 사용자가 웹사이트에 로그인하는 것을 시뮬레이션하고 싶다고 가정해 보겠습니다. www.facebook.com 사용자 이름과 비밀번호를 사용하여 로그인할 수 있습니다. 로그인 구성 요소를 사용하면 사용자 요청에 이 사용자 이름 및 비밀번호 설정을 추가할 수 있습니다.

사용자 이름에 guru99가 입력되어 있고 비밀번호 입력란이 가려진 로그인 설정 요소 패널

로그인 구성 요소와 CSV 데이터 세트 구성 비교

로그인 구성 요소 CSV 데이터 세트 구성
단일 사용자 로그인을 시뮬레이션하는 데 사용됩니다. 여러 사용자가 로그인하는 것을 시뮬레이션하는 데 사용됩니다.
로그인 정보(사용자 이름 및 비밀번호)에만 적합합니다. 많은 수의 매개변수에 적합

이 두 가지 요소는 여러분이 접하게 될 거의 모든 자격 증명 시나리오를 포괄합니다. 성능 테스트 도구 작업.

자주 묻는 질문

그것은 말한다 JMeter 모든 스레드가 실행되기까지 걸리는 시간. 100초의 준비 시간을 두고 10개의 스레드가 10초 간격으로 시작됩니다. 준비 시간이 너무 짧으면 서버에 과부하가 걸려 실제 사용자가 발생시킬 가능성이 전혀 없는 오류가 발생합니다.

타이머는 요청 사이에 일시 정지를 삽입하여 시뮬레이션된 부하가 폭주하는 것이 아니라 실제 브라우징과 유사하게 보이도록 합니다. 어설션은 각 응답을 검사하여 상태 코드, 텍스트 또는 지속 시간이 지정한 값과 일치하지 않으면 샘플을 실패로 표시합니다.

이들은 하위 요청을 그룹화하고 분기합니다. 루프 컨트롤러는 하위 요청을 반복 실행하고, 조건부 컨트롤러는 특정 조건에 따라 요청을 실행하며, 트랜잭션 컨트롤러는 전체 그룹을 하나의 시간 단계로 결과에 보고합니다.

아니요. View Results Tree와 같은 리스너는 모든 샘플을 버퍼링하여 보고하는 수치를 왜곡합니다. GUI 모드가 아닌 일반 모드에서 테스트를 실행하고 결과를 파일에 저장한 다음, 실행이 완료되면 해당 파일을 리스너에 로드하세요.

구성 요소와 전처리기가 먼저 적용된 다음 샘플러가 실행되고, 그 다음 후처리기, 어설션 및 리스너가 실행됩니다. 범위 또한 중요합니다. 플랜 수준에 배치된 요소는 그 아래의 모든 요청에 ​​적용됩니다.

패턴 파악에 유용합니다. 결과 파일을 어시스턴트에 입력하면 행을 읽는 것보다 훨씬 빠르게 가장 느린 레이블, 오류 클러스터 및 응답 시간 추세를 확인할 수 있습니다. 조치를 취하기 전에 항상 원본 샘플과 비교하여 결과를 확인하십시오.

네. 초안입니다. Groovy 예를 들어tracJSR223 요소 내에서 값을 설정하고, 페이로드를 구성하고, 변수를 설정하는 방법을 알아보세요. 제안된 내용이 종종 더 이상 사용되지 않는 BeanShell API나 변수를 참조하는 경우가 있으므로 모든 제안 사항을 꼼꼼히 확인하십시오. JMeter 드러내지 않습니다.

스레드 그룹 하나와 샘플러 하나만 있으면 됩니다. 나머지는 모두 선택 사항입니다. 실제로는 결과를 확인할 수 있도록 리스너를 추가하고, 동일한 값이 요청 간에 반복되기 시작하면 기본값이나 데이터 파일을 추가합니다.

이 게시물을 요약하면 다음과 같습니다.