부하 테스트에 대한 기준 설정
부하 테스트 및 임곗값을 정의했으므로 이제 이러한 결과를 사용하여 기준을 작성해 보겠습니다.
기준은 테스트 실패 또는 성공을 평가하는 데 사용하는 메트릭 조건 집합입니다. 예를 들어 조건은 다음과 같습니다.
- 초당 평균 요청 수.
- 오류율.
- 최대 응답 시간.
부하 테스트에 대한 기준을 설정하려면 다음을 수행해야 합니다.
개별 사용자 흐름 및 전체 솔루션에 대한 기준 및 테스트 조건을 정의합니다.
일반 실행에 대한 임계값을 조정하여 애플리케이션이 예상되는 성능을 계속 제공하고 오류를 생성하지 않는지 확인합니다.
예상되는 오류율 급증과 일시적인 성능 저하를 허용하는 카오스 테스트에 대해 별도의 기준을 사용합니다.
이 활동은 연속되며 정기적으로 수행해야 합니다. 예를 들어 새 기능을 도입하거나 서비스 SKU를 변경한 후 기준을 검토해야 합니다.
Azure Load Testing을 사용하여 임계값 평가
개발 단계에서는 구성 요소 및 리소스 요구 사항의 성능이 명확하지 않은 경우가 많습니다. 부하 테스트는 전체 솔루션 및 해당 구성 요소의 스케일 아웃 동작을 포함하여 예상 성능을 식별하는 데 도움이 될 수 있습니다. 또한 기준 작성에 필요한 임계값을 식별하는 데 도움이 될 수 있습니다.
다음 질문을 하고 정기적으로 다시 평가합니다.
- ‘개별 작업, 사용자 흐름 또는 API 호출을 완료하는 데 얼마나 걸리나요?’
- ‘구성 요소가 초당 처리할 수 있는 요청, 작업 및 동시 사용자는 얼마나 되나요?’
- ‘얼마나 많은 리소스가 사용되었나요?’
- ‘10, 50, 100명의 동시 사용자가 기본 인프라 및 백 엔드 서비스에 어떤 영향을 주나요?’
- ‘구성 요소는 언제 스케일 인 및 스케일 아웃해야 하나요?’
답변에 따라 테스트가 진행되거나 임곗값을 얻을 수 있습니다. 초당 요청 수, 응답 시간 및 오류 비율은 모두 임계값의 적용 가능한 예입니다.
세부 정보를 적어 둔 후에 값을 사용하여 전체 솔루션 및 해당 구성 요소의 성능을 일관된 방식으로 분석하고 평가합니다. 또한 기준을 사용하여 예상 성능에서 변경 및 드리프트의 영향을 식별합니다.
테스트를 실행할 때 특수 사용 사례에 대해 잘못된 구성 요소 또는 부하 급증 등의 다른 요구 사항이 나타날 수 있습니다. 이러한 경우 더 높은 오류율 또는 더 낮은 초당 요청 수가 예상되고 허용될 수 있습니다. 이러한 상황을 수용하기 위해 조정된 임곗값을 포함하는 별도 기준을 가질 수 있습니다. 예시:
- 스케일 아웃 작업이 예상되고 필요한 부하가 높은 시나리오입니다. 작업이 완료될 때까지 일시적인 성능 저하가 나타날 수 있습니다.
- 연속 유효성 검사 파이프라인의 일부로 진행되는 카오스 실험. 복원력 측정값이 애플리케이션을 자체 복구하거나 다른 지역으로 장애 조치하기 시작할 때까지 더 높은 오류율을 예상할 수 있습니다.
Azure Load Testing을 사용하여 정의된 임계값을 기준으로 시스템의 성능을 평가합니다. 이 서비스에는 기본 제공 테스트 조건 기능이 있습니다. 즉, 부하 테스트가 통과해야 하는 조건을 지정할 수 있습니다.
다음 예제 스크린샷과 같이 테스트 조건을 사용하여 다른 기준을 구현할 수 있습니다.
JSON에서 이러한 테스트 조건을 지정하고 API를 사용하여 부하 테스트에 추가할 수 있습니다. 예를 들면 다음과 같습니다.
[
{
"passFailMetrics": {
"<guid-1>": {
"clientmetric": "requests_per_sec",
"aggregate": "avg",
"condition": "<",
"value": 1200.0,
"actualValue": 0.0,
"result": null,
"action": "continue"
},
"<guid-2>": {
"clientmetric": "response_time_ms",
"aggregate": "avg",
"condition": ">",
"value": 75.0,
"actualValue": 0.0,
"action": "continue"
},
"<guid-3>": {
"clientmetric": "error",
"aggregate": "percentage",
"condition": ">",
"value": 0.0,
"actualValue": 0.0,
"action": "continue"
}
}
}
]
지속적인 유효성 검사의 또 다른 중요한 측면은 실제 문제를 시뮬레이트하는 테스트를 삽입하는 것입니다. 다음 단원에서는 유효성 검사 프로세스에 카오스 실험을 추가하는 방법을 알아봅니다.