
E2E(End-to-End) 테스트는 실제 사용자의 시나리오를 기반으로 시스템 전체를 테스트하는 방법입니다. 단위 테스트(Unit Test)나 통합 테스트(Integration Test)보다 전체 플로우의 안정성을 검증하는 데 초점이 맞춰져 있습니다.
예를 들어:
사용자가 로그인 → 상품을 장바구니에 담기 → 결제 → 주문완료
이 전체 흐름을 자동화해 테스트할 수 있게 도와주는 도구 중 하나가 바로 Selenium입니다.
pip install selenium
크롬 브라우저 버전에 맞는 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 테스트를 설계할 때는 다음처럼 구성합니다:
# 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 활용 권장data-testid 등 도입 권장)Selenium은 실제 사용자의 시나리오를 시뮬레이션하여 전체 서비스를 검증하는 데 매우 유용합니다. 단, 유지보수가 어려울 수 있으므로 다음을 고려해 활용하세요.
더 나은 품질의 서비스를 위해 E2E 테스트는 이제 필수가 되고 있습니다. Selenium으로 자동화의 첫 걸음을 시작해 보세요!