본문 바로가기
[개발] Info/용어

Selenium

by Devsong26 2018. 1. 28.

Selenium이란? 

UI 자동화 테스트 framework이며, STS 등의 프로그램 안에서 사용되기 때문에 프로그램 종속적인 특징을 가지고 있다. 

 

 

특징

- 프로그램 종속적이다. 

- 자바스크립트의 태그 접근 문법(documentById, ...)을 알고 있다면 사용하기 쉽다.

- 다양한 브라우저에서 테스트가 가능하며 테스트를 진행할 때는 WebDriver.exe 파일이 필요하다. 

- Firefox의 확장 프로그램인 SeleniumIDE의 녹화기능을 사용하면 자동으로 테스트코드 산출물을 얻을 수 있다. 

 

 

SeleniumIDE 사용하는 방법

Firefox의 확장 프로그램이며, 최신 업데이트 파일의 경우 54 버전 대여야 한다.

 

단, Firefox를 설치한 후에 업데이트 설정을 수동으로 변경해야 한다. 

변경하는 방법 : 설정 -> 고급 -> "업데이트 확인 안함." 체크

 

다운링크 : https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

 

다운을 받은 후 SeleniumIDE를 실행하면 아래와 같은 화면이 나온다.

 

 

실행하면 화면에 화살표로 표시된 녹화버튼이 자동활성화된 상태로 열린다. 

그 상태로 Firefox에서 테스트하고자 하는 사이트에 들어가서 클릭, 로그인 등등의 절차를 진행하게 되면 Table 영역에 코드가 추가되는 것을 확인할 수 있다. 

 

(아래는 네이버로 접속후 검색창에 C언어라고 검색한 절차를 보여준다.)

 

 

자동 생성된 Command 라인들을 Spring에서 사용할 수 있도록 Java 파일로 Export할 수 있다. 여러가지 방식으로 Export할 수 있지만, 나는 Maven에서 JUnit4를 이용하기 때문에 아래와 같이 Export했다.

 

 

export한 파일의 내용은 직접 확인하시길 ^^

 

 

Maven에서 Selenium 사용하기

pom.xml에서 아래와 같이 <dependency> 태그를 추가한다.

 

 

Selenium은 별도의 설정을 할 필요는 없고, main()메소드에만 테스트 코드를 입력한 후 실행하면 된다. 아래는 예시 코드이다.

 

 

메소드 혹은 클래스가 궁금하면 이 링크를 클릭

https://seleniumhq.github.io/selenium/docs/api/java/

 

먼저 System.setProperty()를 호출하여 driver.exe를 셋팅해줘야 한다. 

두 가지 방법이 있는데, 프로젝트 폴더 안에 driver.exe가 위치하는 경우와 밖에 위치하는 경우가 있다. 

주석으로 돼있는 부분이 프로젝트 폴더 밖에 driver.exe가 위치할 경우 사용하는 방식이고, 주석 처리 안됀 부분이 프로젝트 폴더 안에 driver.exe가 위치하는 경우이다. 

 

프로젝트 폴더 안에 driver.exe를 위치시킬 때 나처럼 프로젝트 우클릭 후 폴더(driver)를 만든 후 exe파일을 넣어도 된다.

 

그 후 manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 메소드를 호출하여 driver가 element를 즉시 나타나지 않고 딜레이되는 경우 30초 정도 기다린다는 설정을 해주는 메소드이며, 안써도 되긴 된다.

 

get()메소드를 통해 url 주소에 접속한 후 

findElement로 요소를 찾고 클릭한다. 

 

실행시키면 자동으로 웹 브라우저가 나오면서 명령이 실행된다.

'[개발] Info > 용어' 카테고리의 다른 글

유니코드(Unicode)  (0) 2022.03.24
[Network] HTTP 통신  (0) 2021.05.31
Locale  (0) 2018.03.25
Character Set과 인코딩  (0) 2018.02.05
Appium  (0) 2018.01.28