inflearn logo
강의

Course

Instructor

Testing backend application performance

Write a scenario and test it

시나리오가 여러개면 요청이 분리되는 것 아닌가요?

Resolved

269

colock1232765

49 asked

1

안녕하세요? 좋은 강의 감사드립니다. 몇가지 질문이 있어서 여쭤봅니다.

 1.

시나리오 작성해서 테스트하기 강의 11분 즈음에 보면,
요청 개수가 184개고 이게 요청 개수 90 시나리오 개수 2에서 나온거라고 말씀하시면서
시나리오가 여러 개면 요청 개수 * 시나리오 개수만큼 요청이 된다고 해주셨습니다.

그런데, 요청은 분배되는데
첫번재 테스트는 api가 한개이고, 두번째 테스트는 api가 3개라 결과적으로 180 언저리의 값이 나오는 거 아닌가 싶어서여쭤봅니다. 실제로 강의 영상에서도
시나리오 카운트에서 43, 47로 90이 나뉘고

43 1 + 47 * 3해서 184가 나오는 것이 아닌가

결과적으로 요청은 시나리오 개수만큼 분리되는 것 아닌가 싶어서 질문드립니다.

2. 강의 중에, 실제로 사내에서는 ngrinder를 사용하고 계시다고 말씀하셨는데, 혹시 최신버전의 artillery를 사용해보셨는지 그럼에도 불구하고 여전히 ngrinder를 사용하시는 게 편하신지가 궁금합니다..

 

stress-testing artillery

Answer 4

1

colock1232765

답변 감사합니다~

0

foo

김영빈님 우선 답변 늦어져서 죄송합니다.

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

 

우선 1번 관련해서는 말씀해주신 내용을 보고 저도 다시 한번 확인해봤는데, 말씀하신 내용이 맞는 것 같습니다. 🙂

'두 시나리오 중 어떤게 선택될지는 랜덤'으로 50%에 수렴하겠지만, 영상에서의 케이스에서는 43:47(47.778% vs 52.222%)가 나온듯합니다. 이 상태에서 43 * 1 + 47 * 3을 해서 184가 나온게 맞습니다~

 

다음으로 2번 관련해서는 2.0.11 버전이 마지막으로 썼던 버전인데요, 저는 artillery가 더 편합니다. ㅎㅎ

아래는 제가 과거 느꼈던 ngrinder가 artillery에 비해 불편했던 점들입니다. (사내에 세팅된 ngrinder 기준이라 이 역시 최신 버전의 ngrinder에서는 해결된 문제일 수도 있습니다.)

 

  • 스크립트 작성이 번거로움 (but, 프로그래머블하긴함)

  • ramp up 등 시나리오 작성 기능이 빈약함. 스트레스 테스트 도중 한번의 ramp up만 가능함.

  • p99, p95, p50 등 전체 트래픽 중 일부 혹은 대부분의 트래픽에 대한 통계만 별도로 볼 수 없음.

  • vuser를 설정해도 TPS가 고정이 아니라 애플리케이션이 받을 수 있는 만큼으로 adaptive하게 변경됨.

  • 도중에 오류가 임계치 이상으로 발생하면 테스트가 자동으로 중단됨.

 

이중에서 스크립트 작성의 번거로움에 대한 내용은 ChatGPT가 등장한 이후에는 많이 해소되긴 했지만, 여전히 작성했을 때 가독성이 떨어지는건 어쩔 수 없는 것 같습니다.

아무튼 위와 같은 불편함을 감수하더라도 ngrinder를 여전히 성능 테스트에서 쓰고 있는건, 사내에 이미 성능 테스트 툴론 ngrinder가 있기 때문에 그걸 사용하는게 편하고, 제가 따로 인프라를 구축해서 사용하긴 번거롭기 때문입니다. 또 artillery가 이 부분에 있어서는 좀 빈약한데, 큰 트래픽을 만들기 위해서 대규모로 클러스터링을 하는걸 지원하지 않습니다. (유료버전에서는 되는 것 같기도 한데 잘 모르겠네요 이부분까진.. 설령 된다고 하더라도 제가 사내에 따로 구축하긴 좀 어려울 것 같습니다.) 반면 ngrinder는 간단하게 클러스터링 구성을 할 수 있습니다.

 

아무튼 결과적으로 artillery로 우선 성능 테스트 방법을 익혀보시면 좋을 것 같아요. 소규모 테스트에선 저도 여전히 잘 사용하고 있습니다. 그리고 ngrinder 사용하는 방법도 필요하다면 연습해보시는 것도 나쁘지 않을 것 같습니다. docker로 띄우면 세팅도 간단해서요 ㅎㅎ

 

위 내용이 답변이 됐을지 모르겠는데, 또 궁금한 내용 있으면 질문 남겨주세요~

감사합니다.

 

0

foo

김영빈님 안녕하세요~

제가 노트북 없이 해외에 나와 있어서 월요일에 돌아가는대로 답변 드리겠습니다. 답변이 늦어져서 죄송합니다 ㅠ

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 김영빈님.

시나리오 작성 시 요청 개수와 시나리오 개수의 관계에 대해 질문해주셨죠. 관련해서 유사한 답변이 올라온 게시물을 찾았습니다.

사용자가 여러 시나리오를 작성했고 이들 시나리오가 여러 개의 API 요청을 포함하고 있다면, 각 시나리오가 독립적으로 실행될 때마다 해당 시나리오 안의 모든 API 요청이 실행됩니다. 예를 들어, 한 시나리오 안에 3개의 API 호출이 있고 다른 시나리오 안에 1개의 API 호출이 있을 경우, 각 시나리오가 독립적으로 실행될 때 총 요청 수는 해당 API 호출 수의 합입니다.

추가로 참고하실 만한 유사한 질문과 답변은 아래 링크를 통해 확인하실 수 있습니다:

위 답변들을 통해 시나리오 설계 시 각 시나리오별 API 호출이 독립적으로 수행된다는 점과 그로 인해 발생하는 전체 요청의 계산 방식 등을 이해하는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

부하테스트 시나리오

0

51

1

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

1

71

2

RPS 개념을 잘모르겠어요

1

168

2

강의자료 질문

1

69

1

Latency에 대한 질문이 있습니다!

0

104

3

질문있습니다!!

1

106

2

테스트 시나리오 작성에 대한 문의

0

239

3

비동기 테스트가 필요한 경우가 따로 있는건지 문의드립니다.

1

123

1

테스트 대상 웹 페이지 비 정상 노출 상태 문의 건

1

147

2

강사님 강의를 듣고 실제 프로젝트에서 제가 만든 API에 대해 성능 테스트를 진행하고 성능 개선을 해봤습니다.

1

166

1

기준이 뭘까요??

1

245

2

성능 병목 지점 확인 관련 질문

1

230

1

외부 api는 어떻게 테스트해야 하나요 ?

1

581

2

http 문제

1

186

3

부하 테스트 진행 중, DB사용과 관련하여 데이터 관리 문의사항

1

239

2

성능 테스트 스크립트 실행결과에 대해 질문 있습니다.

1

201

2

파라미터 활용하여 테스트 하는 부분 질문 있습니다.

1

177

2

api 요청 횟수와 시나리오 갯수에 대해 질문 있습니다.

1

290

3

aws ec2 서버에 /hello컨트롤러를 만들어서 강의와 같은 yml을 실행했더니 아래 그림과 같이 뜨는데 서버 성능을 올려줘야 할까요..?

1

273

1

postman 에서 api 테스트했을 때 응답 레이턴시 차이가 있는 이유

1

1190

2

test-config.yaml

1

288

1

report.html 파일이 404 Not Found 에러가 뜹니다.

2

488

1

로그인 한 유저만 접근 가능한 API도 부하테스트가 필요할까요?

1

548

2

ramp to 를 하는 이유

1

418

1