ui test 자동화하기 - selenium + jenkins
TRANSCRIPT
UI TEST 자동화- SELENIUM + JENKINS
연창학
프로젝트진행중 (개발자시점)
• 수정 -> 수정 -> 수정하다보면….
기획QA
로그인이안되요.
로그인이안되요.
로그인이안되요.
로그인이안되요.
로그인이안되요.
로그인이안되요.
프로젝트진행중 (개발자시점)
화. 난. 다.
프로젝트진행중 (QA 시점)
QA
로그인이됐었는데…
로그인이됐었는데…
로그인이됐었는데…
로그인이됐었는데…
로그인이됐었는데…
로그인이됐었는데…
프로젝트진행중 (Q/A 시점)
귀. 찮. 다.
뫼비우스의띠
방법이없을까?
해결책 – UI TEST 자동화
• 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 등의이름으
로작성해야한다.
간단한시연
• 데모라.. 가끔에러가..
UI TEST 자동화까진 OK
• 그런데하루종일계속돌려야돼?
NO!
JENKINS와연동
• 테스트서버빌드프로젝트의하위프로젝트로만들기
• 테스트서버가빌드되면변화를인식한뒤자동적으로테스트를진행한다!
TEST 결과
• JENKINS CONSOLE 창에서결과확인가능
(필요하다면슬랙공지도가능)
전체프로세스도식도
Git
(Frontend)
Git
(Selenium)
Jenkins 서비스
개발자
개발자
개발자
QA
1. 개발 & Push
2. 변화감지
3. 코드빌드
4. 빌드후전송
5. 빌드완료감지
6. 코드요청
7. 코드빌드8. 테스트실행
SELENIUM TIPS
• 1) Selenium IDE 설치 (Firefox 확장프로그램)
SELENIUM TIPS
• 1) Selenium IDE 설치 (Firefox 확장프로그램)
각종언어로변환가능
* 오류는많음… 적절한수정필요
SELENIUM TIPS
• 2) Firebug, Firepath설치 (Firefox 확장프로그램)
SELENIUM TIPS
• 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()
SELENIUM TIPS
• 3) IE, Chrome을열때
Selenium의기본브라우저는 Firefox.
driver = webdriver.Firefox()
간단히열수있다.
하지만 Ie, Chrome은
driver = webdriver.Ie()
driver = webdriver.Chrome() 명령어를실행할경우에러가발생한다.
IEDriverServer, chromedriver를설치한후 path 설정을완료한후에
driver = webdriver.Ie("C:\IEDriver\IEDriverServer.exe")
driver = webdriver.Chrome('C:\chromedriver\chromedriver.exe')
의명령어로실행해야한다.