Selenium ?

Songss·2025년 3월 19일

개발스킬

목록 보기
9/9

Selenium(셀레니움)은 주로 웹 애플리케이션의 UI(사용자 인터페이스) 테스트에 사용되는 자동화 도구라고 한다.
즉, 사람이 브라우저에서 직접 클릭하고 입력하는 작업을 코드로 자동화할 수 있다.

✅ Selenium이 주로 사용되는 테스트 유형

1️⃣ E2E(End-to-End) 테스트
• 웹 애플리케이션이 처음부터 끝까지 정상적으로 동작하는지 검증하는 테스트.
• 사용자가 직접 수행하는 작업(로그인, 버튼 클릭, 페이지 이동 등)을 코드로 시뮬레이션.
• 예시:
• 사용자가 로그인 페이지에 접속 → ID/PW 입력 → 로그인 버튼 클릭 → 대시보드로 이동 확인

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com/login")

username_input = driver.find_element("name", "username")
password_input = driver.find_element("name", "password")
login_button = driver.find_element("id", "login-btn")

username_input.send_keys("test_user")
password_input.send_keys("password123")
login_button.click()

assert "Dashboard" in driver.title

2️⃣ 기능 테스트(Functional Test)
• 특정 기능(폼 제출, 버튼 클릭 등)이 올바르게 동작하는지 확인.
• 단위 테스트보다 더 큰 범위를 테스트하는데 사용.
예시: 검색 기능 테스트

search_input = driver.find_element("name", "q")
search_button = driver.find_element("id", "search-btn")

search_input.send_keys("Selenium")
search_button.click()

assert "Results for Selenium" in driver.page_source

3️⃣ 크로스 브라우저 테스트(Cross-Browser Testing)
• Chrome, Firefox, Edge, Safari 등 다양한 브라우저에서 웹 애플리케이션이 정상 작동하는지 검증.
• 예를 들어, 크롬과 파이어폭스에서 같은 기능을 테스트하는 코드:

from selenium.webdriver import Chrome, Firefox

chrome_driver = Chrome()
firefox_driver = Firefox()

for driver in [chrome_driver, firefox_driver]:
    driver.get("https://example.com")
    assert "Welcome" in driver.title
    driver.quit()

🔥 Selenium을 언제 써야 할까?

테스트 유형Selenium 필요 여부
유닛 테스트 (단위 테스트)❌ (Jest, JUnit 등 사용)
API 테스트❌ (Postman, Jest, Supertest 사용)
E2E 테스트✅ (사용자 시뮬레이션 가능)
기능 테스트✅ (UI 요소 확인 가능)
회귀 테스트✅ (자동화하면 시간 절약 가능)
크로스 브라우저 테스트✅ (다양한 브라우저에서 테스트 가능)

✅ 결론
• Selenium은 주로 UI 자동화 테스트(E2E, 기능 테스트, 회귀 테스트 등)에 사용됨.
• API 테스트나 단위 테스트에서는 Selenium이 필요 없음 (Postman, Jest 같은 도구가 더 적합).
• 반복적인 수동 테스트를 자동화하고 싶을 때 매우 유용함.

0개의 댓글