Geb과 Spock을 사용한 테스트 작성

브라우저를 사용한 일종의 인수 테스트(Acceptance Test)를 작성할 때 꽤 유용해 보인다. 기존에 많이 알려져있던 Selenium 2.0에 포함된 WebDriver의 개념을 그대로 이어받지만 API 사용성을 훨씬 좋게 개선한 것이 Geb(젭)이다.

젭을 스팍과 같이 사용해서 요비의 이슈 본문에서 @를 사용한 사용자 아이디 자동완성 기능을 이런식으로 테스트 할 수 있다.

한때 디아블로 골드 앵벌이 매크로를 만들던 시절이 떠오르는건 그냥 기분탓이겠지…

geb이 괜찮아 보이는군.

사용자 입장에서의 시나리오별 테스트를 만들어 보려고 이것 저것 찾아봤더니 대안이 많지가 않네.

네이버에서 만든 기타(Guitar)라는거에 많은 기대를 했지만 윈도우 기반 플랫폼(AutoIt) 위에 얹어 만든거라서 윈도우에서만 동작한다. 내 개발 환경이 OSX이라서 그건 좀 곤란하다. 게다가 화면 구성 요소를 일일히 스샷 찍어서 특정 텍스트랑 맵핑 시키던데.. 신기한 기술이긴 하지만 손이 너무 많이 갈거 같다. 개발자 입장에선 css selection이 제일 편하지 않을라나.

결국엔 그냥 셀레니움 뿐인가 하고 다시 들여다 봤으나.. 2.0 이후로 뭐 크게 나아진게 없어보이고 예전에 손댔을 때 지져분하고 어려웠던 코딩이 떠올라서 손대기 싫어지고… 문제는 셀레늄 플러그인이 파폭 플러그인 뿐이라는건데 요비는 IE도 테스트 해야하고 가능한 여러 브라우저 여러 OS에서 확인이 필요하다. 셀레늄 플러그인 말고 Webdriver API로 직접 코딩하고 그 코드를 여러 OS에서 돌리면 다양한 환경에서의 테스트가 가능하긴 하지만 그 API가 그렇게 깔끔하지도 않고 쉽지도 않았다. Page Object Pattern이라는거부터 해서 공부할것도 제법된다. 어느세월에… @_@ 

뭐 다른 대안이 있겠지 싶어서 browser automation으로 검색(당연히 구글)했을때 셀레늄 다음으로 보이는 geb. 이건 webdriver(seleniun 2.0의 일부) 기반으로 만든 그루비 라이브러리인데 그나마 이게 좀 쓸만해 보인다. 웹드라이버 기반이니까 여러 브라우저 테스트를 하는것도 가능할테고 무엇보다 코드가 깔끔해 보인다. 게다가 문서까지 풍부하게 해놨네.. 대체 이렇게 열과성을 다해서 이런걸 공짜로 뿌리는 애들은 왜 그러는지 궁금하지만 내 입장에서는 땡큐지.

http://www.gebish.org/manual/current/

geb으로 요비 테스트나 만들어 보자. 후딱 만들어보고 안드로이도도 좀 보고 자바8도 봐야지. 룰루 랄라~

내가 와우하는 맛

파티가 해딩하는 경우에 문제점을 찾아 보강하고 재도전해는 것. 그렇게 반복하다가 결국에 성공하는 것. 그맛에 하는 듯.

나머지 자잘한 템랩 높이는거, 골드 모으기, 업적, 탱(야탱), 딜(파흑), 힐(수사) 등 투기장(pvp)빼고 다 해보고 있지만 역시나 트라이 하다가 성공할때가 제일 재밌는것 같다.

우리네 인생도 그러길 바란다.

수많은 실패를 두려워 말고 실패했을 때 문제를 보강해 재도전할 수 있기를 바란다.

그러다 언젠간 보라둥이로 변신한 가로쉬를 킬하는 순간처럼 킬할 수 있기를 바란다.

i2068562303

블로그 리뉴얼 중

1. 블로그 다시 살림.

2. 책 관련 링크 복구.

3. 모든 워드 프레스 플러그인 비활성화.

4. Guest 페이지 삭제.

5. 페북 코멘트 플러그인 활성화

6. Akismet 플러그인 활성화 (스팸 댓글 방지)

7. 저서와 번역서 이미지 수정

8. ssh sftp updater 플러그인 활성화

9. gist 플러그인 삭제

10. gist shorcode 플러그인 추가 및 활성화