Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
UI TEST 자동화
- SELENIUM + JENKINS
연창학
프로젝트 진행 중 (개발자시점)
• 수정 -> 수정 -> 수정 하다보면….
기획
QA
로그인이 안되요.
로그인이 안되요.
로그인이 안되요.
로그인이 안되요.
로그인이 안되요.
로그인이 안되요.
프로젝트 진행 중 (개발자시점)
화. 난. 다.
프로젝트 진행 중 (QA 시점)
QA
로그인이 됐었는
데…
로그인이 됐었는
데…
로그인이 됐었는
데…
로그인이 됐었는
데…
로그인이 됐었는
데…
로그인이 됐었는
데…
프로젝트 진행 중 (Q/A 시점)
귀. 찮. 다.
뫼비우스의 띠
방법이 없을까?
해결책 – UITEST 자동화
• Phantom JS
• Selenium
• Naver Guitar 등등..
- HTML, CSS, 자바스크립트
파일을 인식
SELENIUM 준비 사항
Firefox 설치
Python 2.7.x, Selenium설치(C, Java, Ruby도 가능)
python -m unittest discover -s ./ -p "*.py" 으로 전체 테스...
간단한 코드 예시
주의 사항
• Python Unittest는 함수명에 따라 test 인식
• 함수명이 test로 시작해야만 unittest 실행
• 일반 함수(로그인 등)를 모듈화하고 테스트 함수는 test_XXX 등의 이름으
로 작성...
간단한 시연
• 데모라.. 가끔 에러가..
UITEST 자동화까진 OK
• 그런데 하루 종일 계속 돌려야돼?
NO!
JENKINS와 연동
• 테스트 서버 빌드 프로젝트의 하위 프로젝트로 만들기
• 테스트 서버가 빌드되면 변화를 인식한 뒤 자동적으로 테스트를 진행한다!
TEST 결과
• JENKINS CONSOLE 창에서 결과 확인 가능
(필요하다면 슬랙 공지도 가능)
전체 프로세스 도식도
Git
(Frontend)
Git
(Selenium)
Jenkins 서비스
개발자
개발자
개발자
QA
1. 개발 & Push
2. 변화 감지
3. 코드 빌드
4. 빌드 후 전송
5. 빌드 완료 감지...
SELENIUMTIPS
• 1) Selenium IDE 설치 (Firefox 확장 프로그램)
SELENIUMTIPS
• 1) Selenium IDE 설치 (Firefox 확장 프로그램)
각종 언어로 변환 가능
* 오류는 많음… 적절한 수정 필요
SELENIUMTIPS
• 2) Firebug, Firepath설치 (Firefox 확장 프로그램)
SELENIUMTIPS
• 2) Firebug, Firepath설치 (Firefox 확장 프로그램)
Selenium은 id, class 등의 값으로 item(?) 인식
간혹 개발자들의 실수로 item 간의 id, cla...
SELENIUMTIPS
• 3) IE, Chrome을 열 때
Selenium의 기본 브라우저는 Firefox.
driver = webdriver.Firefox()
간단히 열 수 있다.
하지만 Ie, Chrome은
dri...
Upcoming SlideShare
Loading in …5
×

Ui test 자동화하기 - Selenium + Jenkins

3,619 views

Published on

저는 핀테크 서비스 개발 프로젝트에 참여하여 CI 구축과 QA 자동화 부분 개발을 담당하였습니다.

프로젝트가 시작하면 수 많은 개발자들과 기획자 그리고 QA 들이 다투는 것은 빈번한 일상입니다..

바쁜 개발 과정에서 기본적인 로그인 함수의 구현을 계속해서 체크해야 하는 것은 매우 불편하고 번거롭죠.

Selenium과 Jenkins를 통해 다음과 같은 상황을 자동화하여 개발자들과 QA/기획자들간의 갈등을 줄이고자 합니다.

스크린샷 중 가린부분들은 현재 회사 프로젝트 유출 방지를 위한 것이니 너그러이 용서해주시길..

Published in: Software
  • Be the first to comment

Ui test 자동화하기 - Selenium + Jenkins

  1. 1. UI TEST 자동화 - SELENIUM + JENKINS 연창학
  2. 2. 프로젝트 진행 중 (개발자시점) • 수정 -> 수정 -> 수정 하다보면…. 기획 QA 로그인이 안되요. 로그인이 안되요. 로그인이 안되요. 로그인이 안되요. 로그인이 안되요. 로그인이 안되요.
  3. 3. 프로젝트 진행 중 (개발자시점) 화. 난. 다.
  4. 4. 프로젝트 진행 중 (QA 시점) QA 로그인이 됐었는 데… 로그인이 됐었는 데… 로그인이 됐었는 데… 로그인이 됐었는 데… 로그인이 됐었는 데… 로그인이 됐었는 데…
  5. 5. 프로젝트 진행 중 (Q/A 시점) 귀. 찮. 다.
  6. 6. 뫼비우스의 띠 방법이 없을까?
  7. 7. 해결책 – UITEST 자동화 • Phantom JS • Selenium • Naver Guitar 등등.. - HTML, CSS, 자바스크립트 파일을 인식
  8. 8. SELENIUM 준비 사항 Firefox 설치 Python 2.7.x, Selenium설치(C, Java, Ruby도 가능) python -m unittest discover -s ./ -p "*.py" 으로 전체 테스트 실행 끝
  9. 9. 간단한 코드 예시
  10. 10. 주의 사항 • Python Unittest는 함수명에 따라 test 인식 • 함수명이 test로 시작해야만 unittest 실행 • 일반 함수(로그인 등)를 모듈화하고 테스트 함수는 test_XXX 등의 이름으 로 작성해야한다.
  11. 11. 간단한 시연 • 데모라.. 가끔 에러가..
  12. 12. UITEST 자동화까진 OK • 그런데 하루 종일 계속 돌려야돼? NO!
  13. 13. JENKINS와 연동 • 테스트 서버 빌드 프로젝트의 하위 프로젝트로 만들기 • 테스트 서버가 빌드되면 변화를 인식한 뒤 자동적으로 테스트를 진행한다!
  14. 14. TEST 결과 • JENKINS CONSOLE 창에서 결과 확인 가능 (필요하다면 슬랙 공지도 가능)
  15. 15. 전체 프로세스 도식도 Git (Frontend) Git (Selenium) Jenkins 서비스 개발자 개발자 개발자 QA 1. 개발 & Push 2. 변화 감지 3. 코드 빌드 4. 빌드 후 전송 5. 빌드 완료 감지 6. 코드 요청 7. 코드 빌드 8. 테스트 실행
  16. 16. SELENIUMTIPS • 1) Selenium IDE 설치 (Firefox 확장 프로그램)
  17. 17. SELENIUMTIPS • 1) Selenium IDE 설치 (Firefox 확장 프로그램) 각종 언어로 변환 가능 * 오류는 많음… 적절한 수정 필요
  18. 18. SELENIUMTIPS • 2) Firebug, Firepath설치 (Firefox 확장 프로그램)
  19. 19. SELENIUMTIPS • 2) Firebug, Firepath설치 (Firefox 확장 프로그램) Selenium은 id, class 등의 값으로 item(?) 인식 간혹 개발자들의 실수로 item 간의 id, class 구별 없이 개발! -> Selenium 이상 현상 발생 Firepath를 설치하여 각 item 들의 Xpath(절대 경로)를 넣어주면 이상현상 발생 방지 Ex) id가 email인 item이 많아서 selenium이 인식하기 어려울 때 driver.find_element_by_id("email").click() 대신 driver.find_element_by_xpath(".//*[@id='footerNav']/ul/li[2]/span").click()
  20. 20. SELENIUMTIPS • 3) IE, Chrome을 열 때 Selenium의 기본 브라우저는 Firefox. driver = webdriver.Firefox() 간단히 열 수 있다. 하지만 Ie, Chrome은 driver = webdriver.Ie() driver = webdriver.Chrome() 명령어를 실행할 경우 에러가 발생한다. IEDriverServer, chromedriver를 설치한 후 path 설정을 완료한 후에 driver = webdriver.Ie("C:IEDriverIEDriverServer.exe") driver = webdriver.Chrome('C:chromedriverchromedriver.exe') 의 명령어로 실행해야 한다.

×