웹 어플리케이션을 개발 할 때, 우리는 반복적인 일들을 얼마나 많이 할까?
수백 수천번의 로그인,
특정 프로세스를 테스트하기 위해 마우스를 이리저리 움직이며 클릭하는 수많은 이벤트들.
디버깅을 위한 수많은 반복적인 절차들.
검증을 위한 반복적인 테스트들.
Watij - Web Application Testing In Java ("Wattage" 라고 발음한다.)
이런 반복적인 작업들의 자동화를 지원해주는 자바 기반의 웹 자동화 테스트 툴이다.
(자바기반의 Watij 말고도, 그 원조격인 Watir -Ruby기반- 도 있다.)
실제 웹브라우져를 컨트롤 하는 테스트 코드를 보자.
ie.start("http://www.google.com");
ie.textField(name,"q").set("Watij");
ie.button("Google Search").click();
익스플로러를 실행하고 구글에 접속해서 검색창에 Watij를 입력하고 검색 버튼을 클릭하는 코드다.
(구구절절 말보다 코드가 훨씬 간단하다 -_ -;)
이렇게 간단한 테스트 코드 작성만으로,
해당 테스트 시나리오대로 실제 웹브라우져 상태에서 모니터링 및 테스트를 할 수 있다.
물론 필요하다면 받아오는 데이터들의 유효성 검사도 가능하다.
단위 테스트를 작성하고 UI 테스트까지 자동화한다면,
통합 테스트의 간편화는 물론 오류 없는 탄탄한 소프트웨어를 개발하는데
좀 더 도움이 되지 않을까 싶다.
무엇보다 반가운 건,
항상 UI단의 테스트를 위해 수없이 반복하던 작업들을 클릭 한번으로 자동화할 수 있다는 것 아닐까?
느긋하게 커피 한잔 마시면서 돌아가는 테스트를 눈으로 감상만 해주시면 되겠다.
웹테스팅툴의 엉뚱한 사용법, 이렇게 쓰라는건 아닐텐데 ?
얼마전 신규 가입한 핸드폰 번호변경을 위해 S모사의 TWor**에 들어갔다.
1. TWor** 로그인
2. 번호찾기 페이지로 이동
3. 희망번호 뒷자리 입력
4. 번호찾기 버튼 클릭
5. 번호 조회
6. 좋은 번호 or 골드번호 (7777, 0007 등) Get~
결국 골드 번호를 찾기 위해선 3~5번을 무한반복한 후에, 6번을 취해야한다.
이런 단순 노가다 작업을 보면 왠지 자동화하고 싶은 맘이 드는건 직업병이 아닌가 싶다-_-;
소켓 연결해서 로그인 및 인증처리 하고,
해당 URL의 HTML을 가져와서 해당 번호검색 결과부분을 파싱해서,
골드번호 여부를 가려내도 되겠지만,
Watij가 있는데 괜히 쓸데 없는데 힘쓰진 말자;
1. IE 객체로 웹브라우져 실행
2. 로그인 URL로 이동
3. 로그인 텍스트박스에 ID, PWD 입력
4. 로그인 버튼 클릭
5. 번호찾기 페이지로 이동
6. 번호검색 텍스트박스에 희망번호 입력
7. 조회 버튼 클릭
자 여기까지 소스코드로도 7줄 되시겠다.
더불어 6~7번을 간단히 골드번호 목록 및 패턴으로 for문 처리해주면 되겠다.
검색된 HTML 페이지의 번호 부분을 파싱해서
(말이 파싱이지, Watij API에서 제공하는 Frame.div(id, "chnum").html(); 한줄이면 OK)
골드번호가 검색됐는지 확인 한 후, 파일로 쓰던지 콘솔에 찍어주던지 하면 되겠다.
단 몇 줄의 코드로 무한반복 노가다를 자동화 할 수 있다.
물론 이렇게 쓰라고 만든 웹테스팅툴은 아니겠지만-_-y~