-
Ngrinder를 이용하여 서버 스트레스 테스트Computer Science 2022. 11. 10. 00:35
https://github.com/naver/ngrinder
ngrinder는 네이버에서 오픈소스로 제공하는 스트레스 테스트이다.
ngrinder는 크게 2가지로 구성이 되어있는데, controller와 agent이다.
agent로 테스트를 진행하며 agent여러개를 관리하여 결과 등을 확인 할 수 있는것이 controller이다.
우선 controller를 다운 받는다.
https://github.com/naver/ngrinder/releases
java -jar ngrinder-controller-{version}.war
으로 실행을 하는데, 최근 버전은 java 17을 지원한다고 쓰여 있지만
net.grinder.engine.common.EngineException: Error while initialize test runner at net.grinder.scriptengine.groovy.GroovyScriptEngine.<init>(GroovyScriptEngine.java:71) at net.grinder.scriptengine.groovy.GroovyScriptEngineService.createScriptEngine(GroovyScriptEngineService.java:87) at net.grinder.engine.process.ScriptEngineContainer.getScriptEngine(ScriptEngineContainer.java:105) at net.grinder.engine.process.GrinderProcess.run(GrinderProcess.java:345) at net.grinder.engine.process.WorkerProcessEntryPoint.run(WorkerProcessEntryPoint.java:87) at net.grinder.engine.process.WorkerProcessEntryPoint.main(WorkerProcessEntryPoint.java:60) Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during conversion: Unsupported class file major version 61 java.lang.IllegalArgumentException: Unsupported class file major version 61 at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:196) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:177) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:163) at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:284)
막상 agent까지 다운로드 후 실행을 하면 빨간색 원이 뜨며 해상 오류가 생긴다.
https://shanepark.tistory.com/402
등 찾아보면 java 버젼 이슈인 것을 확인 할 수있다. 그냥 1.8로 안전하게 실행하자.
controller를 실행하였다면 localhost:8080에 접속해서
id, pw를 admin 으로 입력하면 들어갈 수 있다.
여기서 agent를 다운로드 해서 진행하자.
agent를 다운한뒤 폴더에 들어가보면
run_agent.sh 파일이있으니 실행해주면 된다.
agent마다 최대 3000명의 동시 접속자를 test할 수있으니 더많이 진행하고 싶다면 agent를 여러개 생성해서 진행하면된다.
test는 test하고자하는 Url을 script를 통해 설정하여 진행 할 수있다.
'Computer Science' 카테고리의 다른 글
Spin Lock vs Mutex vs Semaphore (0) 2023.09.18 Iptables을 이용한 다른 IP로 포트포워딩 (0) 2023.08.24 HTTPS 통신의 원리 ( SSL/TLS ) (0) 2023.08.04 로드 밸런서 ( Load Balancer ) (0) 2023.08.01 프록시 서버 (Proxy Server) (0) 2023.07.20