Selenium을 활용한 E2E 테스트 케이스 개발

SIMWOOHYUN·2025년 6월 3일
post-thumbnail

Selenium을 활용한 E2E 테스트 케이스 개발 및 자동화

🧪 E2E 테스트란?

E2E(End-to-End) 테스트는 실제 사용자의 시나리오를 기반으로 시스템 전체를 테스트하는 방법입니다. 단위 테스트(Unit Test)나 통합 테스트(Integration Test)보다 전체 플로우의 안정성을 검증하는 데 초점이 맞춰져 있습니다.

예를 들어:

사용자가 로그인 → 상품을 장바구니에 담기 → 결제 → 주문완료

이 전체 흐름을 자동화해 테스트할 수 있게 도와주는 도구 중 하나가 바로 Selenium입니다.


🛠 환경 구축

1. 설치

pip install selenium

2. 웹드라이버 설치 (크롬 기준)

크롬 브라우저 버전에 맞는 ChromeDriver 다운로드 후 경로 지정.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')  # GUI 없이 실행
driver = webdriver.Chrome(options=options)

✅ 간단한 로그인 테스트 예시

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()

try:
    driver.get("https://your-site.com/login")

    # 입력 필드 찾기 및 로그인 정보 입력
    driver.find_element(By.NAME, "username").send_keys("test_user")
    driver.find_element(By.NAME, "password").send_keys("secure_pass")
    driver.find_element(By.NAME, "login").click()

    time.sleep(2)  # 로딩 대기

    # 로그인 성공 확인
    assert "대시보드" in driver.page_source
    print("✅ 로그인 테스트 통과")

finally:
    driver.quit()

🧩 테스트 시나리오 구성 방법

E2E 테스트를 설계할 때는 다음처럼 구성합니다:

  1. 시작 조건: 초기 URL, 로그인 상태 등
  2. 행동(Action): 버튼 클릭, 텍스트 입력 등
  3. 기대 결과(Assertion): 텍스트 포함 여부, 페이지 이동 확인 등

예시 시나리오

  • 회원가입 → 로그인 → 상품 검색 → 장바구니 담기 → 결제 → 주문 완료
  • 비밀번호 틀렸을 때 에러 메시지 확인
  • 비회원 접근 시 로그인 페이지로 리다이렉트

🔁 테스트 자동화 전략

1. CI 연동

  • Github Actions, GitLab CI, Jenkins 등과 연동해 PR 또는 Push 시 자동 실행
# GitHub Actions 예시
name: Selenium E2E Test

on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Install dependencies
      run: |
        pip install selenium
        # 기타 설정
    - name: Run tests
      run: python tests/e2e_test.py

💡 팁과 유의사항

  • time.sleep() 대신 WebDriverWait 활용 권장
  • 테스트 간 데이터 충돌을 피하기 위해 테스트 전 초기화/정리 작업 필요
  • UI 요소가 자주 바뀌는 경우 → 셀렉터 관리 중요 (data-testid 등 도입 권장)

🧾 결론

Selenium은 실제 사용자의 시나리오를 시뮬레이션하여 전체 서비스를 검증하는 데 매우 유용합니다. 단, 유지보수가 어려울 수 있으므로 다음을 고려해 활용하세요.

  • 핵심 기능 위주로 작성
  • CI/CD에 통합해 자동 실행
  • 반복 가능하고 안정적인 테스트 환경 조성

더 나은 품질의 서비스를 위해 E2E 테스트는 이제 필수가 되고 있습니다. Selenium으로 자동화의 첫 걸음을 시작해 보세요!

0개의 댓글