본문 바로가기

node.js

Node.js Artillery 이용 Server Stress Test (Socket.io)

저희는 서버 Stress Test를 통해 많은 인원이 동시에 접속하는 상황에 버그와 성능저하에 문제점을 발견할 수 있습니다.

Nods.js는 Arittlery라는 npm 모듈을 통해 간단한 방법으로 테스트를 할 수 있습니다.

 

 

Artillery 설치

먼저 window환경에서는 일반 터미널창이 아닌  Visual studio ->터미널-> git bash를 열고 "npm install artillery" 명령어를 실행시켜줍니다.

설치 후 터미널 창에 artillery 명령어를 실행시킵니다.

아래 창처럼 나오면 성공입니다.

Artillery 모듈은 시나리오작성을 json파일과 ,yml파일 형식을 지원하는데 저는yml파일 형식으로 작성하였습니다.

yml파일 형식은 띄어쓰기 조심해주세요!

아래 화면은 10초간 1초에 10명에 유저가 접속하면서 1명에유저가 10번만큼 socket.emit을 하고 15초동안 머무르고 연결을 끊는 시나리오입니다.

실행 전에 서버소켓통신부분에서 “allowEI03:true”를 추가해줍니다.

실행은 “artillery run /yml파일위치 로 실행시키면 됩니다.

아래화면처럼 나오면 성공입니다.

실행 결과를 레포트로 생성할 수 있는데 “artillery run -0 report yml파일위치 로 실행하시면

report라는 이름의 레포트가 생성됩니다.

“artillery report report Report generated:report.html” 명령어를 실행하시면 웹으로 보여줍니다.