SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Protractor로
Web UI TEST 자동화 하기
web team | 서경석
서경석 이라고 합니다
서경석 이라고 합니다
Web UI Test를 하는 과정
• Web UI Test 하기
1. Test가 Excel, Jira, Confluence에?  관리 불편
2. IE, Firefox, Chrome…  반복
3. Test를 n빵 해서.  결국 사람이
4. 각자 본인 PC에서 수행.  환경 불일치
5. 내가 하면 성공? 니가 하면 실패?  감정의 존재
6. 오늘은 테스트의 날~?  간격의 문제
해결책은?
• 언제나.. 해결책인 있어요…!!!
해결책은 자동화
• 자동화!
해결책은 자동화
• 자동화 하면
1. Test를 코드로 작성  관리
2. IE, Firefox, Chrome…? 는 기계가  반복
3. N빵은… 밥 먹고 하는 것!  기계야
일해라
4. 언제나 동일한 환경  환경 일치
5. 테스트 결과는 항상 동일해요  감정 없음
6. 오늘은 테스트의 날~?  언제 어디서나
해결책은 자동화
• 자동화 테스트
그래도 힘들어요
하다 보니 불편은 마찬가지…
• 새로운 언어를 배워야 하거나…
• 설치가 복잡하거나…
• 테스트정확도가 떨어져요…
그래도 힘들어요
이런 기능도 되면 좋겠어요…
• Javascript를 그대로 사용하고 싶어요…
• Jasmine이나 Mocha같은 unit-test 형태로…
• Browser필요 없이 테스트 되었으면...
그래서 Protractor
Unit Test를 작성하듯 UI Test를 작성하자~
그래서 Protractor
Protractor 소개
Protractor
 Node.js & Selenium 기반의 Web UI Test Framework
 Node.js program, built on WebDriverJS
 https://angular.github.io/protractor
 MIT License
Protractor 설치
Protractor 설치
$ npm install –g protractor
Protractor 사용 – 코드 작성
Protractor로 UI 테스트 코드 작성하기
Conf.js – 설정
Spec.js – 테스트 코드
Protractor 사용 – 코드 작성
Protractor로 UI 테스트 코드 작성하기
Conf.js – 설정
Spec.js – 테스트 코드
Protractor 사용 – 코드 작성
Protractor로 UI 테스트 코드 작성하기
Conf.js – 설정
Spec.js – 테스트 코드
Protractor 사용 – 실행
Protractor로 테스트 실행하기
$ protractor conf.js
Protractor 사용 – 추가 요구사항
- 결과가 cli로 그냥 나오는데… 예쁘게 나왔으면~
- UI 테스트 중 문제가 생겼을 때, 상황을 캡쳐 해줬으면~
- 개발 중 나랑 연관된 일부 기능만 테스트 하였으면~
- Jasmin 말고 난 Mocha 를 쓰고 싶은데~
- Unit Test처럼 된다면… TDD처럼 사용하는 형태도 될까~
- 테스트 서버는 browser가 없는데… 테스트 가능 했으면~
Protractor 사용 – 추가 요구사항
- 결과가 cli로 그냥 나오는데… 예쁘게
나왔으면~
- UI 테스트 중 문제가 생겼을 때, 상황을 캡쳐
해줬으면~
- 개발 중 나랑 연관된 일부 기능만 테스트
하였으면~
- Jasmin 말고 난 Mocha 를 쓰고 싶은데~
- Unit Test처럼 된다면… TDD처럼 사용하는
형태도 될까~
- 테스트 서버는 browser가 없는데… 테스트 가능
했으면~
이 모든 것이 가능합니다!
무료 코드 얻기
https://github.com/angular/protractor
폭넓은
보장
무료!
WEB UI TEST엔
Protractor
Protractor 사용 – report & screenshot
Protractor html test result & screenshot
Protractor 사용 – 일부만 테스트하기
Protractor 일부 기능만 테스트 하기
• Conf.js 를 여러 개
• Spec.js 를 여러 개
• Test 서버를 여러 개
• 운영의 문제로 해결 할 수 있어요~!!!
Protractor 사용 – JS Unit Test FW
현재 팀에서 사용중인 Unit Test FW을
그대로 써도 됩니다~!!!
• Jasmine, Mocha, Cucumber, And using a custom FW
• 참고: https://angular.github.io/protractor/#/frameworks
Protractor 사용 – debugging
Debugging도 가능합니다.
• WebStorm 연동도 되요.
• 참고: https://angular.github.io/protractor/#/debugging
Protractor 사용 – No Browser
Browser가 없는
Server 환경에서도 테스트 가능해요!
Protractor 사용 – Multiple Browser
같은 테스트를 여러 Browser 에서
한번에 테스트도 가능합니다~
Protractor는 갑?
Protractor가 만능은 아니에요….
알파고 에게 아자황(기계제국의 1호 앞잡이?)이 필요하듯…
Selenium 기반 – WebDriver 사용 > 동일한 약점을 가져가요.
Phantom 연동의 경우 아직 문제가 많아요.
환경구성, CI연동 등, 설정 할 것들.. 배울 것이 많이 있어요.
Protractor 전문가?
여기까지 봤으면…
나도 Protractor 전문가?
사실 공부할 것들이 존재합니다...
Protractor 정리
언제나 그렇듯. 하나의 길만 있는 건 아니에요..
정답이 아닌, 선택의 문제!
Protractor 정리
Web UI Test를 Unit Test처럼 쓰고 싶을 땐?
떠올려라 Protractor ~!!
Protractor 정리
여러 Browser 에서 Web UI Test를 하고 싶을 땐?
떠올려라 Protractor ~!!
Protractor 정리
만약 당신의 팀에서 Web UI Test가 필요 할 땐?
떠올려라 Protractor ~!!
Protractor 떠올려라
Q & A
감사합니다.
web team | 서경석 프로
References
• https://angular.github.io/protractor/#/
• https://github.com/angular/protractor
• https://www.npmjs.com/package/protractor-html-screenshot-reporter
• https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter
• https://github.com/angular/protractor/blob/master/lib/frameworks/README.md
• https://www.youtube.com/watch?v=N3lzyPd6Xxc
• http://jasmine.github.io/2.2/custom_reporter.html
• http://vorachet.github.io/protractor-build-verification-testreport/

Weitere ähnliche Inhalte

Was ist angesagt?

Check style 기초가이드
Check style 기초가이드Check style 기초가이드
Check style 기초가이드rupert kim
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션SangIn Choung
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Jaehoon Oh
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)YoungSu Son
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드SangIn Choung
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016Jongwon Kim
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
테스트 기발 개발, TBD(Test based developement)
테스트 기발 개발, TBD(Test based developement)테스트 기발 개발, TBD(Test based developement)
테스트 기발 개발, TBD(Test based developement)도형 임
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템강 민우
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례SangIn Choung
 
행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스도형 임
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리도형 임
 
Rest api 테스트 수행가이드
Rest api 테스트 수행가이드Rest api 테스트 수행가이드
Rest api 테스트 수행가이드SangIn Choung
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅JinKwon Lee
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 

Was ist angesagt? (20)

Check style 기초가이드
Check style 기초가이드Check style 기초가이드
Check style 기초가이드
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션
 
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
 
Test term
Test termTest term
Test term
 
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
[NEXT] Android 개발 경험 프로젝트 4일차 (Networking)
 
크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드크로스(멀티)브라우저 테스트수행가이드
크로스(멀티)브라우저 테스트수행가이드
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
테스트 기발 개발, TBD(Test based developement)
테스트 기발 개발, TBD(Test based developement)테스트 기발 개발, TBD(Test based developement)
테스트 기발 개발, TBD(Test based developement)
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
[IGC 2016] 엔씨소프트 김종원 - 모바일 테스트 자동화 시스템
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례
 
행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스
 
sdet수행 사례
sdet수행 사례sdet수행 사례
sdet수행 사례
 
오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리오버라이딩을 사용한 테스트 시의 설정 처리
오버라이딩을 사용한 테스트 시의 설정 처리
 
Rest api 테스트 수행가이드
Rest api 테스트 수행가이드Rest api 테스트 수행가이드
Rest api 테스트 수행가이드
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 

Andere mochten auch

Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기GyeongSeok Seo
 
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)Channy Yun
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략SangIn Choung
 
国会図書館サーチの概要
国会図書館サーチの概要国会図書館サーチの概要
国会図書館サーチの概要Kosuke Tanabe
 
[143]Inside fuse deview 2016
[143]Inside fuse   deview 2016[143]Inside fuse   deview 2016
[143]Inside fuse deview 2016NAVER D2
 
Next Generation MapReduce
Next Generation MapReduceNext Generation MapReduce
Next Generation MapReduceOwen O'Malley
 
Bay Area HUG Feb 2011 Intro
Bay Area HUG Feb 2011 IntroBay Area HUG Feb 2011 Intro
Bay Area HUG Feb 2011 IntroOwen O'Malley
 
Next Generation Hadoop Operations
Next Generation Hadoop OperationsNext Generation Hadoop Operations
Next Generation Hadoop OperationsOwen O'Malley
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJSMizuho Sakamaki
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみるSatoshi KOBAYASHI
 
[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1정명훈 Jerry Jeong
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Satoshi KOBAYASHI
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우NAVER D2
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 

Andere mochten auch (20)

Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
차니의 IT 이야기 #2- 개발자 경력 관리 조언 (윤석찬)
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략
 
国会図書館サーチの概要
国会図書館サーチの概要国会図書館サーチの概要
国会図書館サーチの概要
 
[143]Inside fuse deview 2016
[143]Inside fuse   deview 2016[143]Inside fuse   deview 2016
[143]Inside fuse deview 2016
 
Cucumber jvm
Cucumber jvmCucumber jvm
Cucumber jvm
 
Next Generation MapReduce
Next Generation MapReduceNext Generation MapReduce
Next Generation MapReduce
 
Bay Area HUG Feb 2011 Intro
Bay Area HUG Feb 2011 IntroBay Area HUG Feb 2011 Intro
Bay Area HUG Feb 2011 Intro
 
Next Generation Hadoop Operations
Next Generation Hadoop OperationsNext Generation Hadoop Operations
Next Generation Hadoop Operations
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみる
 
[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 

Ähnlich wie Protractor로 web ui test 자동화 하기

유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신현욱 김
 
[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스KTH, 케이티하이텔
 
클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드Herren
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법SangIn Choung
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제Kiyoung Moon
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기Luavis Kang
 
스크립트 피피티
스크립트 피피티스크립트 피피티
스크립트 피피티지수 정
 
Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선기동 이
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향Eunhyang Kim
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합홍렬 임
 
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdfeastarJeong2
 
xUnitTestPattern/chapter16
xUnitTestPattern/chapter16xUnitTestPattern/chapter16
xUnitTestPattern/chapter16suitzero
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
동게 쿠키 오류 해결법
동게 쿠키 오류 해결법동게 쿠키 오류 해결법
동게 쿠키 오류 해결법SeokjinHeo
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
리펙토링 4장 테스트만들기
리펙토링 4장 테스트만들기리펙토링 4장 테스트만들기
리펙토링 4장 테스트만들기Heo Seungwook
 
Multithread & shared_ptr
Multithread & shared_ptrMultithread & shared_ptr
Multithread & shared_ptr내훈 정
 
Frontend test-environment 이해하기
Frontend test-environment 이해하기Frontend test-environment 이해하기
Frontend test-environment 이해하기성훈 백
 

Ähnlich wie Protractor로 web ui test 자동화 하기 (20)

유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스
 
클린코드와 테스트코드
클린코드와 테스트코드클린코드와 테스트코드
클린코드와 테스트코드
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기[SWMaestro 100+ 발표자료] 테스트하기
[SWMaestro 100+ 발표자료] 테스트하기
 
스크립트 피피티
스크립트 피피티스크립트 피피티
스크립트 피피티
 
Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선Front end 웹사이트 성능 측정 및 개선
Front end 웹사이트 성능 측정 및 개선
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합
 
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
 
xUnitTestPattern/chapter16
xUnitTestPattern/chapter16xUnitTestPattern/chapter16
xUnitTestPattern/chapter16
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
동게 쿠키 오류 해결법
동게 쿠키 오류 해결법동게 쿠키 오류 해결법
동게 쿠키 오류 해결법
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
리펙토링 4장 테스트만들기
리펙토링 4장 테스트만들기리펙토링 4장 테스트만들기
리펙토링 4장 테스트만들기
 
Multithread & shared_ptr
Multithread & shared_ptrMultithread & shared_ptr
Multithread & shared_ptr
 
Frontend test-environment 이해하기
Frontend test-environment 이해하기Frontend test-environment 이해하기
Frontend test-environment 이해하기
 

Kürzlich hochgeladen

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Kürzlich hochgeladen (6)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Protractor로 web ui test 자동화 하기

  • 1. Protractor로 Web UI TEST 자동화 하기 web team | 서경석
  • 4. Web UI Test를 하는 과정 • Web UI Test 하기 1. Test가 Excel, Jira, Confluence에?  관리 불편 2. IE, Firefox, Chrome…  반복 3. Test를 n빵 해서.  결국 사람이 4. 각자 본인 PC에서 수행.  환경 불일치 5. 내가 하면 성공? 니가 하면 실패?  감정의 존재 6. 오늘은 테스트의 날~?  간격의 문제
  • 7. 해결책은 자동화 • 자동화 하면 1. Test를 코드로 작성  관리 2. IE, Firefox, Chrome…? 는 기계가  반복 3. N빵은… 밥 먹고 하는 것!  기계야 일해라 4. 언제나 동일한 환경  환경 일치 5. 테스트 결과는 항상 동일해요  감정 없음 6. 오늘은 테스트의 날~?  언제 어디서나
  • 9. 그래도 힘들어요 하다 보니 불편은 마찬가지… • 새로운 언어를 배워야 하거나… • 설치가 복잡하거나… • 테스트정확도가 떨어져요…
  • 10. 그래도 힘들어요 이런 기능도 되면 좋겠어요… • Javascript를 그대로 사용하고 싶어요… • Jasmine이나 Mocha같은 unit-test 형태로… • Browser필요 없이 테스트 되었으면...
  • 11. 그래서 Protractor Unit Test를 작성하듯 UI Test를 작성하자~ 그래서 Protractor
  • 12. Protractor 소개 Protractor  Node.js & Selenium 기반의 Web UI Test Framework  Node.js program, built on WebDriverJS  https://angular.github.io/protractor  MIT License
  • 13. Protractor 설치 Protractor 설치 $ npm install –g protractor
  • 14. Protractor 사용 – 코드 작성 Protractor로 UI 테스트 코드 작성하기 Conf.js – 설정 Spec.js – 테스트 코드
  • 15. Protractor 사용 – 코드 작성 Protractor로 UI 테스트 코드 작성하기 Conf.js – 설정 Spec.js – 테스트 코드
  • 16. Protractor 사용 – 코드 작성 Protractor로 UI 테스트 코드 작성하기 Conf.js – 설정 Spec.js – 테스트 코드
  • 17. Protractor 사용 – 실행 Protractor로 테스트 실행하기 $ protractor conf.js
  • 18. Protractor 사용 – 추가 요구사항 - 결과가 cli로 그냥 나오는데… 예쁘게 나왔으면~ - UI 테스트 중 문제가 생겼을 때, 상황을 캡쳐 해줬으면~ - 개발 중 나랑 연관된 일부 기능만 테스트 하였으면~ - Jasmin 말고 난 Mocha 를 쓰고 싶은데~ - Unit Test처럼 된다면… TDD처럼 사용하는 형태도 될까~ - 테스트 서버는 browser가 없는데… 테스트 가능 했으면~
  • 19. Protractor 사용 – 추가 요구사항 - 결과가 cli로 그냥 나오는데… 예쁘게 나왔으면~ - UI 테스트 중 문제가 생겼을 때, 상황을 캡쳐 해줬으면~ - 개발 중 나랑 연관된 일부 기능만 테스트 하였으면~ - Jasmin 말고 난 Mocha 를 쓰고 싶은데~ - Unit Test처럼 된다면… TDD처럼 사용하는 형태도 될까~ - 테스트 서버는 browser가 없는데… 테스트 가능 했으면~ 이 모든 것이 가능합니다! 무료 코드 얻기 https://github.com/angular/protractor 폭넓은 보장 무료! WEB UI TEST엔 Protractor
  • 20. Protractor 사용 – report & screenshot Protractor html test result & screenshot
  • 21. Protractor 사용 – 일부만 테스트하기 Protractor 일부 기능만 테스트 하기 • Conf.js 를 여러 개 • Spec.js 를 여러 개 • Test 서버를 여러 개 • 운영의 문제로 해결 할 수 있어요~!!!
  • 22. Protractor 사용 – JS Unit Test FW 현재 팀에서 사용중인 Unit Test FW을 그대로 써도 됩니다~!!! • Jasmine, Mocha, Cucumber, And using a custom FW • 참고: https://angular.github.io/protractor/#/frameworks
  • 23. Protractor 사용 – debugging Debugging도 가능합니다. • WebStorm 연동도 되요. • 참고: https://angular.github.io/protractor/#/debugging
  • 24. Protractor 사용 – No Browser Browser가 없는 Server 환경에서도 테스트 가능해요!
  • 25. Protractor 사용 – Multiple Browser 같은 테스트를 여러 Browser 에서 한번에 테스트도 가능합니다~
  • 26. Protractor는 갑? Protractor가 만능은 아니에요…. 알파고 에게 아자황(기계제국의 1호 앞잡이?)이 필요하듯… Selenium 기반 – WebDriver 사용 > 동일한 약점을 가져가요. Phantom 연동의 경우 아직 문제가 많아요. 환경구성, CI연동 등, 설정 할 것들.. 배울 것이 많이 있어요.
  • 27. Protractor 전문가? 여기까지 봤으면… 나도 Protractor 전문가? 사실 공부할 것들이 존재합니다...
  • 28. Protractor 정리 언제나 그렇듯. 하나의 길만 있는 건 아니에요.. 정답이 아닌, 선택의 문제!
  • 29. Protractor 정리 Web UI Test를 Unit Test처럼 쓰고 싶을 땐? 떠올려라 Protractor ~!!
  • 30. Protractor 정리 여러 Browser 에서 Web UI Test를 하고 싶을 땐? 떠올려라 Protractor ~!!
  • 31. Protractor 정리 만약 당신의 팀에서 Web UI Test가 필요 할 땐? 떠올려라 Protractor ~!!
  • 32. Protractor 떠올려라 Q & A 감사합니다. web team | 서경석 프로
  • 33. References • https://angular.github.io/protractor/#/ • https://github.com/angular/protractor • https://www.npmjs.com/package/protractor-html-screenshot-reporter • https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter • https://github.com/angular/protractor/blob/master/lib/frameworks/README.md • https://www.youtube.com/watch?v=N3lzyPd6Xxc • http://jasmine.github.io/2.2/custom_reporter.html • http://vorachet.github.io/protractor-build-verification-testreport/

Hinweis der Redaktion

  1. 발표자 소개 Web team 에서 일하고 있습니다. Html, css, javascript, node 등을 하고 있어요..
  2. 발표자 소개 좋아하는거 – 야구보기, 스타트렉, 영화, 게임
  3. page3 - UI 테스트에 대한 일반적인 과정 소개 -> 문제점 도출... 서두 - Web UI 를 테스트 하기 (일반적인 과정들...) 1. Test 과정을 수기로 작성한다. (Excel, Jira, etc...)  관리 불편 2. OH-NO~…. 너무 많아….  반복 IE, Firefox, Chrome 등... 환경에 따라 n승 되는 test 숫자... 3. 결국 Test case 를 n빵 (인원수로....) 하게 됨  결국 사람이 4. 각자 자기 PC에서 테스트를 실행한다. (환경 불일치...미묘한 브라우저 버전들...)  환경 불일치 5. 동일 테스트가 테스트 한 사람에 따라 다른 결과를 도출하게 된다. (나는 관대하다...!!!)  감정의 존재 인간은 알파고가 아니니까.. 실수를... 쿨럭..., 내가보기에 이정도는 성공인듯? 6. 팀장님의 테스트 결과에 대한 의심.....? 7. 모든 팀원이 마음 먹고 시간내서. 테스트를 돌리는....  (대청소??)
  4. 우리의 극복 방안은 자동화~!! (autumation 관련 이미지들..)
  5. 문제가 해결되는걸 보여줌 1. Test를 코드로 작성 - 주석 or 테스트 이름으로 구분 가능 - 소스 코드 Or Unit test 코드와 같이 관리 가능. 2. 수가 많아도 문제 없어요.. - 나만 아니면 됨... (기계님이 해주심..~!!) 3. n빵은... 밥먹고 하느거죠..~!!, 기계야 일해라.. (인간이 컴퓨터를 채찍질 하는 사진..) 4. 언제나 동일한 환경이 되어요~!!, 고정된 환경 (테스트 환경의 일치..) - 테스트 서버(혹은 pc - 에 고정된 모습 - 사진) 5. 동일환경, 동일 코드에서, 동일 테스트는 항상 결과가 같아요.. (감정없는 ..... 기계적인 그림...) 6. 팀장님의 신뢰... 7. 언제든 돌려볼 수 있어요~, 업무 중간 중간.. anytime (anytime 광고? 사진 같은거...) 잡았다 요놈 그림 이용...
  6. 기존 그래픽 기반 자동화 테스트 소개 – 너무 많아요.. 그리고, 새로운 스크립트나 언어를 배워야 하거나? 이미지 기반의 툴은 정확도가 떨어져요.. https://en.wikipedia.org/wiki/List_of_GUI_testing_tools
  7. 그래도 힘들어요... 테스팅 framewor이 많다. 막상 선택하면 사용하기 힘들고.. 1. 그래픽 기반 - 픽셀에 민감 - 테스트가.. 거짓말을 함... 2. 그래픽 기반 - 속도가 너무 느림 3. 그래픽 기반 - 코드 작성이 복잡 4. 그래픽 기반 - 설치 과정이 복잡 5. 셀레니움 - 또 너무 많은걸 배워야함? (진짜 넣을지 고민 필요..)
  8. 하다보니 사용하기 불편한건 마찬가지... 이런것도 되면 좋겠어요... 1. browser 띄울 필요 x 테스트가 되었으면.. 2. unit-test 작성 하듯이 작성 할 수 있었으면.
  9. 표어? unit test를 작성 하듯 UI test를 작성 하자~ 그래서 protractor~!
  10. page12 - protractor 소개 1. 셀레니움 기반(webdriver)의 UI 테스트 F/W 2. 홈피 주소 1. angular JS 을 위해 만들어짐, node 기반 2. 라이선스 3. 버전 4. git 주소 등..
  11. page13 - protractor 설치 스크린샷으로 - node, java, npm 3가지만 기억하면 설치 완료~ $ npm install –g protractor  설치 $ webdriver-manager update  업데이트 $ webdriver-manager start  실행
  12. page14 - protractor 사용 - 코드 작성 config.js (설정) - 전체 내용 볼 필요 없음 - 중요 내용만. - , js unit - test 처럼 작성 가능은 강조. spec.js (테스트) - 실제 테스트 코드 - 동일하게 전체 내용 볼 필요 없음 - 중요 내용만. 가장 핵심 - 이것만 알면, 당신도 이제 UI 테스트를 만들 수 있어요....
  13. page14 - protractor 사용 - 코드 작성 config.js (설정) - 전체 내용 볼 필요 없음 - 중요 내용만. - , js unit - test 처럼 작성 가능은 강조. spec.js (테스트) - 실제 테스트 코드 - 동일하게 전체 내용 볼 필요 없음 - 중요 내용만. 가장 핵심 - 이것만 알면, 당신도 이제 UI 테스트를 만들 수 있어요....
  14. page14 - protractor 사용 - 코드 작성 config.js (설정) - 전체 내용 볼 필요 없음 - 중요 내용만. - , js unit - test 처럼 작성 가능은 강조. spec.js (테스트) - 실제 테스트 코드 - 동일하게 전체 내용 볼 필요 없음 - 중요 내용만. 가장 핵심 - 이것만 알면, 당신도 이제 UI 테스트를 만들 수 있어요....
  15. protractor 사용 - 런런런~~~ protractor conf.js 로 실행~!! (protractor 로 실행~~ 을 강조) 실행 결과 (스크린샷 이용.)
  16. protractor 사용 - 추가 요구사항 (상황극?) (팀장님 - 사진사용) - 결과가 cli상에 그냥 떨어지는데... 이쁘게 떨어지고 Html로 떨어지면 좋겠어... (오 - 사진사용) - UI 테스트중 문제가 생겼을때, 문제 상황을 캡쳐해주면 좋지 않나? (김 - 사진사용) - 개발중 나랑 연관된 일부 기능들만 테스트 하는것도 되니? (배 - 사진사용) - js unit test fs 이 jasmine이 아니면? (황 - 사진사용) - unit test처럼 된다면...TDD처럼 사용도 가능할까? (박 - 사진사용) - 테스트 서버는 chrome 이나 firefox같은 실제 브라우저가 없어. 서버 os라서.. 그런데서도 가능할까? (서 - 사진사용) - 서버 분리의 의미가 모지? (혹은 모바일 지원등 여러 브라우저 지원 관련 내용으로...)? protractor 사용 - 이 모든것이 가능합니다~!! (홈쇼핑에서 이모든게 29,900 원~!! 하듯....)
  17. protractor 사용 - 추가 요구사항 (상황극?) (팀장님 - 사진사용) - 결과가 cli상에 그냥 떨어지는데... 이쁘게 떨어지고 Html로 떨어지면 좋겠어... (오 - 사진사용) - UI 테스트중 문제가 생겼을때, 문제 상황을 캡쳐해주면 좋지 않나? (김 - 사진사용) - 개발중 나랑 연관된 일부 기능들만 테스트 하는것도 되니? (배 - 사진사용) - js unit test fs 이 jasmine이 아니면? (황 - 사진사용) - unit test처럼 된다면...TDD처럼 사용도 가능할까? (박 - 사진사용) - 테스트 서버는 chrome 이나 firefox같은 실제 브라우저가 없어. 서버 os라서.. 그런데서도 가능할까? (서 - 사진사용) - 서버 분리의 의미가 모지? (혹은 모바일 지원등 여러 브라우저 지원 관련 내용으로...)? protractor 사용 - 이 모든것이 가능합니다~!! (홈쇼핑에서 이모든게 29,900 원~!! 하듯....)
  18. protractor 사용 - html로 결과 만들기, 캡쳐 사용자가 지정한 형태의 리포팅 만들기가 가능 스크린샷 찍는것도 가능 사실 스크린샷 찍는건 function 으로 제공되고 있어요.. browser.takeScreenshot().then(function (png) { writeScreenShot(png, 'exception.png'); }); https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter 참고. Jasmine에서 지원하는 html report 는 모두 가능 또한 사용자가 정의해서 사용도 가능. 사실 node app이기 때문에 더 많은 것도 가능 https://www.youtube.com/watch?v=N3lzyPd6Xxc 참고.
  19. protractor 사용 - 일부 기능만 테스트하기 기능 conf.js를 여러개로 구성해서.. 혹은 spec.js를 여러개로 구성해서.. 혹은 test서버 (환경)을 여러개로 구성해서.. 운영의 문제로 해결 할 수 있어요~~!!!
  20. protractor 사용 - js unit test - jasmin, mocha, custom(junit..) 현재 팀에서 사용중인 unit test형태를 그대로 써도 됩니다~!!
  21. page21 - protractor 사용 - debug 기능도 제공~ TDD형태.. unit test코드 자체도 debug가능~~
  22. protractor 사용 - 브라우저 없어도 되요.. phantom 하고도 연동 가능 phantom 구동 화면 스크린샷 ? 참고: https://angular.github.io/protractor/#/browser-setup
  23. 참고: https://angular.github.io/protractor/#/browser-setup
  24. protractor가 만능은 아니에요...... 알파고에게 아자황이 필요하듯.... (그림 추가)... selenium 기반 - webdriver사용 > 동일한 약점들이 있음 phantom 연동의 경우 아직 문제가 많음. 환경구성, CI연동, test코드 작성 (배워야함...<-- 쉬운편이긴 하지만....)
  25. 정리 언제나...그렇듯... 하나의 길만 있는것은 아니에요~~ 선택의 영역~~!!
  26. Web UI 테스트를 Unit 테스트 처럼? 떠올려라 Protractor~!
  27. 서로 다른 여러 browser 에서 Web UI 테스트를 하고 싶은면. 떠올려라 Protractor~!
  28. 만약 당신의 팀이 Web UI test 가 필요하면. 그래도 이 발표를 듣고.... Web UI test ~!! 하면 ... Protractor를 떠올려 주세요... 이거만 성공하면. 발표자의 발표는 성공~!!!
  29. Q & A , 감사합니다. (우정출현 - 사진속 사람들... ㅋ)