Selenium WebDriver에 대해 설명 드리고, Ranorex와 같이 활용하여 Web Application을 강력하게 테스팅하는 방법을 소개 드리고자 합니다.
Selenium WebDriver는 무엇인가?
Selenium WebDriver는 웹 어플리케이션을 테스팅할 때 사용하실 수 있는 무료 도구이며, API를 제공하는 오픈소스 프레임워크입니다.
이상적으로는 웹 브라우저들은 같은 방법으로 웹 어플리케이션을 출력하게 되어있습니다. 그러나 각각의 브라우저들은 고유의 렌더링 엔진이 있고 HTML을 약간씩 다르게 다룹니다. 그것은 웹 어플리케이션을 동시에 여러 장비와 브라우저에서 동작하는지 테스트해야 하는 이유입니다.
Selenium API를 사용한 자동화된 테스트들은 WebDriver가 있는 크롬, 사파리, IE, Edge, 파이어폭스와 같은 모든 브라우저에서 실행될 수 있습니다. Selenium WebDriver는 윈도우, 리눅스, 맥에서 동작 가능합니다. Selenium WebDriver애서 작성된 테스트들은 Java, C#, Ruby, 파이썬, 자바스크립트와 같은 언어를 지원합니다. 이러한 언어들은 Selenium API를 사용하여 Selenium WebDriver와 통신합니다.
<그림 1> Selenium WebDriver 워크 플로우
Selenium과 같이 동작하는 언어는 반드시 Selenium JSON Wire 프로토콜이나 W3C WebDriver 프로토콜이 이해하는 라이브러리를 포함해야 합니다.
어떤 브라우저들이 Selenium WebDriver로 테스트 될 수 있을까?
Selenium WebDriver는 유명한 모든 브라우저에서 테스트를 자동화할 수 있습니다. 각 브라우저는 Selenium 테스트를 위한 고유한 통신 드라이버를 필요로 합니다.
Apple Safari
사파리 10은 WebDriver API를 지원합니다. 따라서 SeleniumHQ 사이트에서 Driver를 다운로드 할 필요가 없습니다. 사파리 Driver는 /usr/bin/safaridriver의 실행파일에서 실행될 수 있습니다. 대부분의 Selenium 라이브러리는 다른 추가적인 설정없이 사파리 Driver를 실행시킵니다.
Google Chrome
사파리와는 다르게 Google Chrome은 ChromeDriver를 위한 별도의 실행파일이 필요합니다. 이 실행파일은 Chromium 팀에 의해 유지되고 구글에서 다운로드 가능합니다.
Internet Explorer
MS가 Edge를 소개했지만, 아직까지 많은 사용자들은 IE를 사용하고 있습니다. Selenium project는 IE용 Driver를 제공하고 있습니다.
Microsoft Edge
Microsoft Edge WebDriver도 Selenium을 위한 WebDriver 사용 가능합니다.
Mozilla Firefox
Firefox versions 47.0.1이상을 테스팅하기 위해서는 Mozilla GeckoDriver가 필요합니다. “Gecko”는 Firefox 뿐 아니라 Mozilla app의 웹 브라우저 렌더링 엔진의 이름입니다.
Selenium WebDriver의 장단점
장점
- 무료, 오픈 소스
- 웹 개발과 웹 테스팅 산업에서 leader로 홍보 중
- W3C WebDriver 표준 지원
- Selenium Grids를 사용하여 테스트 병렬 실행
단점
- 설치하고 구성하기에 복잡
- Capture-and-Replay 기능이 없기 때문에 테스트를 만들 때 프로그래밍 지식이 필요
- Fireflox 55 이후의 버전을 지원하지 않음
- Report 기능이 취약
Selenium WebDriver와 Ranorex Studio를 함께 사용해야 하는 이유는?
Selenium WebDriver는 Ranorex Core API의 한 부분으로 들어있습니다. 그래서 Ranorex Studio 안에서 웹어플리케이션 테스트를 Ranorex Recorder또는 C#이나 VB.NET을 사용하여 자동화할 수 있습니다.
Ranorex는 Selenium WebDriver에서 테스트가 실행되도록 지원합니다. 이를 위해 필요한 것은 WebDriver 서버를 Ranorex 테스트의 endpoint로 설정하고, Ranorex Capabilities Configurator를 사용하여 endpoint의 기능을 JSON 형식으로 구성하는 것뿐입니다. 로컬 혹은 원격의 endpoint를 설정할 수 있고, SauceLabs과 같은 클라우드를 선택할 수도 있습니다.
Ranorex Studio에서 Selenium WebDriver를 사용하는 것은 많은 장점이 있습니다. Ranorex는 브라우저와 통신하는데 표준 Webdriver 프로토콜을 사용합니다. 특정 테스트를 실행하기 위해 Selenium API가 JSON 데이터를 Webdriver를 통해서 보내는 동안, Ranorex는 빠르고 안정적인 성능을 위해 Ranorex만의 자동화 기술과 RanoreXPath를 사용합니다. Ranorex Spy는 웹 애플리케이션 요소를 고유하게 식별하기 쉽게 하며, 이 요소는 Ranorex 저장소에 저장되고 다른 테스터와 공유할 수 있습니다. Ranorex Studio는 Report도 자동으로 출력됩니다.
RanorexXPath 및 Spy 관련된 내용이 더 궁금하시다면 블로그에 작성된 ‘[Ranorex Studio 기능 소개] Spy & RanoreXPath’ 글 참조하실 수 있습니다.
<그림 2> Ranorex Studio에서 여러 개의 Selenium WebDriver endpoint 중 선택
Selenium WebDriver를 시작하는 방법
Selenium WebDriver는 Ranorex core에 기본으로 존재합니다.
Ranorex Studio에서는 Selenium WebDriver가 할 수 있는 모든 기능은 사용하실 수 있습니다.
그 뿐만 아니라, Ranorex Studio의 고유한 기능인 Timeout 설정, 코드없이 Record&Play, IDE, Reporting 기능을 사용할 수 있습니다.
Ranorex Studio는 병렬로 Selenium Grid나 Ranorex 고유 프로그램을 통하여 테스트를 실행시킬 수 있습니다.
'웹 크롤링' 카테고리의 다른 글
BeautifulSoup 모듈, find와 select의 차이점 (0) | 2021.07.16 |
---|---|
BeautifulSoup 간단한 소개 (0) | 2021.07.16 |
파싱(parsing)이란? (0) | 2021.07.10 |
댓글