블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT 2008.11.18 11:16

[ Selenium ] 웹서비스 테스트 자동화와는 별 상관없는 작업을 위해...


  Selenium 은 이미 2년전 쯤에 한번 크게 주목받은 웹 테스트 자동화 툴입니다. 요즘도 몇몇 군데에서는 사용하고  있는 곳도 있는데... 제 주위의 개발자들 사이에서는 "이름만 들어봤다" 정도더군요.

** 추기
** 야후에서는 Selenium 으로 테스트 많이 한다더군요.(salelinux 님 曰)
** 사실 Google Video 에서 Selenium 검색해도 많은 강의가 나와있기도 합니다.

  사실 이번에 이 Selenium 을 사용하게 된 계기는 웹 테스트 자동화 라는 타이틀과는 전혀 별개의 동작을 위해서입니다. Test 가 목적이 아니라, 실제로 작업을 수행하는 Agent 의 기능에 주목을 한 것이죠.

  그럴려면 WWW::Mechanize 같은 것으로도 충분하지 않느냐? 라고 하시기도 하실테지만... WWW::Mechanize 같은 경우에는 JavaScript 동작에서는 어떻게 할 수 없다는 단점이 있어서 입니다.

  아무튼 오늘은 간단하게 Selenium IDE 만을 사용해보았습니다. Selenium IDE 란, Firefox 의 확장 플러그인으로 제공되며, 위에서 언급한 웹 테스트를 위한 툴입니다.

- http://release.openqa.org/selenium-ide/1.0-beta-2/selenium-ide-1.0-beta-2.xpi

  위의 URL 에서 확장 플러그인을 인스톨하고, FF 를 재기동합니다.(IE도 있지만, 제 환경 상 FF 기준으로 가겠습니다.)

  그리고 [도구] - [ Selenium IDE ] 를 실행하면 아래와 같은 화면이 나옵니다.

  뭐, 자세한 튜토리얼은...

  - http://wiki.seleniumhq.org/download/attachments/400/Selenium+IDE.swf?version=1

  이것을 보고 대강 이해했습니다. 작업을 녹화해서 간편하게 커맨드와 타입/값을 지정하고, 녹화한 작업을 다시한번 수행할 수 있습니다. 이렇게 만든 작업은 HTML 로 Export 가 가능하구요(HTML 이 Selenium 포맷인 듯...).
일단 처음 사용해보고는 이것저것 가능할 것 같다라고 생각하고 있습니다.

  일단은 그래서 Selenium IDE 로 "사내 스케쥴 관리" 서비스에서 작동 테스트를 해봤습니다. 위의 값들은 레코딩하면서 얻어낸 값이구요. 레코딩이 끝나고 재생을 시키면 레코딩한 순서대로 작업이 진행되고, 어떤 커맨드들로 그 값이 존재하느냐 라는 등등의 테스트 판정을 할 수 있었습니다. 작업분기는 어떻게 처리되는 지 모르겠군요. 안되는 듯 합니다만...

  ** 추기
  ** Selenium IDE 가 화면의 전환을 기다려주지 않고 혼자서 움직이면서 Element 를 못 찾겠느니 하는 얘기를 할 때가 있습니다. 그럴때는 command 를 click => clickAndwait 로 바꿔서 조금씩 기다려주면 되더군요. 참고하시기 바랍니다.

  Selenium-RC 라는 것을 사용해서 원격에서 클라이언트를 통해서 컨트롤이 가능하다고도 하네요.
  (.NET, JAVA, PHP, Perl 등을 지원한다고 하네요. 전 Perl 이 중요하니... 그걸로 되었다고 생각...;)
  이런 언어들을 사용해서 보다 자세한 작업 분기 및 여러가지 활용방안이 생겨나겠죠.

  아무튼 웹서비스 테스트와는 전혀 관계없이, 순전히 Agent 로 사용하는 목적은 복수의 웹서비스에서의 주문관련 처리를 한 곳에서 관리하기 위해 Agent로 사용하는 것입니다. 얼마만큼 생각대로 움직여 줄지, 혹은 제가 움직일 수 있을 지 아직은 모르겠지만...  뭐 어떻게든 되겠죠 뭐.
신고
TOTAL 473,930 TODAY 11

티스토리 툴바