Selenium Core
웹 상에서 테스트를 생성하고 수행한다.
설치
- selenium core 압축 파일에서 core/ 디렉토리 이하의 내용을 자신의 웹 애플리케이션 압축을 풀어 놓는다.
- http://자신의웹애플리케이션/selenium-core-dir/TestRunner.html 로 테스트를 수행한다.
- TestCase HTML 파일 : 테스트 하는 명령들을 가지고 있는 HTML 파일이다
- TestSuite HTML 파일 : TestCase HTML 파일들을 가리키고 있는 HTML 파일이다.
- Selenium Core는 웹 애플리케이션과 동일한 서버/동일 도메인에서만 실행 할 수 있다.
테스트를 해보려면 selenium-core 압축 푼 디렉토리에서 /core/TestRunner.html 을 브라우저에서 읽은뒤에 기본값으로 지정된 TestSuite를 실행해보면 된다. 기본값 TestSuite 파일은 Selenium에서 예제로 만든 Test Case들을 실행한다.
Test Suite HTML 생성
TestSuite 는 실제 테스트용 코드를 가지고 있는 Test Case HTML들을 HTML Table에 기입해 넣고, 여기 있는 모든 Test Case들을 한꺼번에 실행 할 수 있도록 하는 역할을 한다. 아래와 같은 형식으로 하면 된다.
- <table id="suiteTable" cellpadding="1" cellspacing="1" border="1">
<tbody>
<tr><td><b>제목 </b> </td> </tr>
<tr><td><a href="TestCase.html">TestCase 제목</a></td></tr>
...etc...
</tbody>
</table>
Test Case HTML 생성
Test Case는 실제 HTML을 테스트하는 코드를 작성한다.
이 또한 특정 형태의 Table에 명령과 옵션을 적는 방식이다. 명령에 옵션이 없거나 한개 일때는 해당 옵션 부분을 로 두면 된다.
- <table cellpadding="1" cellspacing="1" border="1">
<tbody>
<tr>
<td rowspan="1" colspan="3">테스트 케이스 제목<br>
</td>
</tr>
<tr>
<td>명령1</td>
<td>옵션1</td>
<td>옵션2</td>
</tr>
<tr>
<td>명령2</td>
<td>옵션1</td>
<td>옵션2</td>
</tr>
.... 계속되는 명령
</tbody>
</table>
Test Case 는 Selenium IDE를 사용하면 쉽게 만들수 있다.
명령과 옵션은 Selenium Reference에서 모두 볼 수 있다.
명령에는 행위 명령과 assert 명령이 있다.
- 행위 명령에는 웹 브라우저에서 일어나는 클릭이나 글쓰기 등의 작업을 지정하고,
- assert는 그 결과 변경된 HTML의 DOM 상태가 원하는 대로 됐는지를 확인한다.
MultiWindow 테스트
Selenium은 기본적으로 프레임안에서 테스트 케이스를 실행하는데, 테스트 Suite 로딩 폼에서 "AUT in separate window"에 체크를 해서 로딩하면, 독립적인 창에서 테스트를 수행한다.
가끔, 프레임의 TOP을 건드리는 웹 애플리케이션이 있을 경우에 해당 애플리케이션이 Selenium Core 화면을 깨뜨리기 때문에 이 옵션을 사용하면 된다.
FireFox에서는 readState 명령이 잘 듣지 않아서 작동하지 않을 수 있으므로 Selenium Core에 있는 readyState.xpi 를 설치한 뒤에 실행해야 한단.
DOM 지정하기
명령의 옵션으로 DOM 객체를 지정하는는 경우에는 여기에는 여러가지 방식이 있다. 형식은 위치지정자타입=값
id값정, name 값 지정, xpath로 지정 등등..
- identifier=id : @id 값이나 id 값이 정되지 않을 경우에는 첫번째 발견되는 @name 값이다. 위치지정자를 지정하지 않을 경우에 일반적으로는 자동으로 identifier로 지정된다.
- name=name : @name 값
- dom=JavaScript표현식 위치지정자가 없을 경우에도 document. 으로 시작하면 dom 으로 가정한다.
- xpath=//XPATH/Expression위치지정자가 없을 경우에도 //로 시작하면 xpath로 가정한다.
- link=<a>태그의 텍스트문자열
- css=cssSelector
일반적으로 지정자를 지정하지 않으면 identifier로 간주해서 DOM 객체를 찾는다.
XPATH를 사용할 경우에는 FireFox의 XPath Check Extension을 사용하면 쉽게 XPath를 찾을 수 있다.