출처: 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과 같은 꾸준한 램프업 패턴에서는 사용자가 주어진 기간 내에 꾸준히 증가한 다음 일정 기간 동안 부하가 일정하게 유지되어 성능을 측정한다. 이는 현실 시나리오에서 흔히 볼 수 있는 패턴이다. 예를 들 블랙 프라이데이 세일과 같은 경우 사용자가 점진적으로 그러나 꾸준히 애플리케이션에 방문하고, 일정 기간 동안 머물렀다가, 꾸준히 이탈하는 패턴이다.
단계적 램프업 패턴(Step ramp-up pattern)
단계적 램프업 패턴을 사용하면 사용자가 주기적으로 일괄 증가된다(예: 2분마다 100명의 사용자). 각 단계 사용자 수에 대한 애플리케이션 성능을 관찰하고 측정하면 다양한 부하에 대한 애플리케이션을 벤치마킹(반복 실행의 평균 응답 시간을 측정)하는 데 도움이 된다. 이 패턴은 성능 튜닝 및 인프라 용량 계획(capacity planning)에 유용하다.
피크-휴지 패턴(Peak-rest pattern)
그림 8-3의 피크-휴지 패턴은 반복 주기에서 시스템이 최대 부하에 도달할 때까지 램프업한 다음 램프다운하여 완전한 휴지 상태를 만드는 것이다. 이 시나리오는 소셜 네트워킹 사이트와 같이 하루 동안 주기적으로 피크가 왔다가 가는 일부 애플리케이션에서 관찰될 수 있다.
'테스팅타입별 > 성능(Performance)' 카테고리의 다른 글
책 발췌 – 프론트엔트 성능 측정 by Gayathri Mohan (5) | 2024.11.11 |
---|---|
책 발췌 – 성능 테스트케이스 설계 예 by Gayathri Mohan (4) | 2024.10.21 |
ab – Apache HTTP 서버 벤치마킹 도구 (2) | 2024.09.30 |
성능 테스트 무료 교육 영상 소개 - 초보자를 위한 JMeter 풀 코스 by Raghav Pal (0) | 2022.09.19 |
책 발췌 – 네트워크 테스팅에서 애플리케이션 부하 모델 유형 by Buchanan (0) | 2022.04.18 |