|
Selenium과 Continuous Integration 통합을 통한 자동화
2008년 Selenium 기반으로 웹 UI에 대한 테스트 코드를 만들고, UI에 대한 자동화된 테스트 환경을 만들기 위하여 노력했던 기억이 난다. 그런데 2008년에 마지막으로 진행하고 싶었던 부분이 Selenium과 지속적 통합툴(Continuous Integration)과의 통합 작업이었다. 일반적으로 지속적 통합툴은 모니터가 없는 개발 서버이며, 리눅스 환경에서 동작하기 때문에 브라우저를 통해서 테스트를 진행하는 Selenium의 경우에는 지속적 통합툴을 활용하기 힘들었다. 시간적인 여력 때문에 2008년에는 지속적 통합툴까지 연동하지는 않고 필요할 때 로컬 컴퓨터에서 테스트하는 방식으로 진행했다. 한 동안 잊고 지내다가 어제 갑자기 이 숙제에 대한 해결책을 찾고 싶어졌다. 그래서 오랜만에 "Selenium Continuous Integration'을 검색어로 온라인 문서를 찾아봤다. 그랬더니 정말 내가 원하는 해결책을 제시하는 문서들이 많이 보였다. 그렇게 해서 이틀 동안 총 4시간 정도의 시간을 투자해서 성공했다. 이 작업을 위하여 참고한 문서는 다음과 같다. 위 문서를 통하여 리눅스, 유닉스 환경에서 Selenium을 테스트하기 위해서는 Xvfb (X Windows Virtual Frame Buffer)을 사용하면 된다는 것을 알게 되었고, 현재 Ant 버전과 Maven 버전으로 개발이 되고 있다는 것을 확인할 수 있었다. 나는 Maven 플러그인을 활용해서 진행했다. Headless X11 with Xvfb 문서에 Maven 설정에 대해서는 상세하게 설명이 되어 있어서 쉽게 세팅할 수 있었다. 문제는 Xvfb를 설치하고 설정하는 과정에서였다. 생각보다 쉽게 성공할 수 있었는데 처음에는 로컬에 설치되어 있는 Cygwin에서 Xvfb를 설치하고 테스트를 했는데 자꾸 에러가 발생하고 해결책을 찾는데 많은 시간을 보냈다. 도저희 해결책을 찾을 수가 없어서 Cygwin는 포기하고 자바지기 개발 서버에 다시 세팅하기 시작했다. 그랬더니 Xvfb 세팅이 너무 쉽게 끝나 버렸다. 어제 회식이 있었던 관계로 "설마 그냥 되는 건 아니겠지?"라는 마음으로 회식하러 갔는데 마무리를 하지 못해서 찜찜한 마음이었다. 아침에 출근하자마자 다시 테스트를 위한 빌드 환경을 만들고 테스트를 했는데 바로 성공해 버렸다. Maven을 빌드하면서 Xvfb가 실행되고, Selenium Server Start, Firfox Launch, Test 과정이 흘러가는 모습을 보면서 어찌나 기분이 좋던지.. 이제 마지막 남은 한 가지 작업은 소스 코드를 Commit하는 순간 빌드 실행, 컨테이너에 소스 배포를 하면 Selenium Test가 자동으로 실행되도록 하는 부분이다. 이 부분까지 완성된다면 단위 테스트 뿐만 아니라 웹 UI를 통한 통합 테스트까지 완전하게 자동화할 수 있을 것으로 생각한다.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|