부하 테스트 실행 시 지연이란?

부하 테스트에서의 "지연(Delay)"

부하 테스트를 실행할 때 "지연"이란 가상 사용자가 수행하는 작업 사이 또는 각 가상 사용자의 시작 사이에 의도적으로 도입되는 일시 중지 또는 대기 시간을 의미합니다. 지연은 실제 사용자 행동을 보다 정확하게 시뮬레이션하고, 모든 가상 사용자가 정확히 같은 순간에 시스템에 접속하는 것을 방지하기 위해 사용됩니다.

실제 시나리오에서 사용자는 모두 동시에 행동하지 않습니다. 콘텐츠를 읽거나, 결정을 고민하거나, 양식을 작성하거나, 자신만의 속도로 편하게 브라우징할 수 있습니다. 이러한 자연스러운 행동 간의 지연은 시스템의 부하와 그에 따른 성능 메트릭에 영향을 줄 수 있습니다. 부하 테스트에 지연을 도입함으로써, 테스터는 실제 사용자의 이러한 무작위적이고 분산된 행동을 모방하는 것을 목표로 합니다.

부하 테스트에서의 지연 유형

부하 테스트 중에 접할 수 있거나 설정할 수 있는 다양한 유형의 지연이 있습니다:

  • Think Time(생각 시간): 가상 사용자가 작업 사이에 "대기"하는 시간으로, 실제 사용자가 콘텐츠를 읽거나 옵션을 고려하는 것 등을 시뮬레이션합니다. 예를 들어, 로그인 후 실제 사용자는 링크나 버튼을 클릭하기 전에 몇 초간 기다릴 수 있습니다. 스크립트에 "think time"을 도입하면 이러한 행동을 시뮬레이션합니다.

  • Ramp-Up Delay(램프업 지연): 부하 테스트를 시작할 때, 모든 가상 사용자를 동시에 시작하는 것이 항상 바람직하지는 않습니다. 램프업 지연은 부하 테스트가 일부 사용자로 시작하여 원하는 부하에 도달할 때까지 활성 사용자 수를 점진적으로 증가시키는 것을 의미합니다. 예를 들어, 10분 동안 1000명의 사용자를 시뮬레이션하려면, 선형 램프업은 매분 100명의 사용자를 추가합니다.

  • Startup Delay(시작 지연): 가상 사용자가 작업을 시작하기 전의 초기 지연입니다. 예를 들어, 10명의 가상 사용자와 5초의 시작 지연이 있는 경우, 첫 번째 사용자는 즉시 시작하고, 두 번째 사용자는 5초 후에, 세 번째는 10초 후에 시작하는 식입니다.

지연의 중요성

적절한 지연을 도입하는 것은 현실적인 부하 테스트를 위해 매우 중요합니다. 지연 없이는 테스트가 시스템에 부자연스럽고 집중된 부하를 가하여 왜곡된 결과를 생성할 수 있으며, 오해의 소지가 있는 결과로 이어질 수 있습니다. 테스트 대상 애플리케이션 또는 시스템의 실제 사용자 행동을 밀접하게 모방하도록 지연을 조정하는 것이 항상 중요합니다.

많은 부하 테스트 도구와 논의에서 "Delay"라는 용어가 단독으로 사용될 때, 이는 종종 Ramp-up Delay를 구체적으로 지칭합니다. 이는 테스트 중 가상 사용자가 도입되는 속도를 결정하는 특히 중요한 메트릭입니다.

Ramp-up Delay는 모든 가상 사용자가 시작부터 동시에 시스템에 부하를 가하지 않도록 보장합니다. 대신, 점진적으로 추가되어 사용자가 한꺼번에가 아니라 일정 시간에 걸쳐 웹사이트나 애플리케이션에 몰려드는 보다 현실적인 시나리오를 반영합니다.

이 Ramp-up Delay를 적절히 구성하는 것은 갑작스럽고 비현실적인 부하 급증을 방지하는 데 매우 중요하며, 이는 테스트 결과를 왜곡하거나 시스템에 과도한 부담을 줄 수 있습니다. 부하 테스트의 파라미터를 미세 조정할 때, 테스트 조건의 진정성을 보장하기 위해 이 특정 지연에 특별한 주의를 기울이는 것이 필수적입니다.