다음을 통해 공유


Azure Load Testing에서 URL 기반 부하 테스트에 요청 추가

이 문서에서는 Azure Load Testing에서 URL 기반 부하 테스트에 HTTP 요청을 추가하는 방법을 알아봅니다. URL 기반 부하 테스트를 사용하여 부하 테스트 도구 및 스크립팅에 대한 사전 지식 없이 웹 애플리케이션 또는 REST 엔드포인트와 같은 HTTP 엔드포인트의 유효성을 검사합니다.

AZURE 지원 URL 기반 부하 테스트에서 HTTP 요청을 정의하는 두 가지 방법입니다. 부하 테스트 내에서 두 메서드를 결합할 수 있습니다.

  • 엔드포인트 URL, HTTP 메서드, 헤더, 쿼리 매개 변수 또는 요청 본문과 같은 HTTP 엔드포인트 세부 정보를 지정합니다.
  • HTTP 요청에 대한 cURL 명령을 입력합니다.

종속 요청이 있는 경우 한 요청에서 응답 값을 추출하고 후속 요청에 입력으로 전달할 수 있습니다. 예를 들어 먼저 고객 세부 정보를 검색하고 고객 ID를 추출하여 고객 주문 세부 정보를 검색할 수 있습니다.

CI/CD 워크플로에서 URL 기반 부하 테스트를 사용하는 경우 HTTP 요청을 포함하는 JSON 파일을 부하 테스트에 전달할 수 있습니다.

URL 기반 부하 테스트에 최대 5개의 요청을 추가할 수 있습니다. 더 복잡한 부하 테스트의 경우 JMeter 테스트 스크립트를 업로드하여 부하 테스트를 만들 수 있습니다. 예를 들어 5개 이상의 요청이 있거나, 비 HTTP 프로토콜을 사용하거나, JMeter 플러그 인을 사용해야 하는 경우입니다.

필수 조건

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

HTTP 세부 정보를 사용하여 요청 추가

HTTP 요청 세부 정보를 제공하여 URL 기반 부하 테스트에 대한 HTTP 요청을 지정할 수 있습니다. 다음 표에서는 Azure Load Testing에서 HTTP 요청에 대해 구성할 수 있는 필드를 나열합니다.

필드 세부 정보
URL HTTP 엔드포인트 URL입니다. 예: https://www.contoso.com/products.
메서드 HTTP 메서드입니다. Azure Load Testing은 GET, POST, PUT, DELETE, PATCH, HEAD 및 OPTIONS를 지원합니다.
쿼리 매개 변수 (선택 사항) URL에 추가할 쿼리 문자열 매개 변수를 입력합니다.
HTTP 헤더 (선택 사항) HTTP 요청에 포함할 HTTP 헤더를 입력합니다. 요청에 대해 최대 20개의 헤더를 추가할 수 있습니다.
요청 본문 (선택 사항) HTTP 메서드에 따라 HTTP 본문 콘텐츠를 지정할 수 있습니다. Azure Load Testing은 원시 데이터, JSON 뷰, JavaScript, HTML 및 XML 형식을 지원합니다.

URL 기반 부하 테스트에 HTTP 요청을 추가하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 부하 테스트 리소스로 이동합니다.

  2. 왼쪽 탐색 창에서 테스트를 선택하여 모든 테스트를 봅니다.

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

    목록에서 URL 기반 부하 테스트를 선택하고 기본 탭에서 고급 설정 사용을 사용하도록 설정했는지 확인합니다.

  4. 테스트 계획 탭으로 이동하여 요청 추가를 선택합니다.

    Screenshot that shows how to add a request to a URL-based load test in the Azure portal.

  5. UI에서 입력 추가를 선택하여 HTTP 요청 세부 정보를 입력합니다.

  6. HTTP 요청 세부 정보를 입력한 다음 추가를 선택하여 부하 테스트에 요청을 추가합니다.

    필드 설명
    요청 형식 UI에서 입력 추가를 선택하여 Azure Portal의 필드를 통해 요청 세부 정보를 구성합니다.
    요청 이름 요청에 대한 고유한 이름을 입력합니다. 테스트 실패 조건을 정의할 때 이 요청 이름을 참조할 수 있습니다.
    URL 애플리케이션 엔드포인트의 URL입니다.
    방법 목록에서 HTTP 메서드를 선택합니다. Azure Load Testing은 GET, POST, PUT, DELETE, PATCH, HEAD 및 OPTIONS를 지원합니다.
    쿼리 매개 변수 (선택 사항) URL에 추가할 쿼리 문자열 매개 변수를 입력합니다.
    헤더 (선택 사항) HTTP 요청에 포함할 HTTP 헤더를 입력합니다.
    본문 (선택 사항) HTTP 메서드에 따라 HTTP 본문 콘텐츠를 지정할 수도 있습니다. Azure Load Testing은 원시 데이터, JSON 뷰, JavaScript, HTML 및 XML 형식을 지원합니다.

    Screenshot that shows the details page to add an HTTP request by using UI fields in the Azure portal.

  7. 적용을 선택하여 부하 테스트를 저장합니다.

cURL을 사용하여 요청 추가

HTTP 요청 세부 정보를 제공하는 대신 URL 기반 부하 테스트에서 HTTP 요청에 대한 cURL 명령을 제공할 수도 있습니다. cURL 은 URL 기반 요청에 대한 명령줄 도구 및 라이브러리입니다.

다음 단계에 따라 cURL 명령을 사용하여 부하 테스트에 HTTP 요청을 추가합니다.

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

    목록에서 URL 기반 부하 테스트를 선택하고 기본 탭에서 고급 설정 사용을 사용하도록 설정했는지 확인합니다.

  2. 테스트 계획 탭으로 이동하여 요청 추가를 선택합니다.

  3. cURL 추가 명령을 선택하여 cURL을 사용하여 HTTP 요청을 만듭니다.

  4. cURL 명령 필드에 cURL 명령을 입력한 다음 추가를 선택하여 부하 테스트에 요청을 추가합니다.

    다음 예제에서는 cURL을 사용하여 HTTP 헤더를 지정하여 HTTP GET 요청을 수행합니다.

    curl --request GET 'http://www.contoso.com/customers?version=1' --header 'api-token: my-token'
    

    Screenshot that shows the details page to add an HTTP request by using a cURL command in the Azure portal.

  5. 적용을 선택하여 부하 테스트를 저장합니다.

HTTP 요청에서 변수 사용

HTTP 요청에 변수를 사용하여 테스트를 보다 유연하게 만들거나 테스트 계획에 비밀을 포함하지 않도록 할 수 있습니다. 예를 들어 엔드포인트의 do기본 이름과 함께 환경 변수를 사용한 다음 개별 HTTP 요청에서 변수 이름을 사용할 수 있습니다. 변수를 사용하면 테스트 계획을 보다 유연하고 기본 달성할 수 있습니다.

Azure Load Testing에서 URL 기반 부하 테스트를 사용하면 변수를 사용하여 다음 정보를 참조할 수 있습니다.

요청에서 변수를 참조하는 구문은 다음과 ${variable-name}같습니다.

다음 스크린샷에서는 .를 사용하여 ${token}HTTP 헤더에서 변수를 참조 token 하는 방법을 보여줍니다.

Screenshot that shows the request details page in the Azure portal, highlighting a variable reference in an HTTP header.

참고 항목

인증서를 지정하는 경우 Azure Load Testing은 각 HTTP 요청의 인증서를 자동으로 전달합니다.

종속 요청에 응답 변수 사용

이전 요청에 사용되지 않는 HTTP 요청을 만들려면 응답 변수를 사용할 수 있습니다. 예를 들어 첫 번째 요청에서 API에서 항목 목록을 검색하고, 첫 번째 결과에서 ID를 추출한 다음, 후속 작업을 수행하고 이 ID를 쿼리 문자열 매개 변수로 전달할 수 있습니다.

Azure Load Testing은 HTTP 요청에서 값을 추출하고 변수에 저장하는 다음 옵션을 지원합니다.

  • JSONPath
  • XPath
  • 정규식

예를 들어 다음 예제에서는 XPathExtractor를 사용하여 요청 본문을 응답 변수에 token 저장하는 방법을 보여 줍니다. 그런 다음 다른 HTTP 요청에서 이 값을 참조하는 데 사용할 ${token} 수 있습니다.

"responseVariables": [
    {
        "extractorType": "XPathExtractor",
        "expression": "/note/body",
        "variableName": "token"
    }
]