웹사이트 검색

JMeter를 사용하여 테스트 시나리오를 기록하는 방법


소개

이 자습서에서는 HTTP 요청을 기록하기 위해 Apache JMeter HTTP(S) 테스트 스크립트 레코더를 설정하고 사용하는 방법을 설명합니다. HTTP 요청을 기록하는 것은 테스트 계획을 세우는 좋은 방법이며 일반 사용자의 행동을 거의 모방하는 테스트를 만드는 데 유용할 수 있습니다.

이 자습서에서는 Apache JMeter에 대한 기본 지식이 있다고 가정합니다. JMeter를 처음 사용하는 경우 시작할 수 있는 또 다른 자습서가 있습니다. 웹 서버에서 로드 테스트를 수행하기 위해 Apache JMeter를 사용하는 방법

전제 조건

이 자습서에 필요한 소프트웨어 목록은 다음과 같습니다.

  • Apache JMeter: 여기에서 바이너리 다운로드
  • Java 6 이상: 여기에서 Oracle Java 사용 가능
  • Mozilla Firefox: 여기에서 다운로드

참고로 이 튜토리얼을 작성할 때 다음 소프트웨어 버전을 사용했습니다.

  • Oracle Java 7 업데이트 60, 64비트
  • JMeter 2.11
  • 파이어폭스 30.0

테스트 계획 수립 시작

먼저 JMeter를 시작합니다. 그런 다음 테스트 계획 작성을 시작하겠습니다. 시작하려는 테스트 계획이 이미 있는 경우 이 섹션을 건너뛰고 스레드 그룹에 레코딩 컨트롤러를 추가하는 단계(다음 섹션)로 이동하십시오.

최소한 스레드 그룹과 HTTP 요청 기본값을 추가하려고 합니다. 스레드 그룹을 추가하여 시작하겠습니다.

스레드 그룹 추가

테스트 계획스레드 그룹을 추가합니다.

  1. 테스트 계획을 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 스레드(사용자) >
  5. 위로 마우스를 가져갑니다.
  6. 스레드 그룹을 클릭합니다.

다음 값을 사용하여 스레드 그룹 속성을 설정합니다.

  • 스레드 수(사용자): 50으로 설정
  • 램프 업 기간(초): 10으로 설정합니다.
  • 루프 수: 이 설정을 1로 둡니다.

HTTP 요청 기본값 추가

이제 HTTP 요청 기본값스레드 그룹에 추가해 보겠습니다.

  1. 스레드 그룹을 선택한 다음 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 구성 요소 >
  5. 위로 마우스를 가져갑니다.
  6. HTTP 요청 기본값을 클릭합니다

HTTP 요청 기본값의 웹 서버 섹션에서 서버 이름 또는 IP 필드에 테스트할 웹 서버의 이름 또는 IP 주소를 입력합니다.

HTTP 쿠키 관리자 추가

웹 서버가 쿠키를 사용하는 경우 스레드 그룹에 HTTP 쿠키 관리자를 추가하여 쿠키 지원을 추가할 수 있습니다.

  1. 스레드 그룹을 선택한 다음 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 구성 요소 >
  5. 위로 마우스를 가져갑니다.
  6. HTTP 쿠키 관리자를 클릭합니다

녹음 컨트롤러 추가

이제 Thread GroupRecording Controller를 추가해 보겠습니다.

  1. 스레드 그룹을 선택한 다음 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 마우스를 로직 컨트롤러 >
  5. 위로 가져갑니다.
  6. 레코딩 컨트롤러를 클릭합니다

녹음 컨트롤러는 녹음된 HTTP 요청 샘플러가 생성되는 곳입니다. 다음 단계는 HTTP(S) 테스트 스크립트 레코더를 설정하는 것입니다.

HTTP(S) 테스트 스크립트 레코더 추가

이제 WorkBenchHTTP(S) 테스트 스크립트 레코더를 추가해 보겠습니다.

  1. WorkBench를 선택한 다음 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 마우스를 비테스트 요소>
  5. 에 올려 놓으십시오.
  6. HTTP(S) 테스트 스크립트 레코더를 클릭합니다

참고: WorkBench에 추가된 항목은 나머지 테스트 계획과 함께 저장되지 않습니다. 워크벤치를 저장하려면 워크벤치를 마우스 오른쪽 버튼으로 클릭한 다음 다른 이름으로 선택 항목 저장...을 클릭하고 원하는 위치에 저장합니다. 저장한 후 "병합\ 메뉴 항목을 사용하고 저장된 WorkBench를 선택하여 열려 있는 테스트 계획에 추가할 수 있습니다.

포트 설정

HTTP(S) 테스트 스크립트 레코더 프록시가 실행되는 기본 포트는 8080입니다. 이는 전역 설정에서 포트 설정을 변경하여 변경할 수 있습니다.

URL 패턴 포함 또는 제외(선택 사항)

HTTP(S) 스크립트 레코더에서 정규식으로 작성된 URL 패턴을 추가하여 기록할 때 포함하거나 제외할 수 있습니다. 이는 요청하려는 콘텐츠 유형(예: *.html, *.php 등)만 포함하거나 요청하지 않으려는 콘텐츠 유형(예: *.jpg, *.png)을 제외하는 데 유용할 수 있습니다. , *.js 등).

URL 패턴을 추가하려면 포함할 URL 패턴 또는 제외할 URL 패턴 섹션 아래의 "추가\ 버튼을 클릭한 다음 이제 패턴을 입력할 수 있습니다. 더 많은 패턴을 추가하려면 프로세스를 반복하세요.

예: 웹페이지의 URL 패턴

.*\.html
.*\.php
.*\.htm

예: 이미지의 URL 패턴

.*\.png
.*\.jpg
.*\.gif

다음은 이미지 제외를 위해 제외할 URL 패턴의 스크린샷입니다.

스크립트 레코더에 항목 추가(선택 사항)

HTTP(S) 테스트 스크립트 레코더에 JMeter 항목을 추가하면 기록된 요청이 추가된 항목을 상속하게 됩니다. 예를 들어 스크립트 레코더에 타이머 항목을 추가하면 기록되는 각 HTTP 요청에 타이머가 추가됩니다. 테스트가 실행되면 타이머는 HTTP 요청을 수행하기 전에 각 테스트 스레드가 대기하도록 합니다.

예를 들어 HTTP(S) Test Script RecorderConstant Timer를 추가해 보겠습니다.

  1. HTTP(S) Test Script Recorder를 선택한 다음 마우스 오른쪽 버튼으로 클릭
  2. 마우스를 추가 >
  3. 위로 가져갑니다.
  4. 타이머>
  5. 위로 마우스를 가져갑니다.
  6. 상시 타이머를 클릭합니다

원하는 대로 스레드 지연을 구성할 수 있습니다.

2초마다 다른 페이지를 클릭하는 사용자를 시뮬레이션한다고 가정합니다. 스레드 지연을 2000ms로 설정하면 기록되는 각 HTTP 요청에 2초 지연을 추가하여 이를 수행합니다.

이는 원하는 테스트를 수행하는 테스트 계획을 만드는 데 도움이 되도록 스크립트 레코더에 항목을 추가하는 방법의 한 예일 뿐입니다.

녹음 시작

스크립트 레코더 창 하단에 있는 "시작\ 버튼을 클릭하면 브라우저 요청을 가로채고 기록하는 데 사용되는 JMeter 프록시 서버가 시작됩니다. 지금 (레코더의) 시작 버튼을 클릭하십시오.

레코더를 처음 실행하려고 하면 인증서가 없기 때문에 시작할 수 없다는 오류가 표시됩니다. 확인을 클릭한 다음 다시 시작을 클릭합니다. ApacheJMeterTemporaryRootCA.crt라는 임시 인증서가 JMeter bin 디렉토리에 생성되었다는 메시지가 표시되어야 합니다. 확인을 클릭하고 계속합니다.

참고: 브라우저에서 이미 프록시를 사용하는 경우 JMeter를 시작하기 전에 명령줄 옵션 -H 및 -P를 사용하여 해당 프록시를 사용하도록 JMeter를 구성해야 합니다.

JMeter 프록시를 사용하도록 Firefox 구성

Chrome 및 일부 다른 브라우저와 달리 프록시 설정에 대한 시스템 전체 구성을 재정의할 수 있기 때문에 JMeter HTTP(S) 테스트 스크립트 레코더를 사용할 때 Firefox를 브라우저로 사용합니다.

다음 단계에 따라 모든 트래픽에 대한 프록시로 포트 8080의 localhost(127.0.0.1)를 사용하도록 Firefox를 구성합니다.

  1. 파이어폭스 열기
  2. 기본 설정 메뉴로 이동
  3. 고급 탭을 클릭합니다
  4. 그런 다음 네트워크 탭
  5. "연결\ 섹션에서 "설정...\을 클릭합니다.
  6. "수동 프록시 구성\ 라디오 버튼을 선택합니다.
  7. HTTP 프록시를 "localhost\로, 포트를 "8080\으로 설정
  8. "모든 프로토콜에 이 프록시 서버 사용\을 선택하십시오.
  9. 확인을 클릭하고 기본 설정 메뉴를 종료합니다.

참고: Firefox가 JMeter의 스크립트 레코더를 프록시로 사용하도록 구성된 경우 스크립트 레코더가 실행 중인 경우에만 제대로 작동합니다.

HTTP 요청 기록

테스트 계획의 HTTP(S) 테스트 스크립트 레코더가 실행 중이고 Firefox가 이를 프록시로 사용하도록 구성되었으므로 Firefox가 보내는 HTTP 요청이 기록됩니다. 테스트해 봅시다.

Firefox에서 서버의 홈페이지(JMeter HTTP 요청 기본값에서 구성한 동일한 서버)로 이동합니다.

http://your_domain.com/

이제 Recording Controller 옆에 작은 삼각형이 있어야 합니다. 클릭하면 기록된 요청이 확장되고 표시됩니다. 포함하거나 제외한 URL 패턴에 따라 기록된 HTTP 요청이 표시되어야 합니다. 더 많은 요청을 기록하려면 자유롭게 사이트를 탐색하세요.

다음은 WordPress 사이트의 홈페이지를 방문할 때 기록된 내용의 예입니다(URL 패턴이 설정되지 않음).

보시다시피 많은 요청이 생성되었습니다. 여기에서 원하지 않는 항목을 간단히 삭제하여 HTTP 요청 목록을 세분화할 수 있습니다.

녹음 컨트롤러 아래에 항목이 표시되지 않으면 HTTP(S) 테스트 스크립트 레코더에서 URL 패턴을 검토해야 합니다(힌트: 모든 항목을 기록하려면 모든 포함 및 제외 항목을 제거하십시오).

기록이 완료되면 HTTP(S) 테스트 스크립트 레코더 창 하단에 있는 "중지\ 버튼을 클릭하십시오. Firefox는 더 이상 어떤 페이지에도 연결할 수 없습니다(포트 8080을 프록시) – 정상적으로 작동하려면 "프록시 없음\을 사용하도록 구성하십시오.

테스트 계획 실행

기록한 테스트 계획에 만족하면 저장한 다음 실행합니다. 이것은 수동으로 생성된 테스트와 똑같이 작동하므로 원하는 테스트 케이스와 더 가깝게 일치하도록 항목을 구성, 삭제 및 추가할 수 있습니다.

결론

이제 HTTP(S) 테스트 스크립트 레코더를 사용하여 JMeter 테스트 계획 생성을 지원할 수 있으므로 현실적인 시나리오를 모방하는 테스트 계획을 보다 쉽게 생성할 수 있습니다. 사용자가 웹 서버를 탐색할 때 생성되는 요청 종류에 대해 자세히 알아보려면 녹음 컨트롤러에서 녹음된 요청을 자유롭게 탐색하십시오.

행운을 빌어요!