자동화테스트/Selenium2018. 11. 9. 07:00

셀레니움이란 무엇입니까?

Selenium은 다양한 브라우저 및 플랫폼에서 웹 응용 프로그램을위한 무료 (오픈 소스) 자동화 테스트 스위트입니다. Selenium이 웹 기반 응용 프로그램을 자동화하는 데 중점을 두는 것만 큼 HP Quick Test Pro (QTP now UFT)와 매우 비슷합니다. Selenium 도구를 사용하여 수행 된 테스트는 일반적으로 Selenium Testing이라고합니다.

Selenium은 단 하나의 도구가 아니라 소프트웨어의 모음입니다. 각 도구는 조직의 다양한 테스트 요구를 충족시켜줍니다. 4 가지 구성 요소가 있습니다.

  • 셀레니움 통합 개발 환경 (IDE)

  • 셀레니움 원격 제어 (RC)

  • WebDriver

  • 셀레니움 그리드

셀렌 소개

현재 Selenium RC와 WebDriver는 단일 프레임 워크로 병합되어 Selenium 2 를 형성 합니다. Selenium 1은 Selenium RC를 말합니다. 

누가 Selenium을 개발 했습니까?

Selenium은 다양한 도구 모음이므로 다른 개발자도있었습니다. 아래는 셀레늄 프로젝트에 주목할만한 기여를 한 핵심 인물들입니다.

셀렌 소개

주로 Selenium은 Jason Huggins에 의해 2004 년 에 만들어졌습니다 . ThoughtWorks의 엔지니어 인 그는 빈번한 테스트가 필요한 웹 응용 프로그램을 개발하고있었습니다. 반복되는 수동 테스트 가 점점 더 비효율적으로되고 있다는 것을 깨닫고 브라우저의 동작을 자동으로 제어 하는 JavaScript 프로그램을 만들었습니다 그는이 프로그램을 " JavaScriptTestRunner"라고 명명했습니다 .

이 아이디어에서 다른 웹 애플리케이션을 자동화하는 잠재력을 보았을 때 그는 JavaScriptRunner 오픈 소스를 만들었습니다.이 소스는 나중에 Selenium Core 로 재 명명되었습니다  .

동일 출처 정책 문제

같은 Origin 정책은 JavaScript 코드가 시작된 도메인과 다른 도메인의 요소에 액세스하는 것을 금지 합니다. 예를 들어 www.google.com의 HTML 코드는 자바 스크립트 프로그램 인 'randomScript.js'를 사용합니다. 동일한 원산지 정책에 따라 randomScript.js는 google.com/mail, google.com/login 또는 google.com/signup과 같은 google.com 페이지에만 액세스 할 수 있습니다. 그러나 yahoo.com/search 또는 https://www.seleniumhq.org/과 같은 다른 사이트의 페이지는 다른 도메인에 속하기 때문에 액세스 할 수 없습니다.

셀렌 소개

이것이 Selenium RC 이전에 테스터가 Selenium Core (JavaScript 프로그램)와 테스트 할 웹 응용 프로그램이 포함 된 웹 서버의 로컬 복사본을 설치하여 동일한 도메인에 속하게하는 이유입니다

셀렌 원격 제어 (셀레늄 RC)의 탄생

셀렌 소개

운수 나쁘게; Selenium Core를 사용하는 테스터는 동일한 출처 정책 에 의해 부과 된 제한 때문에 테스트중인 전체 응용 프로그램과 자체 로컬 컴퓨터의 웹 서버를 설치해야했습니다 따라서 ThoughtWork의 또 다른 엔지니어 인 Paul Hammant 는 브라우저를 "트릭하여"Selenium Core와 테스트중인 웹 응용 프로그램이 동일한 도메인에서 온 것으로 믿도록 HTTP 프록시 역할을하는 서버를 만들기로 결정했습니다. 이 시스템은 Selenium Remote Control 또는 Selenium 1 로 알려졌습니다 .

Selenium Grid의 탄생

셀렌 소개

Selenium Grid는 가능한 한 테스트 실행 시간을 최소화 할 필요성을 해결하기 위해 Patrick Lightbody 에 의해 개발되었습니다 그는 처음 에이 시스템을 " Hosted QA "라고 불렀습니다 중요한 단계에서 브라우저 스크린 샷을 캡처 할 수 있었으며 Selenium 명령을 여러 시스템에 동시에 전송할 수있었습니다.

Selenium IDE의 탄생

셀렌 소개

일본의 Shinya Kasatani 는 레코드 및 재생 기능을 통해 브라우저를 자동화 할 수있는 Firefox 확장 기능인 Selenium IDE를 만들었습니다 그는이 아이디어를 내놓아 테스트 케이스 작성 속도를 더욱 높였다. 그는 2006 년 Selenium 프로젝트에 Selenium IDE를 기부했습니다 .

WebDriver의 탄생

셀렌 소개

Simon Stewart  는  브라우저와 웹 응용 프로그램이 Selenium Core와 같은 JavaScript 프로그램으로 더욱 강력하고 제한적으로 변해가는 2006 년 경 WebDriver를 만들었습니다  OS 레벨에서 브라우저를 제어 할 수있는 최초의 크로스 플랫폼 테스트 프레임 워크였습니다. 


셀렌 2의 탄생


에서 2008 , 전체 셀레늄 팀이라는 더 강력한 도구를 형성 WebDriver와 셀레늄 RC를 병합하기로 결정 셀레늄이 와, WebDriver 핵심 인을 . 현재 Selenium RC는 개발 중이지만 유지 관리 모드에서만 개발 중입니다. Selenium Project의 노력의 대부분은 현재 Selenium 2에 초점을 맞추고 있습니다.

그래서 셀레늄이라는 이름이 필요한 이유는 무엇입니까?

그것은 제이슨이 한 시간을 그의 팀에게 부탁 한 농담에서 비롯된 것입니다. 또 다른 자동화 된 테스트 프레임 워크는 Selenium의 개발 과정에서 인기가 있었으며 Mercury Interactive (예, HP에서 인수하기 전에 원래 QTP를 만든 회사)라는 회사가 제작했습니다. Selenium은 수은 중독에 대한 잘 알려진 해독제이기 때문에 Jason은 그 이름을 제안했습니다. 그의 동료들은 그것을 가져 왔고, 그래서 우리는이 프레임 워크를 현재까지 호출해야합니다.

셀렌 소개

Selenium IDE 소개

Selenium IDE (Integrated Development Environment)는 Selenium 제품군에서 가장 간단한 프레임 워크 이며 가장 손쉽게 배울 수 있습니다. 그것은 당신이 다른 플러그인으로 할 수있는 것처럼 쉽게 설치할 수 있는 파이어 폭스 플러그인 입니다. 그러나 Selenium IDE는 단순성으로 인해 프로토 타이핑 도구 로만 사용해야합니다 보다 고급 테스트 케이스를 작성하려면 Selenium RC 또는 WebDriver를 사용해야합니다.

셀렌 소개
 

간략한 소개 Selenium Remote Control (Selenium RC)

Selenium RC는 오랫동안 전체 Selenium 프로젝트 의  주력 테스트 프레임 워크 였습니다. 이것은 사용자가 선호하는 프로그래밍 언어를 사용할 수 있는 최초의 자동화 된 웹 테스트 도구입니다 버전 2.25.0에서 RC는 다음 프로그래밍 언어를 지원할 수 있습니다.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby
  • 셀렌 소개

    간략한 소개 WebDriver

    WebDriver는 여러면에서 Selenium IDE와 Selenium RC보다 더 뛰어나다 는 것을 증명합니다 브라우저의 작업을 자동화하는보다 현대적이고 안정적인 접근 방식을 구현합니다. Selenium RC와 달리 WebDriver는 자동화를 위해 JavaScript에 의존하지 않습니다. 브라우저와 직접 통신하여 브라우저를 제어합니다.

    지원되는 언어는 Selenium RC의 언어와 동일합니다.

    • Java
    • C#
    • PHP
    • Python
    • Perl
    • Ruby

    셀렌 소개

    셀렌 그리드

    Selenium Grid는 Selenium RC와 함께 사용되어 다른 기계와 다른 브라우저에서 동시에 병렬 테스트를 실행 하는 도구 입니다. 병렬 실행은 한 번에 여러 테스트를 실행하는 것을 의미합니다.

    풍모:

    • 여러 브라우저 및 환경 에서 동시에 테스트 를 실행할 수 있습니다.
    • 시간을 엄청나게 절약합니다  .
    • 허브 앤 노드 개념을 활용합니다 허브는 연결된 각 노드에 대한 셀레늄 명령의 중앙 소스 역할을합니다.

    브라우저 및 환경 지원에 대한 참고 사항

    아키텍처 차이로 인해 Selenium IDE, Selenium RC 및 WebDriver는 다양한 브라우저 및 운영 환경을 지원합니다.

    셀레늄 IDEWebDriver
    브라우저 지원모질라 파이어 폭스Internet Explorer 버전 6 - 11, 32 비트 및 64 비트 

    Microsoft Edge 버전 12.10240 이상 (일부 기능 개발 중 일부 지원) 
    Firefox 3.0 이상 
    Google Chrome 12.0. 그리고 위의 
    오페라 11.5 이상 
    안드로이드 - 폰 및 태블릿 2.3 이상 
    (장치 및 에뮬레이터) 

    휴대폰 (장치 및 에뮬레이터)과 태블릿 (장치 및 에뮬레이터)에 대한 3.2 이상 iOS의 3+ 

    위 2.9을 HtmlUnit과 
    운영 체제Windows, Mac OS X, Linux  위의 브라우저가 실행될 수있는 모든 운영 체제.

    참고 : Selenium WebDriver는 SeleniumHR에 의해 사용되지 않고 공식적으로 발표 된 Selenium RC의 후속 제품입니다.

    당신의 필요에 맞는 Selenium Tool을 선택하는 방법

    수단

    왜 선택해야할까요?

    셀레늄 IDE

    • 자동 테스트 및 셀레늄에 대한 개념을 배우려면 다음을 수행하십시오.
    • type, open, clickAndWait, assert, verify 등과 같은 Selenese 명령
    • id, name, xpath, css selector 등과 같은 로케이터
    • runScript를 사용하여 사용자 정의 된 JavaScript 코드 실행
    • 다양한 형식으로 테스트 케이스 내보내기.
    • 프로그래밍에 대한 사전 지식이 거의 없거나 전혀없는 테스트를 작성합니다.
    • RC 또는 WebDriver로 나중에 내보낼 수있는 간단한 테스트 케이스 및 테스트 스위트를 작성합니다.
    • Firefox에서만 웹 응용 프로그램을 테스트합니다.

    셀레늄 RC

    • Selenese보다 표현력이 풍부한 언어를 사용하여 테스트를 설계하려면
    • 다른 운영 체제에서 다른 브라우저 (HtmlUnit 제외)에 대해 테스트를 실행하려면.
    • Selenium Grid를 사용하여 여러 환경에 테스트를 배치합니다.
    • JavaScript를 지원하는 새 브라우저에 대해 응용 프로그램을 테스트하려면.
    • 복잡한 AJAX 기반 시나리오로 웹 애플리케이션을 테스트합니다.

    WebDriver

    • 테스트 케이스 설계시 특정 프로그래밍 언어를 사용합니다.
    • AJAX 기반 기능이 풍부한 응용 프로그램을 테스트합니다.
    • HtmlUnit 브라우저에서 테스트를 실행합니다.
    • 사용자 지정된 테스트 결과를 만들려면.

    셀렌 그리드

    • 동시에 여러 브라우저 및 운영 체제에서 Selenium RC 스크립트를 실행합니다.
    • 거대한 테스트 스위트를 실행하려면 가능한 한 빨리 완료해야합니다.

    셀레늄과 QTP의 비교 (현재는 UFT)

    Quick Test Professional (QTP) 은 Mercury Interactive 가 2006 년에 Hewlett-Packard에 인수 되기 전에 이전에 소유 한 독점 자동화 테스트 도구 입니다. Selenium Tool Suite는 QTP보다 다음과 같은 많은 장점을 가지고 있습니다 -

    셀레늄과 QTP의 장점

    셀렌

    QTP

    오픈 소스 , 무료 사용 및 무료.상업 .
    높은 확장 성제한된 부가 기능
    서로 다른 브라우저 에서 테스트를 실행할 수 있습니다.Firefox , Internet Explorer 및 Chrome 에서만 테스트를 실행할 수 있습니다.
    다양한 운영 체제 지원

    Windows 에서만 사용할 수 있습니다.

    모바일 장치 지원QTP - HP 모바일 센터라는 HP 솔루션을 사용하여 모바일 앱 테스트 자동화 (iOS 및 Android) 지원
    브라우저가 최소화 된 상태 에서 테스트  실행할 수 있습니다.테스트중인 애플리케이션을 데스크톱에 표시해야합니다.
    테스트 를 병렬로 실행할 수 있습니다.병렬로만 실행할 수 있지만 유료 제품인 Quality Center를 사용하십시오.

     

    셀레늄에 비해 QTP의 장점

    셀레늄에 비해 QTP의 장점

    QTP

    셀렌

    웹 및 데스크톱 응용 프로그램을 모두 테스트 할 수 있습니다.웹 응용 프로그램 만 테스트 할 수 있습니다.
    함께 제공 내장 객체 저장소

    내장 된 객체 저장소가 없습니다.

    완전한 기능을 갖춘 IDE이므로 Selenium보다 더 빠르게 자동화 됩니다.

    네이티브 IDE가없고 타사 IDE 만 개발에 사용할 수 있으므로 느린 속도로 자동화됩니다.

    데이터 기반 테스팅은 내장 된 글로벌 및 로컬 데이터 테이블을 가지고 있기 때문에 더 쉽게 수행 할 수 있습니다 .

    데이터 기반 테스트는 테스트 데이터의 값을 설정하기위한 프로그래밍 언어의 기능에 의존해야하므로 더 귀찮습니다.

    브라우저 내의 컨트롤 (예 : 즐겨 찾기 모음, 주소 표시 줄, 뒤로 및 앞으로 단추 등)에 액세스 할 수 있습니다 .

    테스트중인 웹 응용 프로그램 외부의 요소에 액세스 할 수 없습니다.

    전문적인 고객 지원 제공

    공식적인 사용자 지원은 제공되지 않습니다.

    테스트 데이터 를 외부 형식으로 내보낼 수있는고유 기능 보유

    런타임 데이터를 외부 형식으로 내보내는 고유 기능이 없습니다.

    매개 변수화 지원 기능 내장

    매개 변수화는 프로그래밍을 통해 수행 될 수 있지만 구현하기가 어렵습니다.

    테스트 보고서는 자동으로 생성됩니다.

    테스트 / 버그 보고서를 생성 할 기본 지원이 없습니다.

     

    분명히 QTP 에는 고급 기능이 있지만 Selenium은 다음 세 가지 주요 영역에서 QTP를 능가합니다.

    • 비용 (Selenium은 완전 무료이기 때문에)
    • 유연성 (지원할 수있는 많은 프로그래밍 언어, 브라우저 및 플랫폼으로 인해)
    • 병렬 테스트 (QTP가 가능하지만 Quality Center를 사용해야 만 가능함)

    개요

    • 전체 Selenium Tool Suite는 다음 네 가지 구성 요소로 구성됩니다.
    • Selenium IDE 는 비교적 간단한 테스트 케이스 및 테스트 스위트를 생성 할 때만 사용할 수있는 Firefox 부가 기능입니다.
    • 셀레늄 원격 제어 라고도 셀레늄 한 사용자가 복잡한 테스트를 만드는 프로그래밍 언어를 사용할 수 있도록 허용 최초의 셀레늄 도구입니다.
    • WebDriver 는 테스트 스크립트가 브라우저와 직접 통신하여 OS 레벨에서 제어 할 수 있도록 해주는 새로운 기능입니다.
    • Selenium Grid 는 Selenium RC와 함께 여러 브라우저 및 운영 체제에서 병렬 테스트를 실행하는 데 사용되는 도구이기도합니다.
    • Selenium RC와 WebDriver를 병합하여 Selenium 2 를 형성했습니다 .
    • 셀레늄은 비용 및 유연성 측면에서 QTP보다 유리 합니다 . 또한 테스트를 순차적으로 실행할 수있는 QTP와 달리 테스트를 병렬 로 실행할 수 있습니다 .


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