SELENIUM

단순/반복적인 테스트 케이스를 자동화하여 테스트 시간을 단축 및 범위를 확대할 수 있습니다. 뿐만 아니라, 휴먼 에러(Human Error)를 줄이고 테스트의 정확성을 유지하면서 테스트 품질을 향상 시킬 수 있습니다.

Selenium이란?

웹 브라우저를 자동화하는 데 사용되는 도구 모음입니다. 웹사이트를 테스트하고 다양한 브라우저와 기기 조합에서 원활하고 일관된 사용자 경험을 보장하는 데 사용되는 가장 인기 있는 프레임워크입니다.

👤
Tester
Test Script 실행
📝
🌐
Selenium Server
JSON Wire Protocol
🔄
💻
Desktop Web 자동화 테스트

기대 효과

테스트 시간 단축
자동화를 통해 테스트 시간 단축
휴먼 에러 감소
수동 테스트에서 발생할 수 있는 오류 감소
테스트 범위 확장
다양한 브라우저와 운영 체제에서 테스트 수행
품질 향상
일관성과 정확성 보장

Selenium 기능

1. 스크립트 작성

Selenium IDE

특징:
  • 사용자가 브라우저에서 수행하는 행동을 기록하고 테스트 스크립트를 생성합니다.
  • 브라우저 확장 프로그램으로 쉽게 설치 가능.
  • 클릭, 입력, 네비게이션 같은 사용자 동작을 기록.
  • 기본 제공 명령어를 활용하여 테스트 흐름 편집 가능.
  • 빠른 프로토타이핑에 적합.

활용 예:

  • 도구인 테스트 기록.
  • 사용자 입력 폼 검증.
2. 테스트 실행 환경 구성

Selenium WebDriver

특징:
  • 생성된 테스트 스크립트를 다양한 브라우저와 플랫폼에서 실행합니다.
  • 각 브라우저에 맞는 드라이버 제공 (ChromeDriver, GeckoDriver 등).
  • 언어 지원: Java, Python, C#, JavaScript 등 다양한 프로그래밍 언어와 호환.
  • 브라우저 간 테스트 자동화를 통해 크로스브라우저 테스트 가능.
구성 요소:
  • WebDriver: 브라우저를 제어하는 코어.
  • 테스트 코드: 사용자가 작성한 실행 코드.

활용 예:

  • Chrome과 Firefox에서 동일한 스크립트 실행으로 동작 확인.
  • UI 및 API 통합 테스트.
3. 성능 측정 및 모니터링

테스트 실행 및 결과 수집

특징:
  • 실행 중 발생하는 애플리케이션 응답 시간, 오류 등을 수집하고 분석할 데이터로 활용합니다.
  • WebDriver 로그를 통해 실행 상태를 기록.
  • 외부 도구와 통합 가능 (예: JMeter와 통합하여 부하 테스트 수행).
  • 특정 요소가 로딩되거나 조건을 충족할 때까지 기다리는 기능(Explicit Wait, Implicit Wait) 으로 성능 벤치.
모니터링 도구 통합 (예: Grafana, Kibana)
  • 테스트와 애플리케이션 성능 간의 상관관계를 실시간으로 모니터링합니다.
  • API 테스트 시 데이터베이스 및 서버 상태와 연결.
  • 성능 지표(응답 시간, CPU/메모리 사용량)를 시각화하여 병목현상 파악.
4. 결과 분석

결과 보고 및 성능 분석 도구

Allure Report:
  • Selenium 테스트 결과를 시각적으로 표현.
  • 테스트 통과/실패 비율, 에러 로그, 스크린샷 등을 포함.
Jenkins 연동:
  • 지속적 통합(CI) 환경에서 테스트 결과를 자동으로 배포.
분석 내용:
  • 특정 브라우저에서 발생한 오류 지점 파악.
  • 응답 시간이 가장 오래 걸린 화면 및 동작 분석.

실제 활용 시나리오 예:

  • 쇼핑몰의 상품 검색 및 결제 흐름 성능 분석.
  • 다국어 웹사이트의 UI 테스트 후 통합 리포트 작성.