====== nGrinder ======
* https://naver.github.io/ngrinder/
* Naver 에서 만든 Java 기반 부하테스트. [[loadtest:grinder|Grinder]]의 개선 버전.
* [[https://github.com/naver/ngrinder/releases|nGrinder Download]]
* [[https://github.com/naver/ngrinder/wiki/Installation-Guide|Installation Guide · naver/ngrinder Wiki]]
* [[https://hub.docker.com/r/ngrinder/controller/|ngrinder/controller - Docker Hub]] [[:docker|Docker]] 기반 설치 가능, 최신 버전으로 docker 이미지 갱신이 안되고 있는 듯 보임.
* [[https://github.com/naver/ngrinder/wiki/User-Guide|User Guide · naver/ngrinder Wiki]]
* **nGrinder 자체의 GC 발생으로 인해 성능 테스트가 영향을 받는 경향이 이다고 함.**
===== 설치 실행 =====
* ngrinder-controller 를 war / [[linux:nohup|nohup]] 으로 그냥 실행하면 ''stdin'' 이 막히면서 ''Bad file descriptor'' 발생. 아래와 같이 실행하면 해결
* https://unix.stackexchange.com/a/266247
nohup java -jar ngrinder-controller-3.4.2.war > ngrinder.log 2>&1 0<&- &
* 내장 [[java:jetty|Jetty JSP/Servlet Container]]로 실행할 경우 30분 정도 지나면 죽어서(3.4.2버전) [[java:tomcat|Tomcat]] ''${CATALINA_HOME}/webapps/ROOT.war''로 설치해서 실행 가능.
===== Recording 이 올바로 안된다면 =====
* 테스트 수행은 되지만 레코딩이 올바로 안된다면 groovy 스크립트의 ''GTest'' 객체에 올바로 ''record()'' 설정이 안 돼 있는 것이다.
// @BeforeThread 에서
gtest.record(this, "test1") // test1 은 @Test 메소드 이름
// 혹은 @BeforeProcess 에서
request = new HTTPRequest()
gtest.record(request)
// request 를 여러개 날릴때는 각각 request 객체 만들고 각각 등록
===== DB SQL Test =====
* [[https://github.com/naver/ngrinder/wiki/Using-nGrinder-to-perform-DB-load-test|Using nGrinder to perform DB load test · naver/ngrinder Wiki]]
* JDBC Driver 를 업로드하고 [[groovy:sql|Groovy SQL (Database)]] 로 테스트 가능
===== 참고 =====
* [[https://opentutorials.org/module/351/3334|nGrinder Open Tutorials]]
* [[https://brownbears.tistory.com/25|[nGrinder]nGrinder란? & docker 설치 방법간]]
* [[https://brownbears.tistory.com/27|[nGrinder]스크립트(Groovy) 작성법]]
* [[https://nesoy.github.io/articles/2018-10/nGrinder-Start|nGrinder 시작하기]]
* [[https://github.com/naver/ngrinder/wiki/The-New-nGrinder-HTTP-Client|The New nGrinder HTTP Client · naver/ngrinder Wiki]]