Visual Studio Code용 Azure Load Testing 확장을 사용하여 Copilot를 사용하여 메뚜기 부하 테스트를 쉽게 만들고, 로컬로 반복하고, Azure에서 쉽게 스케일링하는 방법을 알아봅니다. Locust 또는 성능 테스트 전문가를 비롯한 Azure Load Testing 확장은 VS Code 환경에서 바로 테스트 만들기, 반복 및 크기 조정을 간소화합니다. Azure Load Testing은 클라우드 규모에서 부하 테스트를 실행할 수 있는 관리되는 서비스입니다. Locust 는 Python 코드에서 모든 테스트를 작성할 수 있는 오픈 소스 부하 테스트 도구입니다.
이 빠른 시작에서는 실제 부하 테스트를 생성, 구체화 및 실행하는 것을 안내합니다. 결국 Postman 컬렉션, Insomnia 컬렉션 또는 .http 파일에서 생성된 완전 기능 부하 테스트 스크립트가 코필로트 기반 개선으로 향상되고 Azure Load Testing에서 확장할 준비가 됩니다.
필수 조건
- VS Code용 Azure Load Testing 확장. 다운로드하여 여기에 설치합니다.
- GitHub 코필로트. VS Code에서 Copilot를 설정 하여 테스트 스크립트를 생성하고 구체화합니다. 구독이 없는 경우 평가판을 활성화할 수 있습니다.
- Python 및 Locust. VS Code에서 로컬로 Locust 테스트 스크립트를 실행하고 유효성을 검사하는 데 필요합니다. 여기에 메뚜기를 설치합니다.
- 활성 구독이 있는 Azure 계정. Azure Load Testing에서 대규모로 부하 테스트를 실행하는 데 필요합니다. 무료로 계정을 만듭니다.
팁 (조언)
VS Code의 GitHub Copilot 채팅은 여러 AI 모델을 제공합니다. 채팅 입력 필드에서 모델 선택기를 사용하여 모델을 전환할 수 있습니다. 사용할 항목을 잘 모르는 경우 GPT-4o를 사용하는 것이 좋습니다.
연습 열기
시작하려면 VS Code에서 명령 팔레트를 열고 다음을 실행합니다. 부하 테스트: 연습 열기. 이 연습에서는 확장의 주요 진입점을 제공합니다.
부하 테스트 접두사를 사용하여 명령 팔레트에서 직접 기능에 액세스할 수도 있습니다. 일반적으로 사용되는 몇 가지 명령은 다음과 같습니다.
코필로트를 사용하여 메뚜기 스크립트 생성
기존 Postman 컬렉션, 불면증 컬렉션 또는 .http 파일에서 Locust 스크립트를 생성할 수 있습니다. 파일에 여러 요청이 포함된 경우 Copilot는 이를 응집력 있는 시나리오로 순서를 지정하려고 시도합니다.
연습에서 부하 테스트 만들기 단추를 클릭하거나 명령 팔레트에서 부하 테스트: 메뚜기 테스트 만들기 를 실행합니다.
원본을 선택하여 Locust 테스트 스크립트를 자동으로 생성할 수 있습니다.
- Postman 컬렉션, Insomnia 컬렉션 또는 .http 파일을 선택하면 Copilot가 여러 API 작업, 요청 데이터 및 인증 세부 정보를 추출하여 보다 완전하고 현실적인 부하 테스트를 만들 수 있습니다.
- 단일 URL을 선택하면 단일 엔드포인트 URL을 입력하여 사용자 지정하거나 확장할 수 있는 간단한 스크립트를 생성할 수 있습니다.
이 연습에서는 파일을 사용하여 샘플 메뚜기 테스트 스크립트를 생성하는
petstore-sample.http를 선택할 수 있습니다.Copilot는 선택한 파일을 분석하고 Locust 기반 부하 테스트 스크립트를 생성하여 API 요청을 자동으로 시퀀싱하여 실제 사용량을 시뮬레이션하고 인증을 안전하게 처리합니다.
스크립트가 생성되면 코필로트 채팅 창에서 환경 변수 정의와 같은 다른 설정 단계를 제안합니다. Copilot가 환경 변수를 제안하는 경우 프로젝트에 파일을 만들고
.env권장 값을 추가합니다.
부하 테스트 스크립트 사용자 지정
테스트를 실행하기 전에 Copilot를 사용하여 구체화할 수 있습니다. 예를 들어 스크립트를 검사하면 모든 요청과 함께 동일한 요청 페이로드가 전송되는 것을 알 수 있습니다.
payload = {
"id": self.pet_id,
"name": "Fluffy",
"category": {"id": 1, "name": "Dogs"},
"photoUrls": ["https://example.com/photo.jpg"],
"tags": [{"id": 1, "name": "cute"}],
"status": "available"
}
요청 페이로드를 임의로 지정하여 테스트를 보다 동적으로 만들려면 다음을 수행합니다.
- 코필로트 채팅 패널을 엽니다.
- 형식:
Randomize request payloadsEnter 키를 누릅니다. - 부조종사에서는 임의화를 도입하기 위해 제안된 수정 사항을 생성합니다.
- 코필로트 채팅 창에서 생성된 코드 조각 위에 표시되는 편집기에서 적용 을 클릭합니다.
- 변경 내용을 검토한 후 [유지 ]를 클릭하여 스크립트를 수락하고 업데이트합니다.
- 파일 저장
이제 각 요청은 보다 현실적인 사용자 상호 작용을 시뮬레이션합니다. 코드는 다음 코드 조각과 유사합니다.
payload = {
"id": self.pet_id,
"name": f"Pet{random.randint(1, 1000)}",
"category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
"photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
"tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
"status": random.choice(["available", "pending", "sold"])
}
부하 테스트 실행
다음 두 가지 방법으로 부하 테스트를 실행할 수 있습니다.
- 빠른 유효성 검사를 위해 로컬로 실행
- 대규모 다중 지역 부하에 대한 Azure Load Testing에서 실행
빠른 유효성 검사를 위해 로컬로 실행
테스트의 유효성을 신속하게 검사하려면 Visual Studio Code의 Locust를 사용하여 로컬로 실행합니다.
명령 팔레트를 열고 다음을 실행합니다. 부하 테스트: 부하 테스트 실행(로컬).
Locust 웹 UI는 브라우저에서 자동으로 시작됩니다. Locust 서버가 준비되고 브라우저가 열리려면 몇 초 정도 걸릴 수 있습니다.
새 부하 테스트 시작 페이지에서 입력 필드를 검토하고 시작을 클릭합니다. Locust는 요청 보내기, 오류 로깅 및 성능 통계 추적을 시작합니다.
Locust UI를 탐색하여 응답 시간, 오류 비율 및 요청 처리량을 분석합니다.
팁 (조언)
Locust가 요청 및 Retrieve Pet 실패를 Update Pet 보고하는 경우 Pet Store API가 요청을 처리하는 방식 때문일 수 있습니다. "run_scenario 요청 사이에 임의 지연을 추가"하도록 Copilot에 요청합니다. 스크립트 자체에 문제가 있는 것으로 의심되는 경우 환경 변수로 설정하고 DEBUG_MODE=True 테스트를 다시 실행하여 자세한 디버그 정보를 가져옵니다.
VS Code 터미널에서 테스트를 실행하려는 경우:
VS Code에서 터미널을 엽니다.
다음 명령을 실행합니다.
locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m-
-f path/to/locustfile.py: 메뚜기 테스트 스크립트를 지정합니다. -
-u 10: 최대 10명의 가상 사용자를 시뮬레이션합니다. -
-r 2: 초당 두 명의 가상 사용자를 증가합니다. -
--run-time 1m: 1분 동안 테스트를 실행합니다.
-
브라우저를 열어
http://0.0.0.0:8089Locust 웹 UI를 봅니다.
Azure Load Testing에서 강화
여러 지역에서 수천 명의 동시 가상 사용자를 시뮬레이션해야 하는 높은 부하 시나리오의 경우 Azure Load Testing에서 테스트를 실행할 수 있습니다.
대규모 테스트를 실행하려면 다음을 수행합니다.
명령 팔레트를 열고 다음을 실행합니다. 부하 테스트: 부하 테스트 실행(Azure Load Testing).
구성 파일 만들기를 선택합니다...
다음을 포함하는 안내된 설정을 따릅니다.
Azure에 로그인하고 구독을 선택합니다.
새 Azure Load Testing 리소스를 만들거나 기존 리소스를 선택합니다.
트래픽을 전역적으로 분산할 부하 테스트 지역 선택
설치가 완료되면 YAML 구성 파일(예
loadtest.config.yaml: )이 생성되고 작업 영역 루트 폴더에 추가됩니다.이 파일은 메뚜기 스크립트, 로드 매개 변수, 환경 변수, 지역 및 기타 파일(예: CSV 데이터 세트)을 정의합니다.
기본값은 선택한 각 지역에서 120초 동안 실행되는 200명의 가상 사용자입니다.
리포지토리에서 이 파일을 커밋하여 향후 부하 테스트 실행을 재사용하고 자동화합니다.
Copilot는 실행 전에 구성의 유효성을 검사합니다. 채팅 창에 제공된 지침을 따릅니다. 그렇지 않으면 모든 항목이 체크 아웃되면 테스트 스크립트와 관련 아티팩트가 Azure Load Testing에 업로드되고 실행을 준비합니다. 이 프로세스는 최대 1분이 걸릴 수 있으며 진행률이 출력 패널에 표시됩니다.
테스트가 시작되면 VS Code의 오른쪽 아래 모서리에 알림(알림 메시지)이 표시됩니다. Azure Portal에서 열기 단추를 클릭하여 테스트 실행을 실시간으로 모니터링합니다.
테스트가 시작되면 알림(알림 메시지)이 오른쪽 아래 모서리에 나타납니다. Azure Portal에서 열기 단추를 클릭하여 테스트 실행을 실시간으로 모니터링합니다.
팁 (조언)
이전 실행의 테스트 결과에 빠르게 액세스하려면 다음 명령을 사용합니다. 부하 테스트: 부하 테스트 실행 보기.
이 빠른 시작에서는 중요한 변수와 같은 API_KEY 변수가 .env 파일에 저장되어 클라우드 서비스에 업로드되었습니다. 그러나 모범 사례로 Azure Key Vault에서 비밀을 안전하게 관리해야 합니다. 확장은 이 설정에 대한 지침을 제공합니다.
지금까지 이 빠른 시작에서 중요한 API_KEY 변수는 파일에 저장되어 .env 클라우드 서비스에 업로드되었습니다. 그러나 모범 사례로 Azure Key Vault에서 비밀을 안전하게 관리해야 합니다. 확장은 이 설정에 대한 지침을 제공합니다.
코필로트 채팅 창을 열고 Enter 키를 입력
@testing /setupLoadTestSecretsInAzure하고 누릅니다.부조종사에서는 다음 단계를 안내합니다.
코필로트는 다음을 안내합니다.
- Azure Key Vault 만들기
- 관리 ID를 Azure Load Testing 리소스에 할당합니다.
- Azure Key Vault에 비밀 추가
- 대신 Key Vault 비밀을
.env참조하도록 YAML 파일 구성
Locust 스크립트 또는 YAML 구성을 수정할 때마다 부하 테스트 실행(Azure Load Testing)을 실행하여 테스트를 다시 실행할 수 있습니다.
요약
이 빠른 시작에서는 Visual Studio Code용 Azure Load Testing 확장을 사용하여 Copilot를 사용하여 메뚜기 부하 테스트를 쉽게 만들고, 로컬로 반복하고, Azure에서 손쉽게 크기를 조정했습니다. VS Code용 Azure Load Testing 확장은 테스트 시나리오에 대한 실제 테스트 스크립트를 만드는 프로세스를 간소화합니다. Azure Load Testing은 애플리케이션에 대한 대규모 사용자 부하를 시뮬레이션하기 위한 인프라 설정의 복잡성을 추상화합니다.
부하 테스트를 더욱 확장하여 부하가 걸린 애플리케이션의 서버 쪽 메트릭도 모니터링하고 애플리케이션이 요구 사항을 충족하지 않을 때 경고를 받을 테스트 실패 메트릭을 지정할 수 있습니다. 애플리케이션이 계속해서 제대로 작동하도록 CI/CD(연속 통합 및 지속적인 배포) 워크플로의 일부로 부하 테스트를 통합할 수도 있습니다.
관련 콘텐츠
- 애플리케이션의 서버 쪽 메트릭을 모니터링하는 방법을 알아봅니다.
- CI/CD를 사용하여 자동화된 성능 테스트를 구성하는 방법을 알아봅니다.