티스토리 뷰

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

 

오픈소스이며 자유도가 높은 툴을 사용하고자 하다 보니 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. k6 (cli)

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

3. k6 + grafana

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

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

3. artillery

html 화면 상단에 보이는 지표

 

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

 

추가적인 의견

  • 기술 선택에 있어 신중하게 선택하는 것이 좋다 생각합니다.
  • 이 관점에서 봤을때, 살펴본 세 기술 모두 약간의 차이점들이 있지만, 훌륭한 기술들이라 생각이 들며 그 약간의 차이를 고려하여 선택하는 것이 좋을 것 같습니다.
  • 평소 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

 

'개발 탐구' 카테고리의 다른 글

Hibernate 6.4의 @SoftDelete 사용법 탐구  (7) 2024.03.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/09   »
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
글 보관함