티스토리 뷰

지금까지 성능테스트를 위해 써본 툴을 비교해보고자 합니다.

 

오픈소스이며 자유도가 높은 툴을 사용하고자 하다 보니 3가지 툴을 사용해보았습니다.

각각의 "스크립트 작성 방법", "gui 확인 방법"은 다음과 같습니다.

 

  1. locust
    • 스크립트 작성 방법: Python
    • gui 확인 방법: 명령어 실행시 실시간으로 확인할 수 있는 간단한 서버가 실행되어 브라우저로 접속하면 된다.
  2. k6
    • 스크립트 작성 방법: Javascript
    • gui 확인 방법: influxdb와 grafana를 연결하여 grafana에 제공되는 대시보드를 import하여 확인한다.
      • 다른 방법이 있는지는 모르겠으며, docker를 사용하여 간단히 grafana, influxdb를 사용했었다.
  3. artillery
    • 스크립트 작성 방법: yaml
    • gui 확인 방법: 모두 실행된 이후 명령어를 통해 html 파일을 생성하여 열어본다.
  • 개인적으로 스크립트 작성 방법은 본인의 언어나 포맷에 대한 능숙한 정도에 의존하며 모두 자유도는 높다고 생각합니다.
  • gui 확인 방법에 대한 생각은 다음과 같습니다.
    • locust는 주어지는 결과 정보가 불충분하다 느끼면 다른 툴을 고려해봐도 좋을 것 같습니다. (저는 충분하다 느꼈습니다.)
    • k6의 경우 grafana로 결과 정보를 대시보드 커스텀이 가능합니다. 대신 docker 등 사전작업이 필요합니다.
    • artillery는 실시간으로 확인할 수 없고 테스트가 끝난 이후 gui를 확인할 수 있습니다. 하지만 사용이 간편합니다.

 

  • 세 기술 모두 장단점이 있기에 저는 다음과 같은 상황에 위 기술들을 선택할 것 같습니다.
    • python이 익숙하며 실시간으로 간단하게 확인하고 싶다면 -> locust
    • javascript가 익숙하며 원하는 정보를 다양한 방법으로 보고 싶은 경우 -> k6
    • 정말 간단하게 테스트하고 싶으며 실시간으로 지표를 확인하지 않아도 되는 경우 -> artillery

 

세 기술의 대시보드 예시를 확인해봅시다.

1. locust

 

시나리오의 모든 부분을 다양한 지표와 함께 확인 가능합니다.
그래프의 한가지 단점은 여러번 테스트를 연속해서 진행하게되면 시간으로 구분하여 지표를 확인해야합니다.

2-1. k6 (cli)

이건 cli 에서 확인 가능한 부분입니다.

2-2. k6 + grafana

제공되는 대시보드를 import 하여 사용했으며, 다른 지표도 다양히 볼 수 있습니다.

대시보드 정보: https://grafana.com/grafana/dashboards/2587-k6-load-testing-results/

3. artillery

html 화면 상단에 보이는 지표

 

이와 비슷하게 보여주는 다른 지표로는 Mean RPS, RPS Count, HTTP Status Code 등이 있습니다.

 

몇가지 차이점

  • locust: 중지하기 전까지는 계속해서 부하를 줄 수 있습니다. 부하를 주면서 실시간으로 지표를 확인할 수 있습니다.

  • k6: Grafana와 연동이 가능하기 때문에 좀 더 자유롭게 지표를 원하는 그래프로 확인 가능합니다. 실시간 지표 확인이 가능하고 CLI를 통해 최종 결과를 확인할 수 있습니다.

  • artillery: 한 번의 테스트의 시작부터 끝까지 지표 변화를 한 눈에 볼 수 있습니다. 나머지 두 개의 툴 들은 그래프를 볼 때 이러한 부분이 그래프의 시점이 계속 변화하기에 artillery에 비해 다소 불편합니다.

 

추가적인 의견

  • 기술 선택에 있어 신중하게 선택하는 것이 좋다 생각합니다.
  • 이 관점에서 봤을때, 살펴본 세 기술 모두 약간의 차이점들이 있지만, 훌륭한 기술들이라 생각이 들며 그 약간의 차이를 고려하여 선택하는 것이 좋을 것 같습니다.
  • 평소 python이나 yaml, js를 사용해본 것이 영향을 줄 수는 있으나, 설정이나 스크립트 작성에서의 난이도 차이가 크게 다가오지는 않았기에, 이 부분에 있어 처음 접하시더라도 두려움 없이 선택하셔도 괜찮을 것 같다는 생각입니다.

 

스크립트 예시가 궁금하시면 다음 저장소들을 확인하시면 됩니다.

테스트 Github 저장소

https://github.com/ohksj77/locust-load-test

 

GitHub - ohksj77/locust-load-test: locust를 통한 부하테스트 수행

locust를 통한 부하테스트 수행. Contribute to ohksj77/locust-load-test development by creating an account on GitHub.

github.com

https://github.com/ohksj77/k6-grafana-influxdb

 

GitHub - ohksj77/k6-grafana-influxdb: k6 성능테스트 결과를 grafana 대시보드로 확인해보자

k6 성능테스트 결과를 grafana 대시보드로 확인해보자. Contribute to ohksj77/k6-grafana-influxdb development by creating an account on GitHub.

github.com

https://github.com/ohksj77/artillery-load-test

 

GitHub - ohksj77/artillery-load-test: artillery로 부하 테스트를 수행해보자

artillery로 부하 테스트를 수행해보자. Contribute to ohksj77/artillery-load-test development by creating an account on GitHub.

github.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함