반응형

출처: 2022, Full Stack Testing - A Practical Guide for Delivering High Quality Software, Gayathri Mohan, 8. Performance Testing

 

 

애플리케이션의 성능을 현실적으로 측정하려면 아래 세 가지 특성을 현명하게 조정해야 한다.

 

램프업 타임(ramp-up time): 모든 사용자가 애플리케이션에 정확히 동일한 순간에 로그인하는 것은 아니다. 사용자가 몇 밀리초의 간격을 두고 점진적으로 로그인하는 것이 보다 현실적인 용례이다. 테스트 시작과 모든 가상 사용자(virtual users)가 연결된 것으로 간주되는 시간 사이의 이러한 지연을 램프업 시간이라고 한다.

 

씽크 타임(think time): 사용자는 몇 밀리초 내에 로그인하고 제품을 검색하고 구매를 완료할 수 있는 로봇이 아니지만, 의도치 않게 성능 테스트 케이스가 그렇게 설계되는 경우가 있다. 실제로 사용자는 액션 사이를 생각하는 데 최소 몇 초가 걸리고 로그인 후 제품 구매와 같은 트랜잭션을완료하는 데 일반적으로 몇 분이 걸린다. 이를 성능 테스트 용어로 씽크 타임이라고 한다. 따라서 테스트 케이스에 적절한 씽크 타임 포함하고 사용자 액션을 몇 초 또는 몇 분 간격으로 분산해야 한다.

 

페이싱(Pacing): 씽크 시간과 관련된 페이싱이라는 또 다른 개념은 트랜잭션(사용자 액션이 아님) 사이의 시간을 정의한다. 현실에서 사용자는 일정 시간이 지난 후 다시 트랜잭션을 시작할 수 있다. 피크 시간대 판매 동안 시간당 1,000건의 트랜잭션이 예상되는 경우 페이싱 시간 설정을 통해 한 시간 동안의 트랜잭션을 분산시킬 수 있다.

 

 

부하 패턴 유형(Types of Load Patterns)

램프업 타임, 씽크 타임, 동시 사용자 수페이싱을 사용하여 애플리케이션에서 다양한 로드 패턴을 생성하는 데, 흔히 테스트되는 몇 가지 로드 패턴이 다음과 같다.

 

 

꾸준한 램프업 패턴(Steady ramp-up pattern)

그림 8-1과 같은 꾸준한 램프업 패턴에서는 사용자가 주어진 기간 내에 꾸준히 증가한 다음 일정 기간 동안 부하가 일정하게 유지되어 성능을 측정한다. 이는 현실 시나리오에서 흔히 볼 수 있는 패턴이다. 예를 들 블랙 프라이데이 세일과 같은 경우 사용자가 점진적으로 그러나 꾸준히 애플리케이션에 방문하고, 일정 기간 동안 머물렀다가, 꾸준히 이탈하는 패턴이다.

그림 8-1. 사용자의 꾸준한 증가

 

단계적 램프업 패턴(Step ramp-up pattern)

단계적 램프업 패턴을 사용하면 사용자가 주기적으로 일괄 증가된다(: 2분마다 100명의 사용자). 각 단계 사용자 수에 대한 애플리케이션 성능을 관찰하고 측정하면 다양한 부하에 대한 애플리케이션을 벤치마킹(반복 실행의 평균 응답 시간을 측정)하는 데 도움이 된다. 이 패턴은 성능 튜닝 및 인프라 용량 계획(capacity planning)에 유용하다.

그림 8-2. 사용자의 단계적 증가

 

 

피크-휴지 패턴(Peak-rest pattern)

그림 8-3의 피크-휴지 패턴은 반복 주기에서 시스템이 최대 부하에 도달할 때까지 램프업한 다음 램프다운하여 완전한 휴지 상태를 만드는 것이다. 이 시나리오는 소셜 네트워킹 사이트와 같이 하루 동안 주기적으로 피크가 왔다가 가는 일부 애플리케이션에서 관찰될 수 있다.

그림 8-3. 피크-휴지 부하 패턴

 

 

반응형

+ Recent posts