본문 바로가기

개발이야기

[Jenkins] Jenkins에서 Selenium과 연동한 배치 수행시 주의점

회사 내부적으로 배치관리를 얼마전에 Jekins로 모두 변경했다.

다른 부분들보다 제일 큰 이슈는 일부 배치 프로그램들 중에 외부의 데이터를 크롤링하는데,

IE 브라우져로 접근해야만 데이터를 가져올수 있는 것들이 있어서

Selenium과 IEWebDriver를 활용해서 데이터를 크롤링하고 있다.

이것을 Jenkins로 변경하는데, 

windows server에 jekins를 설치해서 적용하는데, msi 설치파일로 설치를 했더니, 

IE 브라우져가 background로 떠서 제대로 실행되는지 확인이 어려웠다.

이부분은 log를 남겨서 jenkins에서 로그로 확인이 가능한데, 

또다른 문제는 click 과 같은 이벤트들이 제대로 수행되지 않고 중간에 에러가 나며 중단되는것이었다.

대부분의 에러는 timeout 에러  즉 버튼등을 클릭해서 다음 페이지로 넘어가야 하는데, 

클릭이 제대로 수행이 안되서 다음페이지로 넘어가지 않는 것이었다.

chrome/firefox 브라우져로 테스트 했을때는 이부분이 백그라운드로 수행되더라도 문제가없었는데..ㅠㅠ

브라우져가 32/64 bit의 차이일까 해서 IEWebdriver 버전을 바꾸어서 테스트해도 동일한 이슈..

결국 찾아낸 해결책은 java -jar jenkins.jar 를 이용하여 foreground로 수행해서 이부분을 해결함.

foreground로 수행하니 IE 브라우져 수행되는 것도 확인할 수 있어서 좋으나, 

서비스에서 관리를 못하는 부분이 아쉽기는 하나, 서비스에서 foreground로 batch를 수행하지 못하는 부분을 찾지 못해서 우선은 이와 같이 관리를 해야할듯..

나중에 여유있을때 이부분에 대해서 좀 더 고민을 해봐야할듯 하다.