강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김형준님의 프로필 이미지
김형준

작성한 질문수

백엔드 애플리케이션 성능 테스트하기

Artillery에서 VUSER는 어떻게 측정되는 걸까요?

작성

·

18

·

수정됨

1

Artillery 공식 문서를 보고 있는데, VUSER(가상유저)에 대해서 언급되고 있는데요.

Artillery에서 VUSER(가상유저)는 어떻게 정의되고 측정되는 걸까요?

그저 초당 요청한 횟수로 VUSER가 정의되고 측정되는 걸까요?

Ngrinder인 경우에는 아래와 같이 알고 있어서요~

VUser 공식은 상황에 따라 다르지만, 일반적으로 VUser = (목표 RPS 테스트 시간) / (평균 응답 시간) 또는 VUser = (프로세스 수) * (스레드 수)로 계산할 수 있습니다. VUser는 가상 동시 사용자 수를 의미하며, 서버의 성능을 부하 테스트할 때 사용됩니다

답변 2

0

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

김형준님 안녕하세요!

우선 답변이 늦어서 죄송합니다. (_ _)

 

질문 주신 내용에 대해 답변드리겠습니다!

 

Artillery에서 VUser(가상 유저)는 '하나의 정해진 시나리오(사용자 여정)를 수행하는 독립적인 행위자'로 정의됩니다.

예를 들어, "1. 로그인한다 → 2. 상품 목록을 조회한다 → 3. 특정 상품을 장바구니에 담는다"라는 3개의 API 요청으로 구성된 하나의 '시나리오'가 있다고 가정해 보죠.

Artillery의 VUser 1명은 이 3단계의 흐름 전체를 처음부터 끝까지 수행하는 '가상의 사용자 1명'을 의미합니다. 단순히 요청 1개를 보내는 존재가 아닙니다.

 

여기서 nGrinder와의 결정적인 차이가 나옵니다.

김형준님께서 언급하신 nGrinder의 VUser = (프로세스 수) * (스레드 수) 공식은 '동시에 실행될 스레드의 총합'을 의미합니다. 즉, "총 500개의 스레드(VUser)를 띄워서 계속 요청을 보내라"는 방식(찾아보니 이걸 Closed Model이라고 부르더라구요)에 가깝습니다. VUser가 스레드라는 리소스와 강하게 연결되어 있죠.

하지만 Artillery는 (k6나 Gatling처럼) '초당 몇 명의 새로운 VUser가 도착(Arrival)할 것인가'를 설정하는 방식(반대로 이 방식은 Open Model이라고 부른답니다)을 주로 사용합니다.

Artillery 설정 파일에서 핵심은 concurrency (동시 접속자 수) 보다는 arrivalRate (초당 도착률)입니다.

즉, arrivalRate: 10 이라고 설정하면, 매초 10명의 새로운 VUser가 시스템에 도착해서 각자의 시나리오(로그인 -> 조회 -> 장바구니)를 수행하기 시작한다는 의미입니다.

 

혹시 질문에 대한 답변이 됐을까요?!

추가적으로 질문 있으시면 질문 남겨주세요~

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
김형준님, Artillery에서의 VUSER(가상유저)는 부하 테스트 시 여러 사용자로부터의 요청을 시뮬레이션하기 위해 사용됩니다. 가상 유저는 테스트 시나리오에 따라 다양한 행동을 시뮬레이션하며, 이러한 행동을 통해 시스템이 여러 사용자에게 어떻게 반응하는지 평가합니다.

VUSER는 단순히 초당 요청 횟수로 정의되는 것이 아니라, 특정 시나리오에 따라 다르게 구성될 수 있습니다. 각 VUSER는 개별적인 세션으로 행동하며, 이들은 종종 사용자 여정을 바탕으로 한 여러 단계나 요청을 수행합니다.

Artillery에서는 테스트 계획에 따라서 VUSER의 생성 및 행동이 조정될 수 있으며, 각각의 VUSER는 실제 사용자의 행동을 모사하여 시스템의 처리 능력 및 성능을 평가하는 데 사용됩니다.

더 자세한 정보는 Artillery의 공식 문서에서 확인할 수 있습니다.

도움이 되었길 바랍니다!

김형준님의 프로필 이미지
김형준

작성한 질문수

질문하기