Advanced nGrinder

4,128 views

Published on

nGrinder 소개 + 고급 사용법
- 아키텍쳐
- 자이선 / 그루비 스크립트 동작 방식
- DB 테스트
- 로그 레벨 조작 방법
- 리소스 처리 방법
- 라이브러리 처리 방법
- 대규모 응답 처리 방법
- 가중치 부여 방법
- 쓰레드별 다른 처리 방법
- XML / JSON 처리 방법

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,128
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
94
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

Advanced nGrinder

  1. 1. nGrinder + 초딩도 하는 성능 테스트 심화!!
  2. 2. WHO AM I 윤준호 / 내년 不惑 nGrinder 프로젝트 리드 디자이너 출신 30만 라인(±) / 1년
  3. 3. 개발자는 창조하는 사람 파괴에는 익숙하지 않다.! 정확히는 문제가 있다는 사실을 알고(알리고) 싶어하지 않는다.
  4. 4. 이 모든 것이 핑계꺼리..
  5. 5. Affordance (행위 유발성)
  6. 6. 불편함은 없애고 자랑꺼리가 될 수 있다면?
  7. 7. 성능 테스트 상식 성능 테스트? 스트레스 테스트 로드 테스트 로드 상황에서 크래시 등의 문제점 확인 로드 상황에서 성능 특성 파악 7
  8. 8. 성능 테스트 상식 로드 테스트 초당 처리량 2500 2000 1500 Apache Nginx Nginx-caching 1000 500 0 1 2 5 10 50 100 200 동시사용자 # (Think Time 없을 때) 8
  9. 9. 성능 테스트 상식 스트레스 테스트 부적절한 커넥션 풀? 불충분한 쓰레드 풀? 메모리 릭? 리소스 릭? 비효율적인 코드?
  10. 10. 성능 테스트 상식 TPS (Transaction Per Second / 초당처리량) 정의하기 나름
  11. 11. 성능 테스트 상식 로드를 주는 방법? ApacheBench? LoadRunner? NHN과 같은 대규모 서버군에는 부적절… 11
  12. 12. 성능 테스트 상식 분산 테스트? 제어 부하 스크 립트 테스트 대상 서버 컨트롤러 로드 생성기 무제한 로드 부여 가능 / 대규모 테스트에 적합 12
  13. 13. 성능 테스트 상식 성능 테스트 도구는 실수까지 기록하여야 한다.! 13
  14. 14. nGrinder since 2010
  15. 15. 스크립트 작성 테스트 설정 상세 결과 보기 결과 리포트 테스트 진행
  16. 16. 중간 정리 언제든 원하는 시점에 테스트 수행 테스트 준비시간 0분 / 학습시간 1~2시간? 네트워크 오버플로우 자동 처리 은근한 자부심!! (내가 10배 빠르게 만들었어) NHN에서만 월간 2000건 성능 테스트 실행 (10배 증가) 밤샘 X  요게 중요
  17. 17. 컨트롤러+에이전트 에이전트1 컨트 롤러 스크 립트 에이전트2
  18. 18. 프로세스+쓰레드 프로세스1 쓰레드 1 쓰레드 2 쓰레드 3 스크 립트 쓰레드 4 에이 전트 프로세스2 쓰레드 1 쓰레드 2 쓰레드 3 쓰레드 4 가 상 유 저
  19. 19. 스크립팅 - 지원언어 자이썬 그루비 내장 SVN 그루비 + 메이븐
  20. 20. 스크립팅 - 기본구조 프로세스당 한번 프로세스당 한번 지정한 만큼 반복
  21. 21. 스크립팅 – IDE 지원 그루비 + 메이븐 + 서브버전 + 이클립스 스크립트 디버깅 / 자동완성 / 의존성 관리
  22. 22. 클러스터링 LINE 플러스 소속 개발자가 도쿄 IDC 에 있는 서버를 테스트할 경우
  23. 23. 클러스터링 LINE 플러스 소속 개발자가 도쿄 IDC 에 있는 서버를 테스트할 경우 스크립트 L4 / SSO 컨트롤러 컨트롤러 컨트롤러 컨트롤러 컨트롤러 에이전트 x5 에이전트 x5 NAS / DB 에이전트 x10 에이전트 x5 에이전트 x10 서버 K IDC T IDC M IDC N망 도쿄IDC
  24. 24. 더미를 위한 스크립팅..
  25. 25. 마지막 정리 NHN에서만 840 사용자 / 15,400 테스트 / 90% 테스트 성공률 성능 테스트 활동 활성화 (10배) 큰 사이즈의 가상 유저 시뮬레이션 비용 최소화 네트워크 오버플로우 위험성 감소
  26. 26. nGrinder Architecture
  27. 27. Dynamic Architecture
  28. 28. Static Architecture (Single)
  29. 29. Static Architecture (Cluster)
  30. 30. nGrinder Scripting Samples
  31. 31. 스크립팅 - Groovy 프로세스당 한번 쓰레드당 한번 지정한 만큼 반복
  32. 32. Script Executions(Groovy)
  33. 33. 스크립팅 - Jython 프로세스당 한번 쓰레드당 한번 지정한 만큼 반복
  34. 34. Script Executions(Python)
  35. 35. 인스트루먼트 MyTest object = new MyTest(); Gtest test = new Gtest(1, “통계1”) test.record(object, “sendMessageToGoogle”) class MyTest { public void sendMessageToGoogle() { 통계 1을 준비하라 구글에 HTTP를 보내고, 결과 검증 여기까지 왔으면 테스트가 성공한거다. 통계1에 트랜잭션을 하나 올려라 } }
  36. 36. 인스트루먼트 GTest Test
  37. 37. FAIL
  38. 38. SUCCESS
  39. 39. DB TEST
  40. 40. LOG LEVEL
  41. 41. 리소스 읽기
  42. 42. 리소스 읽기 / Groovy Maven
  43. 43. 라이브러리 사용 (Jython / Groovy) 라이브러리 사용 (Groovy Maven Project) pom.xml 에 의존성 추가로 작업 끝!
  44. 44. 라이브러리 사용 (Jython / Groovy) 라이브러리 사용 (Groovy Maven Project) pom.xml 에 의존성 추가로 작업 끝!
  45. 45. 대규모 응답 처리하기
  46. 46. 대규모 응답 처리하기
  47. 47. 다수의 테스트 가중치 부여 실행
  48. 48. 쓰레드마다 다른 짓 하게 하기
  49. 49. JSON 파싱하기
  50. 50. XML 파싱하기
  51. 51. SocketIO 테스트 하기 http://www.cubrid.org/wiki_ngrinder/entry/using-ngrinder-toperform-load-test-for-a-socket-io-app
  52. 52. nGrinder Operation Best Practices
  53. 53. 사용자 등록이 귀찮아.. SSO 플러그인!!
  54. 54. 과도한 트래픽? ngrinder network overflow plugin
  55. 55. 어뷰징?? 시큐리티 모드

×