SlideShare a Scribd company logo
1 of 17
Download to read offline
1 / 16
내가 써본 nGrinder
2015. 04. 18
소 속 스 펙 트 라
작 성 자 임 성 현
이 메 일 sunghyun.lim@gmail.com
2 / 16
강사 소개
• 프로파일
• 16년차 자바 개발자
• 상담 솔루션 개발회사 품질 총괄
• 릴리즈, 보안, 성능, 협업툴 담당
• 전자계산 조직응용 기술사
• 10년차 한이음 IT 멘토링 멘토
• 대학생 졸업작품 지도
3 / 16
< INTRO/시연 >
1. 동시 사용자 모델링
2. 일정/ 범위 잡기
3. 결과 보고서 준비
4. 목표 재확인
5. 설치
목차
6. 스크립트 작성
7. 테스트 실행 plan/진행
8. 결과 확인
9. 보고서 완성- Excel
10.의견 제출
< OUTRO/힌트 >
4 / 16
< INTRO/ 시연>
•성능 테스트 언제? 왜?
• SI개발 프로젝트 후반/ 제품 개발 후반
• 프로젝트를 잘 끝내고 철수하도록
•왜 nGrinder …?
• 무료(=IDE = WAS = SCM = JVM) & 설치가 정말 쉽다.
• 단, 저는 만든사람이 아님. 모두 알고 쓰는 것도 아님.
•오늘 다룰 내용
• 설치 그 이후. 사용자 모델 ~ 의견제출까지 경험 공유
5 / 16
< INTRO/ 시연>
•시연: Flight page(원격 서버) <-> agent, Controller(Local)
1) 테스트 대상 선정
2) 테스트 레코딩
3) 검증 및 테스트 수행
4) 결과 확인
소스 원본: http://sleeplessinslc.blogspot.kr/2012/01/spring-31-mvc-example.html
6 / 16
1. 동시 사용자 모델링
•튼튼한, 견고한, 죽지 않는 시스템
• 누락된 부분은…? -> 얼마나 많은 사용자에 대해서?
• 힌트: 고객사, 구글 플레이, AppAnnie(유료)
7 / 16
2. 일정/ 범위 잡기
•인프라팀, 고객과의 약속
•환경구축, 스크립트작성, 테스트, 검토의 충분한 시간 확보
8 / 16
데이터 검색 데이터 생성
2. 일정/ 범위 잡기
•시나리오 흐름 예시
1 2 3
데이터 검색 데이터 검색
4 5
9 / 16
3. 결과 보고서 준비
•엑셀 권장 - 표와 그래프를 함께 보여주기 좋음
10 / 16
4. 목표 재확인
•동시 사용자
•예시: 50명 Active user
à 20명/50명/80명 테스트 수행
•대상 화면(Target Page)
•테스트 대상 흐름, 측정 대상 화면 확인
•측정 지표/ 목표값(TPS/ MTT)
•TPS: Test Per Second
•MTT: Mean Test Time
11 / 16
5. 설치
• 설치 서버 고려시 주의:
• 테스트 하는 서버도 죽습니다.
• 과도한 Traffic이 발생하면 네트워크 차단 됩니다.
• Controller – Agent
사이 port 고려
12 / 16
6. 스크립트 작성
• 스크립트 작성 전략 : Record or Manual…?
- image/static page (자연스런 noise) 추가 여부
- 사용자 계정/ session 처리 등 dynamic 스크립트
• 레코더: TCPProxy
• The Grinder에 있는 jython 레코더(Grinder 3.1 이상 권장)
• 쉽게 사용 가능하나, 결과물이 매우 복잡함
java -cp "grinder-3.11/lib/*"
net.grinder.TCPProxy -console -http
> script.py
13 / 16
6. 스크립트 작성
• 스크립트 예시
14 / 16
7. 테스트 실행 plan/진행
•테스트를 실행할 시간대 :
•주간: 개발자 도움을 받을 수 있다.
단, 반드시 주위에 공지
•야간: 테스트에 집중할 수 있다.
•테스트 사이클
•테스트 실행 -> 결과 수집 -> 결과 분석 -> 재실행
15 / 16
8. 결과 확인
• nGrinder 페이지
• CSV 파일
16 / 16
9. 보고서 완성 / 의견 제출
• 어떤 graph를 만들 것인가?
-> 결국 어떤 내용을 보고 판단할지가 중요
17 / 16
< OUTRO/힌트 >
•nGrinder 쓸만한가? -> 충분하다.
•스크립트 레코딩시 주의사항 -> 브라우저 업데이트, 대상이 명확하게
•동시 사용자를 감안하지 않는다면? ->
•크롬 브라우저 F12(Mac에서는 cmd+option+I)도 유용

More Related Content

What's hot

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성Hyunjik Bae
 
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍Chris Ohk
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해Nam Hyeonuk
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅Keesun Baik
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90minsLarry Cai
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기NHN FORWARD
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX, Inc.
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とかkotto_hihihi
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델Seungmo Koo
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティNGINX, Inc.
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulSeungYong Oh
 

What's hot (20)

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성
 
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90mins
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
Openv switchの使い方とか
Openv switchの使い方とかOpenv switchの使い方とか
Openv switchの使い方とか
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
 
Mrtg ubuntu
Mrtg ubuntuMrtg ubuntu
Mrtg ubuntu
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
 

Similar to 내가써본 nGrinder-SpringCamp 2015

Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture준일 엄
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드SangIn Choung
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님NAVER D2
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가smartstudy_official
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기지수 윤
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2Daniel Lim
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)Sungmin Kim
 
Tableau Conference 2018 세션 주요 내용 정리
Tableau Conference 2018 세션 주요 내용 정리Tableau Conference 2018 세션 주요 내용 정리
Tableau Conference 2018 세션 주요 내용 정리Jaeha Woo
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
어플리케이션 및 웹 개발
어플리케이션 및 웹 개발어플리케이션 및 웹 개발
어플리케이션 및 웹 개발Leonardo Taehwan Kim
 
Scrum and kanban with jira
Scrum and kanban with jira Scrum and kanban with jira
Scrum and kanban with jira 호정 이
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기Haechan Lee
 
2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서Seongho Park
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
SOSCON2015 Robot Framework
SOSCON2015 Robot FrameworkSOSCON2015 Robot Framework
SOSCON2015 Robot FrameworkSung Hoon Moon
 

Similar to 내가써본 nGrinder-SpringCamp 2015 (20)

Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드
 
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
 
Tableau Conference 2018 세션 주요 내용 정리
Tableau Conference 2018 세션 주요 내용 정리Tableau Conference 2018 세션 주요 내용 정리
Tableau Conference 2018 세션 주요 내용 정리
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
어플리케이션 및 웹 개발
어플리케이션 및 웹 개발어플리케이션 및 웹 개발
어플리케이션 및 웹 개발
 
Scrum and kanban with jira
Scrum and kanban with jira Scrum and kanban with jira
Scrum and kanban with jira
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
[NDC 2018] 테라 콘솔 포팅기 - UE3 게임 현세대 콘솔로 이식하기
 
2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서2015 hi first 스터디 최종보고서
2015 hi first 스터디 최종보고서
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
SOSCON2015 Robot Framework
SOSCON2015 Robot FrameworkSOSCON2015 Robot Framework
SOSCON2015 Robot Framework
 

More from Lim SungHyun

신기술도입가이드
신기술도입가이드신기술도입가이드
신기술도입가이드Lim SungHyun
 
솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처Lim SungHyun
 
사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획Lim SungHyun
 
공감세미나 성능테스트
공감세미나 성능테스트공감세미나 성능테스트
공감세미나 성능테스트Lim SungHyun
 
(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구Lim SungHyun
 
Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Lim SungHyun
 

More from Lim SungHyun (6)

신기술도입가이드
신기술도입가이드신기술도입가이드
신기술도입가이드
 
솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처솔루션 구축 사례를 통해 본 SW아키텍처
솔루션 구축 사례를 통해 본 SW아키텍처
 
사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획
 
공감세미나 성능테스트
공감세미나 성능테스트공감세미나 성능테스트
공감세미나 성능테스트
 
(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구
 
Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임
 

내가써본 nGrinder-SpringCamp 2015

  • 1. 1 / 16 내가 써본 nGrinder 2015. 04. 18 소 속 스 펙 트 라 작 성 자 임 성 현 이 메 일 sunghyun.lim@gmail.com
  • 2. 2 / 16 강사 소개 • 프로파일 • 16년차 자바 개발자 • 상담 솔루션 개발회사 품질 총괄 • 릴리즈, 보안, 성능, 협업툴 담당 • 전자계산 조직응용 기술사 • 10년차 한이음 IT 멘토링 멘토 • 대학생 졸업작품 지도
  • 3. 3 / 16 < INTRO/시연 > 1. 동시 사용자 모델링 2. 일정/ 범위 잡기 3. 결과 보고서 준비 4. 목표 재확인 5. 설치 목차 6. 스크립트 작성 7. 테스트 실행 plan/진행 8. 결과 확인 9. 보고서 완성- Excel 10.의견 제출 < OUTRO/힌트 >
  • 4. 4 / 16 < INTRO/ 시연> •성능 테스트 언제? 왜? • SI개발 프로젝트 후반/ 제품 개발 후반 • 프로젝트를 잘 끝내고 철수하도록 •왜 nGrinder …? • 무료(=IDE = WAS = SCM = JVM) & 설치가 정말 쉽다. • 단, 저는 만든사람이 아님. 모두 알고 쓰는 것도 아님. •오늘 다룰 내용 • 설치 그 이후. 사용자 모델 ~ 의견제출까지 경험 공유
  • 5. 5 / 16 < INTRO/ 시연> •시연: Flight page(원격 서버) <-> agent, Controller(Local) 1) 테스트 대상 선정 2) 테스트 레코딩 3) 검증 및 테스트 수행 4) 결과 확인 소스 원본: http://sleeplessinslc.blogspot.kr/2012/01/spring-31-mvc-example.html
  • 6. 6 / 16 1. 동시 사용자 모델링 •튼튼한, 견고한, 죽지 않는 시스템 • 누락된 부분은…? -> 얼마나 많은 사용자에 대해서? • 힌트: 고객사, 구글 플레이, AppAnnie(유료)
  • 7. 7 / 16 2. 일정/ 범위 잡기 •인프라팀, 고객과의 약속 •환경구축, 스크립트작성, 테스트, 검토의 충분한 시간 확보
  • 8. 8 / 16 데이터 검색 데이터 생성 2. 일정/ 범위 잡기 •시나리오 흐름 예시 1 2 3 데이터 검색 데이터 검색 4 5
  • 9. 9 / 16 3. 결과 보고서 준비 •엑셀 권장 - 표와 그래프를 함께 보여주기 좋음
  • 10. 10 / 16 4. 목표 재확인 •동시 사용자 •예시: 50명 Active user à 20명/50명/80명 테스트 수행 •대상 화면(Target Page) •테스트 대상 흐름, 측정 대상 화면 확인 •측정 지표/ 목표값(TPS/ MTT) •TPS: Test Per Second •MTT: Mean Test Time
  • 11. 11 / 16 5. 설치 • 설치 서버 고려시 주의: • 테스트 하는 서버도 죽습니다. • 과도한 Traffic이 발생하면 네트워크 차단 됩니다. • Controller – Agent 사이 port 고려
  • 12. 12 / 16 6. 스크립트 작성 • 스크립트 작성 전략 : Record or Manual…? - image/static page (자연스런 noise) 추가 여부 - 사용자 계정/ session 처리 등 dynamic 스크립트 • 레코더: TCPProxy • The Grinder에 있는 jython 레코더(Grinder 3.1 이상 권장) • 쉽게 사용 가능하나, 결과물이 매우 복잡함 java -cp "grinder-3.11/lib/*" net.grinder.TCPProxy -console -http > script.py
  • 13. 13 / 16 6. 스크립트 작성 • 스크립트 예시
  • 14. 14 / 16 7. 테스트 실행 plan/진행 •테스트를 실행할 시간대 : •주간: 개발자 도움을 받을 수 있다. 단, 반드시 주위에 공지 •야간: 테스트에 집중할 수 있다. •테스트 사이클 •테스트 실행 -> 결과 수집 -> 결과 분석 -> 재실행
  • 15. 15 / 16 8. 결과 확인 • nGrinder 페이지 • CSV 파일
  • 16. 16 / 16 9. 보고서 완성 / 의견 제출 • 어떤 graph를 만들 것인가? -> 결국 어떤 내용을 보고 판단할지가 중요
  • 17. 17 / 16 < OUTRO/힌트 > •nGrinder 쓸만한가? -> 충분하다. •스크립트 레코딩시 주의사항 -> 브라우저 업데이트, 대상이 명확하게 •동시 사용자를 감안하지 않는다면? -> •크롬 브라우저 F12(Mac에서는 cmd+option+I)도 유용