CI/CD 파이프라인을 만들어 Azure Load Testing에서 부하 테스트를 자동화할 수 있습니다. 이 문서에서는 Azure Load Testing에서 기존 테스트를 호출하도록 GitHub Actions, Azure Pipelines 또는 기타 CI 도구를 수동으로 구성하는 방법을 알아봅니다. 부하 테스트를 자동화하여 부하 상태에서 애플리케이션 성능 및 안정성의 유효성을 지속적으로 검사합니다.
CI/CD 파이프라인에 기존 부하 테스트를 추가하려면 다음을 수행합니다.
CI 도구가 Azure 부하 테스트 리소스에 연결할 수 있도록 서비스 인증을 구성합니다.
JMeter 테스트 스크립트 및 부하 테스트 YAML 구성과 같은 부하 테스트 입력 파일을 리포지토리에 추가합니다.
AZURE Load Testing을 호출하도록 CI/CD 파이프라인 정의를 업데이트합니다.
구성원 탭에서 구성원 선택을 선택한 다음 이전에 복사한 표시 이름을 사용하여 서비스 주체를 검색합니다.
서비스 주체를 선택한 다음 선택을 선택합니다.
검토 + 할당 탭에서 검토 + 할당을 선택하여 역할 할당을 추가합니다.
이제 Azure Pipelines 워크플로 정의에서 서비스 연결을 사용하여 Azure 부하 테스트 리소스에 액세스할 수 있습니다.
GitHub Actions 워크플로에서 Azure Load Testing 리소스에 액세스하려면 먼저 Microsoft Entra 서비스 주체를 만듭니다. 이 서비스 주체는 Microsoft Entra ID의 GitHub Actions 워크플로를 나타냅니다.
다음으로, 이 서비스 주체에게 Azure Load Testing 리소스를 사용하여 부하 테스트를 만들고 실행할 수 있는 권한을 부여합니다.
서비스 주체 만들기
Azure 구독에서 서비스 주체를 만들고 부하 테스트 참가자 역할을 할당하여 GitHub Actions 워크플로가 Azure 부하 테스트 리소스에 액세스하여 부하 테스트를 실행할 수 있도록 허용합니다.
서비스 주체를 만들고 Load Test Contributor 역할을 할당합니다.
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
출력은 서비스 주체를 나타내는 JSON 개체입니다. 이 정보를 사용하여 GitHub Actions 워크플로에서 Azure로 인증합니다.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
참고 항목
이 명령을 실행할 때 --sdk-auth 사용 종료 경고가 표시될 수 있습니다. 또는 OIDC(OpenID Connect) 기반 인증을 사용하여 Azure로 GitHub를 인증할 수 있습니다. OpenID Connect에서 Azure 로그인 작업을 사용하는 방법을 알아봅니다.
출력 JSON 개체를 클립보드에 복사합니다.
다음 단계에서는 서비스 주체 정보를 GitHub Actions 비밀로 저장합니다.
GitHub Actions 비밀에 Azure 자격 증명 저장
GitHub Actions 비밀을 만들어 서비스 주체 정보를 안전하게 저장합니다. 워크플로 정의에서 이 비밀을 사용하여 Azure로 인증하고 Azure 부하 테스트 리소스에 액세스하기 위해 연결합니다.
새 리포지토리 비밀을 선택하고 비밀 정보를 입력한 다음 비밀 추가를 선택하여 새 비밀을 만듭니다.
필드
값
이름
AZURE_CREDENTIALS
비밀
이전에 복사한 서비스 주체 만들기 명령의 JSON 출력을 붙여넣습니다.
이제 저장된 자격 증명을 사용하여 GitHub Actions 워크플로에서 Azure 구독에 액세스하고 리소스를 로드할 수 있습니다.
다른 CI/CD 도구를 사용하는 경우 Azure CLI를 사용하여 Azure 리소스와 상호 작용합니다. 다음 단계를 수행하여 부하 테스트 리소스에 대한 CI 도구 액세스 권한을 부여합니다.
Azure 구독에 연결하고 Azure 부하 테스트 리소스에 액세스할 Microsoft Entra 서비스 주체를 만듭니다.
부하 테스트 참가자 역할을 할당하여 부하 테스트를 만들고 실행할 수 있는 권한을 서비스 주체에게 부여합니다.
AZURE 자격 증명을 CI 도구에 안전하게 저장합니다.
CI 도구에 대한 서비스 권한 부여를 구성하려면 다음 단계를 수행합니다.
서비스 사용자를 만들고 부하 테스트 기여자 역할을 지정
<resource-group-name> 및 <load-testing-resource-name> 텍스트 자리 표시자를 바꿉니다.
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
출력은 서비스 주체를 나타내는 JSON 개체입니다.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
clientId, clientSecret, tenantId 값을 복사하고 CI 도구에 비밀로 안전하게 저장합니다.
해당 값을 사용하여 Azure CLI az login 명령으로 Azure 구독에 로그인합니다.
리포지토리에 부하 테스트 파일 추가
CI/CD 워크플로에서 Azure Load Testing을 사용하여 부하 테스트를 실행하려면 소스 제어 리포지토리에 모든 부하 테스트 입력 파일을 추가해야 합니다.
Azure CLI를 사용하여 Azure 부하 테스트 리소스에 대한 부하 테스트를 실행하도록 CI 워크플로를 업데이트합니다. CI 도구의 세부 정보를 사용하여 CI 워크플로에 다음 명령을 추가합니다.
서비스 주체를 사용하여 Azure 구독에 로그인합니다.
이전에 저장한 clientId, clientSecret 및 tenandId 값을 사용합니다.
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
az account set -s $AZURE_SUBSCRIPTION_ID
부하 테스트 구성 YAML 파일을 사용하여 부하 테스트를 만듭니다.
<load-testing-resource>, <load-testing-resource-group> 및 <load-test-config-yaml> 텍스트 자리 표시자를 부하 테스트 리소스의 이름, 리소스 그룹 이름 및 이전에 리포지토리에 추가한 부하 테스트 구성 YAML 파일의 파일 이름으로 바꿉니다.
az load test create --load-test-resource <load-testing-resource> --resource-group <load-testing-resource-group> --test-id sample-test-id --load-test-config-file <load-test-config-yaml>
부하 테스트를 실행합니다.
testRunId="run_"`date +"%Y%m%d%_H%M%S"`
displayName="Run"`date +"%Y/%m/%d_%H:%M:%S"`
az load test-run create --load-test-resource <load-testing-resource> --test-id sample-test-id --test-run-id $testRunId --display-name $displayName --description "Test run from CLI"
부하 테스트 실행을 위한 클라이언트 쪽 메트릭을 검색하고 표시합니다.
az load test-run metrics list --load-test-resource <load-testing-resource> --test-run-id $testRunId --metric-namespace LoadTestRunMetrics
부하 테스트 결과 보기
CI/CD 파이프라인에서 부하 테스트를 실행하는 경우 CI/CD 출력 로그에서 직접 요약 결과를 볼 수 있습니다. 테스트 결과를 파이프라인 아티팩트로 게시한 경우 추가 보고를 위해 CSV 파일을 다운로드할 수도 있습니다.