강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của colock1232765
colock1232765

câu hỏi đã được viết

Kiểm tra hiệu suất ứng dụng phụ trợ

Viết một kịch bản và kiểm tra nó

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

Đã giải quyết

Viết

·

244

·

Đã chỉnh sửa

1

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

 1.

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

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

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

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

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

  • artillery 최신버전을 써보니 간편하게 사용할 수 있는 게 너무 마음에 들어서 손에 익혀두면서 사용해보고 싶은 마음이 있습니다.

  • 하지만 ngrinder를 보통 사내에서 쓴다면 가능하다면 ngrinder를 익혀두는 게 더 좋지 않을까 싶어서 ㅎㅎ.. 의견을 구해봅니다.

  • 아니면 혹시 artillery가 ngrinder에 비해 부족한 부분이 있는지도 궁금합니다.

 

stress-testingartillery

Câu trả lời 4

1

colock1232765님의 프로필 이미지
colock1232765
Người đặt câu hỏi

답변 감사합니다~

0

foo님의 프로필 이미지
foo
Người chia sẻ kiến thức

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

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

 

우선 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님의 프로필 이미지
foo
Người chia sẻ kiến thức

김영빈님 안녕하세요~

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

0

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

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

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

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

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

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

Hình ảnh hồ sơ của colock1232765
colock1232765

câu hỏi đã được viết

Đặt câu hỏi