부하 테스트를 실행하기 위해 CI/CD 워크플로 수동 구성

CI/CD 파이프라인을 만들어 Azure Load Testing에서 부하 테스트를 자동화할 수 있습니다. 이 문서에서는 Azure Load Testing에서 기존 테스트를 호출하도록 GitHub Actions, Azure Pipelines 또는 기타 CI 도구를 수동으로 구성하는 방법을 알아봅니다. 부하 테스트를 자동화하여 부하 상태에서 애플리케이션 성능 및 안정성의 유효성을 지속적으로 검사합니다.

CI/CD 파이프라인에 기존 부하 테스트를 추가하려면 다음을 수행합니다.

  • CI 도구가 Azure 부하 테스트 리소스에 연결할 수 있도록 서비스 인증을 구성합니다.
  • JMeter 테스트 스크립트 및 부하 테스트 YAML 구성과 같은 부하 테스트 입력 파일을 리포지토리에 추가합니다.
  • AZURE Load Testing을 호출하도록 CI/CD 파이프라인 정의를 업데이트합니다.

필수 조건

서비스 인증 구성

CI/CD 워크플로에서 부하 테스트를 실행하려면 CI/CD 워크플로에 대한 권한을 부여하여 부하 테스트 리소스에 액세스해야 합니다. CI/CD 워크플로에 대한 서비스 주체를 만들고 부하 테스트 기여자 Azure RBAC 역할을 할당합니다.

Azure Pipelines에서 서비스 연결 만들기

Azure Pipelines에서 Azure DevOps 프로젝트 서비스 연결을 만들어 Azure 구독의 리소스에 액세스합니다. 서비스 연결을 만들 때 Azure DevOps는 Microsoft Entra 서비스 주체 개체를 만듭니다.

  1. Azure DevOps 조직(https://dev.azure.com/<your-organization>)에 로그인하고 프로젝트를 선택합니다.

    <your-organization> 텍스트 자리 표시자를 프로젝트 식별자로 바꿉니다.

  2. 프로젝트 설정>서비스 연결>+새 서비스 연결을 선택합니다.

  3. 새 서비스 연결 창에서 Azure Resource Manager, 다음을 차례로 선택합니다.

  4. 서비스 주체(자동) 인증 방법을 선택한 후 다음을 선택합니다.

  5. 서비스 연결 세부 정보를 입력한 다음, 저장을 선택하여 서비스 연결을 만듭니다.

    필드
    범위 수준 구독.
    구독 부하 테스트 리소스를 호스트할 Azure 구독을 선택합니다.
    리소스 그룹 부하 테스트 리소스가 포함된 리소스 그룹을 선택합니다.
    서비스 연결 이름 서비스 연결의 고유한 이름을 입력합니다.
    모든 파이프라인에 액세스 권한 부여 선택됨.
  6. 서비스 연결 목록에서 이전에 만든 연결을 선택한 다음 서비스 주체 관리를 선택합니다.

    Screenshot that shows selections for managing a service principal.

    Azure Portal이 별도의 브라우저 탭에서 열리고 서비스 주체 세부 정보를 표시합니다.

  7. Azure Portal에서 표시 이름 값을 복사합니다.

    이 값은 다음 단계에서 부하 테스트를 실행할 수 있는 권한을 서비스 주체에게 부여하는 데 사용됩니다.

Azure Load Testing에 대한 액세스 권한 부여

Azure Load Testing은 Azure RBAC를 사용하여 부하 테스트 리소스에 특정 작업을 수행하기 위한 권한을 부여합니다. CI/CD 파이프라인에서 부하 테스트를 실행하려면 부하 테스트 기여자 역할을 서비스 주체에 부여합니다.

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

  2. 액세스 제어(IAM)>추가>역할 할당 추가를 선택합니다.

  3. 역할 탭의 작업 함수 역할 목록에서 부하 테스트 기여자를 선택합니다.

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. 구성원 탭에서 구성원 선택을 선택한 다음 이전에 복사한 표시 이름을 사용하여 서비스 주체를 검색합니다.

  5. 서비스 주체를 선택한 다음 선택을 선택합니다.

  6. 검토 + 할당 탭에서 검토 + 할당을 선택하여 역할 할당을 추가합니다.

이제 Azure Pipelines 워크플로 정의에서 서비스 연결을 사용하여 Azure 부하 테스트 리소스에 액세스할 수 있습니다.

리포지토리에 부하 테스트 파일 추가

CI/CD 워크플로에서 Azure Load Testing을 사용하여 부하 테스트를 실행하려면 소스 제어 리포지토리에 모든 부하 테스트 입력 파일을 추가해야 합니다.

기존 부하 테스트가 없는 경우 소스 코드 리포지토리에 다음 파일을 추가합니다.

  • 테스트 구성 YAML 파일을 로드합니다. 부하 테스트 구성 YAML 파일을 만드는 방법을 알아봅니다.
  • 테스트 계획 파일입니다. JMeter 기반 테스트의 경우 JMeter 테스트 스크립트(JMX 파일)를 추가합니다. URL 기반 테스트의 경우 요청 JSON 파일을 추가합니다.
  • 모든 JMeter 사용자 속성 파일입니다.
  • 테스트 계획에서 사용하는 모든 입력 데이터 파일입니다. CSV 데이터 파일을 예로 들 수 있습니다.

기존 부하 테스트가 있는 경우 Azure Portal에서 직접 구성 설정 및 모든 입력 파일을 다운로드할 수 있습니다. Azure Portal에서 기존 부하 테스트에 대한 입력 파일을 다운로드하려면 다음 단계를 수행합니다.

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

  2. 왼쪽 창에서 테스트를 선택하여 부하 테스트 목록을 확인한 다음, 테스트를 선택합니다.

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. 작업 중인 테스트 실행 옆에 있는 줄임표(...)를 선택한 다음 입력 파일 다운로드를 선택합니다.

    브라우저가 부하 테스트 입력 파일이 포함된 압축 폴더를 다운로드합니다.

    Screenshot that shows how to download the results file for a load test run.

  4. Zip 도구를 사용하여 입력 파일을 추출합니다.

    이 폴더에는 다음 파일이 포함되어 있습니다.

    • config.yaml: 부하 테스트 YAML 구성 파일입니다. CI/CD 워크플로 정의에서 이 파일을 참조합니다.
    • .jmx: JMeter 테스트 스크립트
    • 부하 테스트를 실행하는 데 필요한 CSV 파일 또는 사용자 속성 파일과 같은 추가 입력 파일입니다.
  5. 추출된 모든 입력 파일을 소스 제어 리포지토리에 커밋합니다.

    CI/CD 파이프라인을 구성하는 소스 코드 리포지토리를 사용합니다.

CI/CD 워크플로 정의 업데이트

Azure Load Testing은 GitHub Actions와 Azure Pipelines의 부하 테스트 실행을 모두 지원합니다.

Azure DevOps용 Azure Load Testing 확장 설치

부하 테스트를 만들고 실행하기 위해 Azure Pipelines 워크플로 정의는 Azure DevOps Marketplace의 Azure Load Testing 작업 확장을 사용합니다.

  1. Azure DevOps Marketplace의 Azure Load Testing 작업 확장을 열고 무료 다운로드를 선택합니다.

  2. Azure DevOps 조직을 선택한 다음, 설치를 선택하여 확장을 설치합니다.

    선택한 Azure DevOps 조직에 대한 관리자 권한이 없는 경우 요청을 선택하여 관리자에게 확장을 설치하도록 요청합니다.

Azure Pipelines 워크플로 업데이트

Azure Load Testing 리소스에 대한 부하 테스트를 실행하도록 Azure Pipelines 워크플로를 업데이트합니다.

  1. Azure DevOps 조직(https://dev.azure.com/<your-organization>)에 로그인하고 프로젝트를 선택합니다.

  2. 왼쪽 탐색 영역에서 파이프라인을 선택하고 원하는 파이프라인을 선택한 다음 편집을 선택하여 워크플로 정의를 편집합니다.

    또는 파이프라인 만들기를 선택하여 Azure Pipelines에서 새 파이프라인을 만듭니다.

  3. AzureLoadTest 태스크를 사용하여 부하 테스트를 실행합니다.

    앞서 loadTestConfigFile 속성에서 내보낸 부하 테스트 구성 파일을 지정합니다.

    <load-testing-resource><load-testing-resource-group> 텍스트 자리 표시자를 Azure 부하 테스트 리소스 및 리소스 그룹의 이름으로 바꿉니다.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    필요에 따라 env 또는 secrets 속성을 사용하여 매개 변수 또는 비밀을 부하 테스트에 전달할 수 있습니다.

  4. publish 작업을 사용하여 테스트 결과를 Azure Pipelines 워크플로 실행의 아티팩트로 게시합니다.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

부하 테스트 결과 보기

CI/CD 파이프라인에서 부하 테스트를 실행하는 경우 CI/CD 출력 로그에서 직접 요약 결과를 볼 수 있습니다. 테스트 결과를 파이프라인 아티팩트로 게시한 경우 추가 보고를 위해 CSV 파일을 다운로드할 수도 있습니다.

Screenshot that shows the workflow logging information.

리소스 정리

만든 리소스를 사용할 계획이 없다면 추가 요금이 발생하지 않도록 삭제합니다.

  1. Azure Pipelines 변경 내용 제거:

    1. Azure DevOps 조직(https://dev.azure.com/<your-organization>)에 로그인하고 프로젝트를 선택합니다.

      <your-organization> 텍스트 자리 표시자를 프로젝트 식별자로 바꿉니다.

    2. 새 파이프라인을 만든 경우:

      1. 파이프라인을 선택하고 파이프라인을 선택합니다.

      2. 줄임표를 선택한 다음, 삭제를 선택합니다.

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. 파이프라인 이름을 입력한 다음 삭제를 선택하여 파이프라인을 삭제합니다.

    3. 기존 워크플로 정의를 수정한 경우 부하 테스트를 실행하기 위한 수정 내용을 실행 취소하고 워크플로를 저장합니다.

  2. 서비스 연결 제거:

    1. 프로젝트 설정>서비스 연결을 선택한 다음, 원하는 서비스 연결을 선택합니다.
    2. 편집>삭제를 선택하여 서비스 연결을 제거합니다.

다음 단계

다음 문서로 이동하여 테스트 실패 조건을 정의하고 테스트 실행을 비교하여 성능 저하를 식별하는 방법을 알아봅니다.