셀레니움(Selenium)이란?
웹 어플리케이션 테스트를 위한 포터블 프레임워크. 웹 테스트를 간단히하기 위한 도구
셀레니움 특징
셀레니움은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공한다.
C#, Groovy, Java, Perl, Python, Ruby 등 많은 언어를 지원하며 테스트 도메인 특화 언어(Seleness)를 제공한다.
셀레니움의 효용성
우리가 실제 운용을 위해 만든 서비스 페이지에서의 시나리오가 회원가입을 하고 게시글을 작성하고 댓글을 작성해보고 등이라고 가정을 해보자. 해당 시나리오를 구현하기 위해 우리는 수많은(수십회) 정도의 클릭이 필요할 수 있다. 이런 시나리오에 대해서 셀레니움은 웹 드라이버를 통해 브라우저 동작을 컨트롤 할 수 있게 해주는 것이다.
셀레니움 사용법
Maven 추가(http://www.mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java)
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.3.0</version>
</dependency>
WebDriver 다운로드
자신의 버전에 맞는 드라이버 다운로드('chrome://version/')을 통해 버전 확인
http://chromedriver.chromium.org/downloads 페이지에서 드라이버 다운로드
소스코드 실행
@RunWith(SpringRunner.class)
@SpringBootTest
public class HomePageTest {
private WebDriver driver;
@Before
public void setUp(){
System.setProperty("webdriver.chrome.driver", "src/test/driver/chromedriver"); // 다운받은 ChromeDriver 위치를 넣어줍니다.
driver = new ChromeDriver(); // Driver 생성
}
@After
public void tearDown(){
driver.quit(); // Driver 종료
}
@Test
public void test_title(){ //타이틀 확인하는 테스트 코드
driver.get("Test URL입력"); // URL로 접속하기
WebElement coolestWidgetEvah = driver.findElement(By.id("coolestWidgetEvah")); //id로 Element 가져오기
WebElement cheese = driver.findElements(By.className("cheese")); //클래스이름으로 Element 가져오기
WebElement iframe = driver.findElement(By.tagName("iframe")); //태그이름으로 Element 가져오기
Assert.assertThat(driver.getTitle(),is("URL의 Title")); // Title 확인 작업
}
}
'Web Programming > Web PR' 카테고리의 다른 글
Git 메모장 (0) | 2021.01.29 |
---|---|
젠킨스 Jenkins 부분배포 익명클래스 반영 문제 (0) | 2020.10.15 |
사회대 스터디룸 시스템 트러블슈팅 (0) | 2020.08.29 |
Ngrok 로컬 네트워크 연결 (2) | 2020.07.03 |
Django EC2 window server 배포 (0) | 2020.07.03 |