다음을 통해 공유


Azure Load Testing을 사용하여 부하 테스트에 대한 실패 조건 정의

이 문서에서는 Azure Load Testing을 사용하여 부하 테스트에 대한 실패 조건 또는 자동 중지 조건을 정의하는 방법을 알아봅니다. 실패 조건을 사용하면 로드 중인 애플리케이션에 대한 성능 및 품질 기대치를 정의할 수 있습니다. Azure Load Testing은 Azure 리소스에 대한 오류율 또는 CPU 비율과 같은 실패 조건을 정의하기 위한 다양한 클라이언트 및 서버 메트릭을 지원합니다. 자동 중지 조건을 사용하면 오류율이 지정된 임계값을 초과할 때 부하 테스트를 자동으로 중지할 수 있습니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
  • Azure Load Testing 리소스입니다. Azure Load Testing 리소스를 만들어야 하는 경우 부하 테스트 만들기 및 실행 빠른 시작을 참조하세요.

부하 테스트 실패 조건

부하 테스트 실패 조건은 테스트가 충족해야 하는 메트릭의 조건입니다. Azure Load Testing의 부하 테스트 수준에서 테스트 조건을 정의합니다. 부하 테스트에는 하나 이상의 테스트 조건이 있을 수 있습니다. 테스트 조건 중 하나 이상이 true로 평가되면 부하 테스트가 실패 상태가 됩니다.

부하 테스트에 대해 최대 50개의 테스트 조건을 정의할 수 있습니다. 동일한 메트릭에 대해 여러 조건이 있는 경우 임계값이 가장 낮은 기준이 사용됩니다.

클라이언트 메트릭에 대한 장애 조건 구조

Azure Load Testing의 실패 조건 형식은 지원되는 메트릭에 대한 조건문 형식을 따릅니다. 예를 들어, 초당 평균 요청 수가 500보다 큰지 확인합니다.

클라이언트 쪽 메트릭의 경우 두 수준에서 테스트 조건을 정의할 수 있습니다. 부하 테스트는 여러 수준에서 조건을 결합할 수 있습니다.

  • 부하 테스트 수준에서. 예를 들어, 총 오류 백분율이 임계값을 초과하지 않도록 합니다. 조건의 구조는 다음과 Aggregate_function (client_metric) condition threshold같습니다.
  • JMeter 요청 수준(JMeter 샘플러)에서. 예를 들어 getProducts 요청의 응답 시간 임계값을 지정할 수 있지만 로그인 요청의 응답 시간은 무시할 수 있습니다. 조건의 구조는 다음과 Request: Aggregate_function (client_metric) condition threshold같습니다.

다음 표에서는 다양한 구성 요소에 대해 설명합니다.

매개 변수 설명
Client metric 필수입니다. 조건을 적용해야 하는 클라이언트 메트릭입니다.
Aggregate function 필수입니다. 클라이언트 메트릭에 적용할 집계 함수입니다.
Condition 필수입니다. greater than 또는 less than과 같은 비교 연산자입니다.
Threshold 필수입니다. 클라이언트 메트릭과 비교할 숫자 값입니다.
Request 선택 사항. 기준이 적용되는 JMeter 스크립트의 샘플러 이름입니다. 요청 이름을 지정하지 않으면 기준이 스크립트의 모든 요청 집계에 적용됩니다.
JMeter 스크립트의 샘플러 이름에 개인 데이터를 포함하지 마세요. 샘플러 이름은 Azure Load Testing 결과 대시보드에 표시됩니다.

실패 조건에 대해 지원되는 클라이언트 메트릭

Azure Load Testing은 다음 클라이언트 메트릭을 지원합니다.

메트릭 집계 함수 Threshold 조건 설명
response_time_ms avg(평균)
min(최소)
max(최대)
pxx(백분위수), xx는 50, 75, 90, 95, 96, 97, 98, 99, 999 및 9999일 수 있음
밀리초(ms)를 나타내는 정수 값입니다. >(보다 큼)
<(보다 작음)
응답 시간 또는 경과 시간(밀리초)입니다. Apache JMeter 설명서에서 경과 시간에 대해 자세히 알아봅니다.
latency avg(평균)
min(최소)
max(최대)
pxx(백분위수), xx는 50, 90, 95, 99일 수 있습니다.
밀리초(ms)를 나타내는 정수 값입니다. >(보다 큼)
<(보다 작음)
대기 시간(밀리초) Apache JMeter 설명서에서 대기 시간에 대해 자세히 알아봅니다.
error percentage 백분율을 나타내는 0~100 범위의 숫자 값입니다. >(보다 큼) 실패한 요청의 비율입니다.
requests_per_sec avg(평균) 소수점 이하 두 자리까지의 숫자 값입니다. >(보다 큼)
<(보다 작음)
초당 요청 수
requests count 정수 값입니다. >(보다 큼)
<(보다 작음)
총 요청 수입니다.

클라이언트 메트릭에 대한 부하 테스트 실패 조건 정의

이 섹션에서는 Azure Portal에서 부하 테스트에 대한 클라이언트 메트릭에 대한 테스트 조건을 구성합니다.

  1. Azure Portal에서 Azure Load Testing 리소스로 이동합니다.

  2. 왼쪽 창에서 테스트를 선택하여 부하 테스트 목록을 봅니다.

  3. 목록에서 부하 테스트를 선택한 다음 편집을 선택합니다.

    '편집' 단추가 강조 표시된 Azure Portal의 Azure Load Testing 리소스에 대한 테스트 목록 스크린샷.

  4. 테스트 조건 창에서 메트릭, 집계 함수, 조건임계값 값을 테스트.

    Azure Portal의 부하 테스트에 대한 '테스트 조건' 창 스크린샷과 테스트 조건 추가를 위한 필드 강조 표시.

    선택적으로 요청 이름 정보를 입력하여 특정 JMeter 요청에 대한 테스트 기준을 추가합니다. 값은 JMX 파일의 JMeter 샘플러 이름과 일치해야 합니다.

    요청 이름이 강조 표시된 JMeter 사용자 인터페이스의 스크린샷.

  5. 적용을 선택하여 변경 내용을 저장합니다.

    이제 부하 테스트를 실행하면 Azure Load Testing은 테스트 조건을 사용하여 부하 테스트 실행 상태를 결정합니다.

  6. 테스트를 실행하고 부하 테스트 대시보드에서 상태를 확인합니다.

    대시보드에는 각 테스트 조건과 해당 상태가 표시됩니다. 하나 이상의 기준이 충족되면 전체 테스트 상태가 실패로 표시됩니다.

    부하 테스트 대시보드의 테스트 조건을 보여 주는 스크린샷.

서버 메트릭의 테스트 조건에 대한 앱 구성 요소 액세스

앱 구성 요소의 메트릭에 대한 오류 조건을 설정하는 경우 부하 테스트 리소스는 해당 구성 요소에 액세스하기 위해 관리 ID를 사용합니다. 관리 ID를 구성한 후 앱 구성 요소에서 이러한 값을 읽으려면 부하 테스트 리소스 권한의 관리 ID를 부여해야 합니다.

앱 구성 요소에서 메트릭을 읽을 수 있는 Azure 부하 테스트 리소스 권한을 부여하려면 다음을 수행합니다.

  1. Azure Portal에서 앱 구성 요소로 이동합니다.

  2. 왼쪽 창에서 액세스 제어(IAM)를 선택한 다음+ 추가를 선택한 다음 역할 할당 추가를 선택합니다.

    실패 조건을 설정할 애플리케이션 구성 요소의 IAM(Access Control) 스크린샷

  3. 역할 탭의 작업 함수 역할에서 모니터링 읽기 권한자 또는 모니터링 기여자를 검색합니다.

  4. 구성원 탭의 액세스 권한 할당 아래에서 관리 ID 선택합니다.

  5. 구성원 선택을 클릭하고, 부하 테스트 리소스에 대한 관리 ID를 검색하고 선택한 다음, 다음을 선택합니다. 시스템 할당 관리 ID를 사용하는 경우 관리 ID 이름은 Azure Load Testing 리소스의 이름과 일치합니다.

  6. 검토 + 할당을 선택하여 ID에 권한을 할당합니다.

    부하 테스트 리소스에 메트릭을 읽을 수 있는 권한을 할당하는 스크린샷

테스트가 실행되면 부하 테스트 리소스와 연결된 관리 ID가 이제 앱 구성 요소에서 부하 테스트에 대한 메트릭을 읽을 수 있습니다.

서버 메트릭에 대한 부하 테스트 실패 조건 정의

Important

Azure Load Testing은 Azure Pipelines/Github Actions의 서버 쪽 메트릭에 대한 오류 조건 구성을 지원하지 않습니다.

이 섹션에서는 Azure Portal의 부하 테스트에 대한 서버 쪽 메트릭에서 테스트 실패 조건을 구성합니다.

  1. Azure Portal에서 Azure Load Testing 리소스로 이동합니다.

  2. 테스트 만들기를 선택합니다.

  3. 모니터링에서 테스트 중에 모니터링할 앱 구성 요소를 구성합니다.

  4. 메트릭 참조 ID를 구성합니다. ID는 부하 테스트 리소스의 시스템 할당 ID 또는 사용자 할당 ID 중 하나입니다. 앞에서 액세스 권한을 부여한 것과 동일한 ID를 사용해야 합니다.

    메트릭 참조 ID를 구성하는 스크린샷

  5. 테스트 조건 창에서 테스트에 대한 리소스 ID, 네임스페이스, 메트릭, 집계, 조건, 임계값을 채웁니다. 테스트 중에 모니터링하는 리소스/앱 구성 요소에 대해서만 실패 조건을 설정할 수 있습니다.

    서버 메트릭에서 오류 조건을 구성하는 스크린샷

  6. 적용을 선택하여 변경 내용을 저장합니다. 이제 부하 테스트를 실행하면 Azure Load Testing은 테스트 조건을 사용하여 부하 테스트 실행 상태를 결정합니다.

  7. 테스트를 실행하고 부하 테스트 대시보드에서 상태를 확인합니다. 대시보드에는 각 테스트 조건과 해당 상태가 표시됩니다. 하나 이상의 기준이 충족되면 전체 테스트 상태가 실패로 표시됩니다.

    테스트 결과를 표시하는 대시보드의 스크린샷.

자동 중지 구성

Azure Load Testing은 오류율이 특정 시간 동안 지정된 임계값을 초과하는 경우 부하 테스트를 자동으로 중지합니다. 예를 들어 자동 중지는 잘못 구성된 엔드포인트 URL로 인해 추가 비용이 발생하는 테스트 실패로부터 사용자를 보호합니다.

부하 테스트 구성에서 자동 중지 기능을 사용하거나 사용하지 않도록 설정하고 오류 비율 임계값 및 시간을 구성할 수 있습니다. 기본적으로 Azure Load Testing은 60초 동안 오류 비율이 90% 이상인 부하 테스트를 자동으로 중지합니다.

JMeter 스크립트의 AutoStop 수신기와 함께 Azure Load Testing 자동 중지 기능을 사용할 수 있습니다. 자동 중지 구성 또는 JMeter AutoStop 수신기의 조건 중 하나라도 충족되면 부하 테스트가 자동으로 중지됩니다.

주의

부하 테스트에 대해 자동 중지를 사용하지 않도록 설정하면 부하 테스트가 잘못 구성된 경우에도 비용이 발생할 수 있습니다.

Azure Portal에서 부하 테스트에 대한 자동 중지를 구성하려면 다음을 수행합니다.

  1. Azure Portal에서 Azure Load Testing 리소스로 이동합니다.

  2. 왼쪽 창에서 테스트를 선택하여 부하 테스트 목록을 봅니다.

  3. 목록에서 부하 테스트를 선택한 다음 편집을 선택합니다. 또는 만들기>Upload a JMeter script(JMeter 스크립트 업로드)를 선택하여 새 테스트를 만듭니다.

  4. Test criteria(테스트 조건) 탭으로 이동하여 자동 중지 기능을 구성합니다.

    • 자동 중지 테스트 컨트롤을 사용하여 부하 테스트 자동 중지를 사용하거나 사용하지 않도록 설정합니다.

    • 자동 중지를 사용하도록 설정하면 Error percentage(오류 비율)Time window(시간) 필드를 작성할 수 있습니다. 시간을 초 단위로 지정합니다.

      Azure Portal에서 자동 중지 기능을 강조 표시하는 부하 테스트에 대한 '테스트 조건' 창의 스크린샷.

  5. 새 부하 테스트를 만드는 경우 적용 또는 검토 + 만들기를 선택하여 변경 내용을 저장합니다.

다음 단계