Selenium? 소개 튜토리얼

⚡ 스마트 요약

Selenium 여러 프로그래밍 언어를 사용하여 브라우저와 플랫폼 전반에서 웹 애플리케이션을 검증하도록 설계된 무료 오픈 소스 자동화 테스트 프레임워크입니다. 최신 QA(품질 보증) 관행을 위한 강력하고 효율적이며 확장 가능한 테스트 자동화를 지원합니다.

  • 주요 원리: Selenium 다양한 브라우저 및 운영 체제에서 웹 애플리케이션의 자동 검증을 용이하게 하며 다음과 같은 언어를 지원합니다. Java, C#, Python수록.
  • 도구 모음 구조: Selenium IDE, 원격 제어, WebDriver, Grid의 4가지 주요 구성 요소가 포함되어 있으며, 각각은 고유한 자동화 요구 사항을 해결합니다.
  • IDE 및 프로토타입ping: Selenium IDE는 신속한 사례 생성 및 프로토타입 제작을 위한 브라우저 확장 프로그램입니다.ping하지만 간단한 테스트 시나리오에 가장 적합합니다.
  • 원격 제어의 진화: Selenium 현재 유지 관리 모드에 있는 RC는 여러 언어로 테스트 스크립트를 허용하여 브라우저 정책 제한을 해결한 최초의 프레임워크였습니다.
  • WebDriver 구현: WebDriver는 브라우저와 직접 통신하여 OS 수준의 제어와 복잡한 자동화에 대한 뛰어난 안정성을 제공합니다.
  • 병렬 처리를 위한 그리드: Selenium Grid를 사용하면 여러 대의 컴퓨터와 브라우저에서 테스트를 병렬로 실행할 수 있어 테스트 주기를 대폭 단축할 수 있습니다.
  • 크로스 브라우저 및 플랫폼 지원: Selenium 다양한 브라우저와 운영 체제를 지원하여 웹 QA에 있어 탁월한 유연성을 제공합니다.
  • 실제 영향: 팀 사용 Selenium SaaS, CI/CD 및 기능 제공에서 입증된 결과를 바탕으로 릴리스 주기를 가속화하고, 수동 테스트를 줄이고, 모든 브라우저에서 일관된 UX를 보장합니다.

셀레늄이란 무엇인가

Selenium?

Selenium 다양한 브라우저와 플랫폼에서 웹 애플리케이션을 검증하는 데 사용되는 무료(오픈 소스) 자동화 테스트 프레임워크입니다. 다음과 같은 여러 프로그래밍 언어를 사용할 수 있습니다. Java, C#, Python등을 생성합니다. Selenium 테스트 스크립트. 테스트는 다음을 사용하여 수행되었습니다. Selenium 테스트 도구는 일반적으로 Selenium 지원.

전문가 통찰력

테스트에서 고정된 슬립 지연을 사용하지 마세요. 대신 WebDriverWait와 같은 명시적인 대기 시간을 사용하여 요소가 로드될 때까지 기다리세요. 이렇게 하면 스크립트가 실제 페이지 조건에 동적으로 반응하므로 스크립트의 안정성과 속도가 향상됩니다. 이는 모든 학생에게 중요한 모범 사례이며, 특히 Selenium. "

— 히만슈 셰스, Selenium 전문가

👉 무료 라이브 등록 Selenium 테스트 프로젝트

Selenium 도구 모음

Selenium 소프트웨어는 단순한 단일 도구가 아니라 소프트웨어 제품군으로, 각 부분은 서로 다른 기능을 제공합니다. Selenium 조직의 QA 테스트 요구 사항. 도구 목록은 다음과 같습니다.

  • Selenium 통합 개발 환경(IDE)
  • Selenium 리모콘(RC)
  • 웹드라이버
  • Selenium 그리드

Selenium 도구 모음

그 순간, Selenium RC와 WebDriver는 단일 프레임워크로 병합되어 Selenium 2. Selenium 그런데 1은 다음을 가리킨다. Selenium RC.

비디오 자습서 Selenium

여기에서 확인하세요 비디오에 접근할 수 없는 경우

누가 개발 Selenium?

이후 Selenium 다양한 도구 모음이며 개발자도 다양했습니다. 다음은 학회 발전에 크게 기여한 주요 인사들이다. Selenium 하이라이트

개발 된 Selenium

주로 Selenium 였다 2004년 제이슨 허긴스(Jason Huggins)가 만든ThoughtWorks의 엔지니어인 그는 빈번한 테스트가 필요한 웹 애플리케이션을 개발하고 있었습니다. 애플리케이션의 반복적인 수동 테스트가 점점 비효율적으로 변하고 있음을 깨닫고, JavaScript 브라우저의 동작을 자동으로 제어하는 ​​프로그램. 그는 이 프로그램을 "Java스크립트테스트러너.”

그는 다른 웹 애플리케이션을 자동화하는 데 도움이 되는 이 아이디어의 잠재력을 보고 JavaScriptRunner는 오픈 소스로 나중에 이름이 변경되었습니다. Selenium 핵심. 웹 애플리케이션 테스트를 위한 다른 옵션을 탐색하는 데 관심이 있는 경우 다음을 살펴보세요. Selenium 대안.

동일 출처 정책 문제

동일 출처 정책은 금지합니다. Java스크립트 코드는 실행된 도메인과 다른 도메인의 요소에 액세스하는 데 사용됩니다. 예를 들어, www.google.com의 HTML 코드는 다음을 사용합니다. Java스크립트 프로그램 "randomScript.js". 동일 출처 정책은 randomScript.js가 google.com/mail, google.com/login, google.com/signup과 같이 google.com 내의 페이지에만 접근하도록 허용합니다. 그러나 yahoo.com/search나 guru99.com과 같이 서로 다른 도메인에 속하는 다른 사이트의 페이지에는 접근할 수 없습니다.

동일 출처 정책 문제

이것이 바로 그 이유입니다. Selenium RC, 테스터는 두 가지 모두의 로컬 복사본을 설치해야 함 Selenium 코어(a Java스크립트 프로그램)과 테스트 중인 웹 애플리케이션이 포함된 웹 서버는 동일한 도메인에 속하게 됩니다.

탄생 Selenium 리모콘 (Selenium RC)

폴 해먼트

불행히도 테스터는 다음을 사용합니다. Selenium Core는 테스트 중인 전체 애플리케이션과 웹 서버를 자체 로컬 컴퓨터에 설치해야 했습니다. 동일 출처 정책. 그래서 또 다른 ThoughtWorks의 엔지니어는 폴 해먼트, 브라우저를 속여 믿게 하는 HTTP 프록시 역할을 하는 서버를 만들기로 결정했습니다. Selenium 테스트 중인 Core와 웹 애플리케이션은 동일한 도메인에서 나옵니다. 이 시스템은 다음과 같이 알려지게 되었습니다. Selenium 리모트 컨트롤 or Selenium 1.

탄생 Selenium 그리드

패트릭 라이트바디

Selenium 그리드는 다음에 의해 개발되었습니다. 패트릭 라이트바디 테스트 실행 시간을 최대한 최소화해야 할 필요성을 해결하기 위해 그는 처음에 이 시스템을 "호스팅된 QA." 중요한 단계에서 브라우저 스크린샷을 캡처할 수 있었으며 발송 Selenium 여러 기계에 동시에 명령을 내립니다.

탄생 Selenium IDE

카사타니 신야

카사타니 신야 일본이 창조한 Selenium IDE은 Firefox 그리고 기록 및 재생 기능을 통해 브라우저를 자동화할 수 있는 Chrome 확장 프로그램도 있습니다. 그는 테스트 케이스 생성 속도를 더욱 높이기 위해 이 아이디어를 생각해 냈습니다. 그는 기부했습니다. Selenium IDE를 Selenium 프로젝트 2006.

웹드라이버의 탄생

사이먼 스튜어트

사이먼 스튜어트 WebDriver는 대략 생성되었습니다. 2006 브라우저와 웹 애플리케이션이 더욱 강력해지고 제한적이 되면서 Java스크립트 프로그램과 같은 Selenium 핵심. 이는 OS 수준에서 브라우저를 제어할 수 있는 최초의 크로스 플랫폼 테스팅 프레임워크였습니다.

탄생 Selenium 2

In 2008, 전체 Selenium 팀은 WebDriver를 병합하기로 결정했으며 Selenium RC는 더 강력한 도구를 형성합니다. Selenium 2WebDriver가 핵심입니다.. 현재, Selenium RC는 아직 개발 중이지만 유지 관리 모드에 있습니다. 대부분의 Selenium 이제 프로젝트의 노력은 다음에 집중됩니다. Selenium 2.

그렇다면 왜 이름이 Selenium?

이름 Selenium 제이슨이 팀에게 한 농담에서 나온 말입니다. 동안 Selenium의 발전, 또 다른 자동 테스트 프레임워크는 회사에서 널리 만들어졌습니다. Mercury 대화 형 (네, 원래 만들었던 회사입니다) QTP (HP에 인수되기 전) Selenium 잘 알려진 해독제이다. Mercury 중독된 후 Jason은 그 이름을 제안했고 그의 팀원은 그 이름을 사용했습니다. 그래서 우리는 이 프레임워크를 현재까지 부르게 되었습니다.

이름이 왜 Selenium

Selenium IDE?

Selenium 통합개발환경(IDE)은 가장 간단한 프레임워크 인간을 Selenium 스위트룸이고 가장 배우기 쉬운 것. 그것은이다 크롬 Firefox 플러그인 다른 플러그인과 마찬가지로 쉽게 설치할 수 있습니다. 그러나 그 단순성 때문에, Selenium IDE는 다음 용도로만 사용해야 합니다. 프로토타입ping 수단. 더 고급 테스트 케이스를 생성하려면 다음 중 하나를 사용해야 합니다. Selenium RC 또는 웹드라이버.

Selenium IDE

Selenium 리모콘 (Selenium RC)?

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

Selenium 리모콘 (Selenium RC)

웹드라이버란 무엇입니까?

WebDriver는 다음보다 나은 것으로 입증되었습니다. Selenium IDE와 Selenium RC 여러 측면에서. 브라우저 작업을 자동화하는 데 있어 보다 현대적이고 안정적인 접근 방식을 구현합니다. WebDriver와 달리 Selenium RC, 의존하지 않음 Java스크립트 Selenium 자동화 테스트. 브라우저와 직접 통신하여 브라우저를 제어합니다.

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

  • Java
  • C#
  • PHP
  • Python
  • 루비

웹드라이버

Selenium 그리드?

Selenium 그리드는 도구이다 와 함께 사용 Selenium 달리는 RC 병렬 테스트 동시에 다른 컴퓨터와 다른 브라우저에 걸쳐 있습니다. 병렬 실행은 여러 테스트를 동시에 실행하는 것을 의미합니다.

특징:

  • 사용함 동시 테스트 실행 in 여러 브라우저와 환경.
  • 시간을 절약 엄청나게.
  • 활용한다 허브 및 노드 개념. 허브는 중앙 ​​소스 역할을 합니다. Selenium 연결된 각 노드에 명령을 보냅니다.

Selenium 브라우저 및 환경 지원

건축학적 차이로 인해 Selenium SDI, Selenium RC와 WebDriver는 다양한 브라우저와 운영 환경을 지원합니다.

  Selenium IDE 웹드라이버
브라우저 지원 모질라 Firefox 및 크롬 Google Chrome 12+
Firefox
Internet Explorer 7+ 및 Edge
원정 여행,
HtmlUnit 및 PhantomUnit
Opera팅 시스템 Windows, 맥 OS X, 리눅스 위 브라우저가 실행될 수 있는 모든 운영 체제.

참고 : Opera 드라이버가 더 이상 작동하지 않습니다.

권리를 선택하는 방법 Selenium 귀하의 요구 사항에 맞는 도구

수단 왜 선택합니까?
Selenium IDE
  • 자동화 테스트에 대한 개념에 대해 알아보려면 Selenium
  • 유형, 열기, clickAndWait, 주장, 확인 등과 같은 Selenese 명령.
  • ID, 이름, xpath, CSS 선택기 등과 같은 로케이터
  • 맞춤형 실행 JavarunScript를 사용한 스크립트 코드
  • 다양한 형식으로 테스트 사례 내보내기
  • 프로그래밍에 대한 사전 지식이 거의 또는 전혀 없이 테스트를 생성합니다.
  • 나중에 RC나 WebDriver로 내보낼 수 있는 간단한 테스트 사례와 테스트 모음을 만듭니다.
  • 웹 애플리케이션을 테스트하려면 Firefox 그리고 크롬만 가능합니다.
Selenium RC
  • Selenese보다 더 표현력이 풍부한 언어를 사용하여 테스트를 설계하려면
  • 다양한 운영체제에서 여러 브라우저(HtmlUnit 제외)에 대해 테스트를 실행합니다.
  • 다음을 사용하여 여러 환경에 테스트를 배포하려면 Selenium 그리드.
  • 지원하는 새 브라우저에 대해 애플리케이션을 테스트하려면 Java스크립트.
  • 복잡한 AJAX 기반 시나리오로 웹 애플리케이션을 테스트합니다.
웹드라이버
  • 테스트 케이스를 설계할 때 특정 프로그래밍 언어를 사용합니다.
  • AJAX 기반 기능이 풍부한 애플리케이션을 테스트합니다.
  • HtmlUnit 브라우저에서 테스트를 실행합니다.
  • 맞춤형 테스트 결과를 생성합니다.
Selenium 그리드
  • 실행하려면 Selenium 여러 브라우저와 운영체제에서 동시에 RC 스크립트를 실행합니다.
  • 가능한 가장 짧은 시간 안에 완료해야 하는 거대한 테스트 모음을 실행합니다.

실제 사례 연구

🔍 사례 연구 1: SaaS 대시보드의 크로스 브라우저 호환성

시나리오

소프트웨어 즉 서비스 회사는 최신 브라우저(Chrome, Firefox, Edge, Safari).

과제

각 브라우저에서 수동으로 테스트하는 작업은 시간이 많이 걸리고 오류가 발생하기 쉬웠으며, 급속한 개발 반복 속도를 따라잡을 수 없었습니다.

솔루션 Selenium

QA 엔지니어가 생성했습니다. Selenium 그리드 여러 브라우저와 OS 조합에서 동일한 테스트 모음을 동시에 실행하도록 설정했습니다. 테스트는 다음에서 작성되었습니다. Python 사용 Selenium 로그인, 차트 필터링, 데이터 내보내기와 같은 작업을 위한 WebDriver입니다.

결과

  • 회귀 지속 시간이 80% 단축되었습니다.
  • 브라우저별 렌더링 버그(예: IE에서 그래프가 잘못 정렬됨)를 일찍 발견했습니다.
  • 추가적인 수동 작업 없이 브라우저 매트릭스 전반에 걸쳐 일관된 대시보드 UX를 유지했습니다.

⚙️ 사례 연구 2: 웹 앱을 위한 CI/CD 통합 Selenium + TestNG

시나리오

중견 웹 개발 회사는 CI/CD 파이프라인을 사용합니다. Jenkins그들은 코드 변경 후에도 핵심 사용자 여정이 제대로 작동하는지 확인해야 했습니다.

과제

새 빌드 배포 시 사용자 흐름(로그인, 양식 제출 등)이 간혹 중단되는 경우가 있었습니다.ping 일일 수동 테스트 종료 시점까지 감지 기능 유지.

솔루션 Selenium

테스터가 구현했습니다 Java기반 Selenium WebDriver 제품군이 통합됨 TestNG테스트는 인증, 프로필 업데이트 및 검색 기능을 포함했습니다. 이 테스트는 모든 기기에서 실행되었습니다. Jenkins 병렬 실행 및 브라우저 매개변수화를 활용하여 빌드합니다.

결과

  • 빠른 실패 피드백을 달성했습니다. 중단된 흐름은 즉시 표시되었습니다.
  • 배포 후 버그가 60% 이상 감소했습니다.
  • QA 단계에 이르기 전에 개발자가 문제를 해결할 수 있게 되었습니다.

🚀 사례 연구 3: 여행 애그리게이터의 기능 출시 가속화

시나리오

여행 정보 플랫폼에서 개편된 항공편 예약 기능을 출시해야 했습니다. 10페이지가 넘는 페이지에 대한 수동 회귀 테스트에 며칠이 걸렸고, 결국 출시가 차단되었습니다.

과제

출시 시간을 단축해야 한다는 압력이 수동 테스트 주기를 앞지르지 못하면 지연이나 품질 저하의 위험이 있습니다.

솔루션 Selenium & 페이지 객체 모델

QA 자동화 책임자가 C#에서 POM(페이지 개체 모델) 구조를 도입했습니다. Selenium WebDriver 스크립트는 페이지 요소와 작업(항공편 검색, 필터 적용, 결제 사례)을 캡슐화했습니다. GitLab CI에서 매일 밤 자동화된 테스트 실행이 실행되었습니다.

결과

  • 테스트 시간은 3일에서 단 4시간으로 단축되었습니다.
  • 여러 기능에 걸쳐 스크립트를 재사용하면 스크립팅 작업이 50%까지 줄어듭니다.
  • 신뢰도가 높아졌습니다. 최소한의 버그 보고와 함께 일정에 맞춰 릴리스가 출시되었습니다.

공통의 Selenium 과제(및 수정 사항)

... 비록 ... 할지라도 Selenium 강력한 기능을 갖춘 이 제품은 테스터들이 종종 안정성과 속도에 영향을 줄 수 있는 문제에 직면하게 합니다. 다음은 몇 가지 일반적인 문제와 해결 방법입니다.

  1. 불안정한 테스트:
    타이밍이나 네트워크 문제로 인해 테스트가 무작위로 실패할 수 있습니다.
    고치다: 명시적 대기 및 안정적인 로케이터를 사용하세요. Thread.sleep().
  2. 동적 웹 요소:
    요소 ID나 XPath를 변경하면 요소를 찾을 수 없음 오류가 발생합니다.
    고치다: 상대적 XPath, CSS 선택기 또는 동적 속성 처리를 사용하세요.
  3. Sync시간화 문제:
    스크립트 실행보다 요소가 느리게 로드됩니다.
    고치다: 예상되는 조건으로 WebDriverWait를 구현합니다.
  4. 브라우저 간 불일치:
    Chrome에서는 테스트가 다르게 작동합니다. Firefox, 또는 Edge.
    고치다: 테스트 실행 Selenium 크로스 브라우저 검증을 위한 그리드 또는 클라우드 플랫폼.
  5. 팝업 및 알림 처리:
    예상치 못한 팝업으로 인해 테스트 흐름이 방해받을 수 있습니다.
    고치다: Selenium'의 Alert 인터페이스나 try-catch 블록을 사용하여 우아하게 처리합니다.
  6. 테스트 유지 관리 오버헤드:
    UI가 자주 변경되면 테스트가 취약해집니다.
    고치다: 간편한 업데이트를 위해 POM(페이지 객체 모델)과 버전 제어를 도입합니다.
  7. 통합 과제:
    CI/CD 파이프라인은 드라이버 문제로 인해 실패할 수 있습니다.
    고치다: Selenium 관리자 (Selenium 4+) 또는 WebDriver Manager를 사용하여 드라이버를 자동으로 관리합니다.

: 짧은 다리 Selenium 문제는 동기화가 잘 안 되거나 로케이터가 취약해서 발생합니다. 둘 다 더 스마트한 대기, 모듈식 설계, 지속적인 유지 관리를 통해 해결할 수 있습니다.

자주하는 질문 :

Selenium 다양한 브라우저와 플랫폼에서 웹 애플리케이션을 테스트하는 데 사용되는 오픈소스 자동화 프레임워크입니다. 테스터는 다양한 프로그래밍 언어를 사용하여 클릭, 양식 제출, 탐색과 같은 사용자 상호작용을 시뮬레이션할 수 있습니다.

Selenium 주로 브라우저 기반 테스트 자동화에 사용됩니다. 웹 애플리케이션이 여러 브라우저에서 정상적으로 작동하는지 확인하고, 회귀 및 기능 테스트를 지원하며, CI/CD 파이프라인과 쉽게 통합되어 지속적인 테스트를 지원합니다.

Selenium 4가지 주요 구성 요소로 구성됩니다. Selenium IDE (녹음/재생 도구), Selenium RC (더 이상 사용되지 않음), Selenium 웹드라이버 (현대 자동화 API) 및 Selenium 그리드 (병렬, 크로스 브라우저 테스트 실행을 위해).

The four types are: Selenium IDE 테스트 녹음을 위해 Selenium RC 레거시 자동화의 경우 Selenium 웹드라이버 직접 브라우저 제어를 위해 Selenium 그리드 여러 브라우저에서 분산되고 병렬적인 테스트를 수행합니다.

Selenium WebDriver는 네이티브 API를 사용하여 브라우저와 직접 상호 작용하는 핵심 구성 요소입니다. 개발자는 이를 통해 다음과 같은 언어로 강력하고 다양한 브라우저에서 작동하는 자동화 스크립트를 작성할 수 있습니다. Java, Python, 그리고 C#에 의존하지 않고 Java스크립트.

Selenium IDE 초보자도 쉽게 사용할 수 있으며, 브라우저 확장 프로그램을 통해 녹음 및 재생 기능을 제공합니다. 웹드라이버반면에 코드 기반이며 여러 언어를 지원하고 실제 테스트 프레임워크에 적합한 고급 확장 가능 브라우저 자동화를 제공합니다.

이 게시물을 요약하면 다음과 같습니다.