본문 바로가기

Web.IT.Mobile/QA 자동화19

Playwright 테스트 결과 리포트 1. Playwright 내장 HTML 리포트playwright test(커맨드/파이썬, JS/TS) 실행 시 자동으로 HTML 리포트 생성 지원 (파이썬도 동일)리포트 파일 보기report.html 파일을 웹 브라우저에서 열면테스트별 통과/실패, 로그, 스크린샷, 실행시간, 요약 그래프 등 보기 좋게 시각화생성/확인 방법pytest --html=report.html# 또는 (nodejs 기반 Playwright라면)npx playwright test --reporter=html2. Allure 리포트 (추천)Allure는 가장 많이 쓰는 오픈소스 테스트 리포트 툴Playwright, Selenium, API 테스트 등 모든 자동화에서 호환실행 결과를 HTML/그래프/테스트별 스크린샷/로그/첨부파일로 생.. 2025. 7. 27.
Playwright vs Selenium Playwright 이 Selenium 보다 더 나은 주요 이유 항목 Playwright Selenium 최신 웹 호환성SPA, 반응형, 최신 프론트엔드 대응이 뛰어남일부 최신 UI 대응 어려움지원 브라우저크롬/파폭/웹킷(사파리)/엣지 등 모두크롬/엣지/파폭/사파리실행 속도빠름 (auto-wait 내장, 멀티 브라우저 기본 병렬화)상대적으로 느림, wait 직접 조절 필요안정성flaky test(랜덤 실패) 현상 적음, 자동대기wait 명시적 추가 필요, flaky 가능성API 구조Modern(체이닝, Promise), 간단함전통적인 WebDriver 방식멀티브라우저크롬, 파폭, 엣지, 웹킷(사파리) 완벽 지원사파리는 맥에서만 부분 지원 병렬/분산 기본 지원, 매우 쉽고 빠름xdist 등 외부 플.. 2025. 7. 27.
셀레니움에서 팝업창 제어 - 2가지 1. 자바스크립트 Alert/Confirm/Prompt(경고/확인/입력) 팝업브라우저의 내장 팝업 (예: alert("메시지"); confirm("확인?"); prompt("입력하세요"))셀레니움의 switch_to.alert로 제어from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timedriver = webdriver.Chrome()driver.get("https://testpage.com")# 팝업 뜨는 액션(예: 버튼 클릭)driver.find_element(By.ID, "btn_alert").click()time.sleep(1) # 팝업 대기# alert 제어alert = driver.switch_to.. 2025. 7. 24.
여러 케이스를 수행시키고 싶을 때의 방법들 사이트에 로그인을 한 뒤, 그 이후 동작을 확인하는 케이스를 분리하고 싶을 때 방법 1: 메인 실행 파일 생성 (권장)main.py 파일을 만들어서 다른 모듈들을 순차적으로 실행:방법 2: 함수 기반 모듈화 (더 효율적)각 파일을 함수로 만들어서 import하여 사용:signin.py 생성 : 로그인 동작 체크 post_login_check.py 생성: 로그인 후 기능을 체크 main.py 생성: 전체 테스트 시나리오 실행방법 3: 배치 스크립트 사용 (macOS/Linux)run_tests.sh 생성:실행 권한 부여 후 실행:권장사항방법 2 (함수 기반 모듈화)를 추천합니다:브라우저 인스턴스를 재사용할 수 있어 효율적디버깅이 쉬움코드 재사용성이 높음각 모듈을 독립적으로 테스트 가능이 방식으로 구성하면 .. 2025. 7. 24.
셀레니움(Selenium)에서 “클릭할 요소”를 찾자 1. 크롬(혹은 Edge 등) 브라우저에서 “소스보기/개발자도구” 활용해당 페이지에서F12(개발자도구) 또는 오른쪽 클릭 → “검사” 실행원하는 버튼/링크/메뉴 위에서 우클릭 → “검사”로 해당 HTML 위치 바로 확인2. 클릭 요소의 “속성”을 확인해야 하는 주요 기준속성/특징예시 (HTML 코드)설명/셀레니움에서 활용 방법id로그인By.ID, "login-btn"class메뉴By.CLASS_NAME, "main-menu-item"nameBy.NAME, "q"텍스트(내용)My TicketBy.LINK_TEXT, "My Ticket"css selectorBy.CSS_SELECTOR, ".btn.btn-primary" 또는 속성 조합xpath모든 요소 가능 (위치, 계층, 속성 등)By.XPATH, "//.. 2025. 7. 24.
pytest plug-ins https://docs.pytest.org/en/stable/reference/plugin_list.html# 이름 요약 설명 (한글 번역)pytest-covcoverage.py 기반의 코드 커버리지 리포트를 pytest와 통합pytest-xdist테스트를 CPU나 원격 호스트에 분산 실행, 세그멘테이션 결함 생존 모드, 변경 시 반복 실행 지원pytest-instafail테스트 실패 시 즉시 실패 내용을 출력, 모든 테스트 완료 후 출력되는 기본 방식 대체. 디버깅 편의성 향상pytest-bddBDD(행동 주도 개발) 방식의 테스트 작성 지원, Gherkin 문법 활용pytest-timeout함수 단위 또는 전역 설정 기반으로 테스트 시간 제한을 지정 → 오래 걸리는 테스트를 자동으로 실패 처리하.. 2025. 7. 20.
멀티 브라우저/멀티 환경 파라미터라이즈(Parametrize) 구분 실무 Best Practice 테스트 로직함수/클래스화, 코드 재사용테스트 “동작”은 함수나 메서드로 한 번만 작성브라우저 종류, 환경(모바일/PC/해상도/언어 등)은 파라미터만 바꿔서 반복 실행실행 환경파라미터/설정/환경변수 등 분리브라우저, 해상도, User-Agent, 언어, URL 등 환경은따로 config.json, .env, YAML, 인수/환경변수 등으로 분리 관리환경만 바꿔서 계속 반복/확장여러 브라우저파라미터/반복문/데코레이터로 반복pytest.mark.parametrize 데코레이터 사용각 환경별로 자동 반복, 결과도 자동 집계(ex: pytest, unittest, Robot Framework, Playwright 등)리포트/로그프레임워크/CI에서 자동 집계/리포트 실행 자동.. 2025. 7. 20.
반응형