자동화테스트/Selenium2020. 2. 24. 08:00

셀레니움 웹드라이버(Selenium WebDriver)와 RC와의 차이점

 

WebDriver 란 무엇입니까?

WebDriver는 Selenium IDE와 달리 Firefox, Chrome뿐만 아니라 다른 브라우저에서 테스트를 실행할 수 있는 웹 자동화 프레임 워크입니다.

WebDriver를 사용하면 테스트 스크립트를 작성할 때 프로그래밍 언어 사용할 수 있습니다 (Selenium IDE에서는 자바스크립트 가능).

이제 if-then-else 또는 switch-case와 같은 조건부 작업을 사용할 수 있습니다 . 반복하는 동안 루핑을 수행 할 수도 있습니다.

 

WebDriver는 다음 프로그래밍 언어를 지원합니다

  • 자바
  • .Net
  • PHP
  • 파이썬
  • 루비

위 의 언어 모두를 알 필요가 없습니다. 하나만 알고 있으면됩니다. 

셀레늄 RC와 웹 드라이버의 차이점

2006 년 WebDriver가 등장하기 전에 Selenium Remote Control이라는 또 다른 자동화 도구가 있었습니다 . WebDriver와 Selenium RC에는 다음과 같은 기능이 있습니다.

  • 둘 다 테스트 스크립트를 디자인 할 때 프로그래밍 언어 사용 할 수 있습니다 .
  • 둘 다 다른 브라우저에서 테스트 실행할 수 있습니다 .

어떻게 다릅니 까? 알아 볼까요?

1. 아키텍처(Architecture)

WebDriver의 아키텍처는 Selenium RC보다 간단 합니다.

  • OS 수준에서 브라우저를 제어합니다
  • 프로그래밍 언어의 IDE (셀레늄 명령 포함)와 브라우저 만 있으면됩니다.

 

Selenium RC의 아키텍처는 훨씬 더 복잡합니다.

  • 테스트를 시작하기 전에 먼저 Selenium Remote Control (RC) 서버라는 별도의 응용 프로그램을 실행해야합니다.
  • Selenium RC 서버 는 Selenium 명령과 브라우저 사이의 "중간자"역할을 합니다
  • 테스트를 시작하면 Selenium RC 서버는 Selenium Core라는 Javascript 프로그램을 브라우저에 "주입" 합니다.
  • 일단 주입되면 Selenium Core는 테스트 프로그램에서 RC 서버에 의해 릴레이 된 명령을 수신하기 시작합니다.
  • 지침을 받으면 Selenium Core가 해당 지침 을 Javascript 명령으로 실행합니다.
  • 브라우저는 Selenium Core의 지침을 준수하고 RC 서버에 응답을 릴레이합니다.
  • RC 서버가 브라우저의 응답을 수신 한 후 결과를 표시합니다.
  • RC 서버는 테스트 스크립트에서 다음 명령을 가져 와서 전체주기를 반복합니다.

 

2. 속도

 

WebDriver는 브라우저와 직접 대화하기 때문에 브라우저 자체 엔진을 사용하여이를 제어하기 때문에 Selenium RC보다 빠릅니다 .

 

Selenium RC는 Selenium Core라는 Javascript 프로그램을 사용하므로 속도가 느립니다 . Selenium Core는 사용자가 아닌 브라우저를 직접 제어하는 ​​코어입니다.

3. 실제 상호 작용

WebDriver는보다 현실적인 방식으로 페이지 요소와 상호 작용합니다. 예를 들어, 테스트중인 페이지에 비활성화 된 텍스트 상자가있는 경우 WebDriver는 실제 사람이 할 수 없는 것처럼 실제로 값을 입력 할 수 없습니다.

 

Selenium Core는 다른 JavaScript 코드 와 마찬가지로 비활성화 된 요소에 액세스 할 수 있습니다. 과거에 Selenium 테스터는 Selenium Core가 테스트에서 비활성화 된 텍스트 상자에 값을 입력 할 수 있다고 불평했습니다. 

4. API

Selenium RC의 API는 더 성숙하지만 중복성과 종종 혼란스러운 명령을 포함합니다 . 예를 들어, 대부분의 경우 테스터는 typeKey/typeKeys 또는 click/mouseDown/mouseDownAt 중 어느 것을 사용할지 혼동합니다. 더 나쁜 것은 서로 다른 브라우저가이 명령들을 각각 다른 방식으로 해석 한다는 것입니다 !

WebDriver의 API는 Selenium RC보다 간단 합니다. 중복되고 혼란스러운 명령은 포함되지 않습니다.

5. 브라우저 지원

 

WebDriver는 헤드리스 HtmlUnit 브라우저를 지원할 수 있습니다

HtmlUnit은 보이지 않는 브라우저이기 때문에 "headless"라고합니다. GUI가 없습니다.

페이지 요소가 로드되기를 기다리는 데 시간이 걸리지 않기 때문에 매우 빠른 브라우저입니다. 테스트 실행주기가 빨라집니다.

사용자에게는 보이지 않기 때문에 자동화 된 수단을 통해서만 제어 할 수 있습니다.

Selenium RC는 헤드리스 HtmlUnit 브라우저를 지원할 수 없습니다. 작동하려면 실제적이고 눈에 띄는 브라우저가 필요합니다.

WebDriver의 한계

WebDriver가 새 브라우저를 쉽게 지원할 수 없음

WebDriver는 OS 수준에서 작동합니다. 또한 다른 브라우저는 다른 방식으로 OS와 통신합니다. 새 브라우저가 나오면 다른 브라우저와 비교하여 OS와 통신하는 프로세스가 다를 수 있습니다. 따라서 WebDriver 팀 이 다음 WebDriver 릴리스에서 프로세스 를 구현하기 전에 새로운 프로세스를 파악할 시간을 충분히 주어야합니다 .

그러나 새 브라우저를 지원해야하는지 여부를 결정하는 것은 WebDriver의 개발자 팀에 달려 있습니다.

셀레늄 RC에는 테스트 결과 생성기가 내장되어 있습니다

Selenium RC는 테스트 결과의 HTML 파일을 자동으로 생성합니다 . 보고서 형식은 RC 자체에서 미리 설정되어있습니다.

 

 

WebDriver에는 테스트 결과 파일을 자동으로 생성하는 기본 제공 명령이 없습니다 . IDE의 출력 창에 의존하거나 프로그래밍 언어의 기능을 사용하여 보고서를 직접 디자인하고 텍스트, HTML 등으로 저장해야합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터