프로그래머스 데브코스 웹 풀사이클 20주차 2일차

geun·2024년 3월 25일
0

데브코스

목록 보기
70/79
post-thumbnail

웹 기반 문서 편집기 제작 프로젝트

Selenium

Selenium 구성 요소

Selenium Web Driver

• 브라우저 자동화 드라이버
• 시중에서 많이 이용되는 여러 가지 브라우저들에 대한 라이브러리를 제공

Selenium IDE

• 웹-사용자 상호작용을 기록 (녹화) 하고 재생하여 테스트 자동화에 활용
• Chrome 및 Firefox 의 extension 으로 설치 및 이용

Selenium Grid

• 분산 환경을 구성하여 hub 가 요청을 수신, node 들에 테스트 수행을 분배하고 결과 수집
• WebDriver 스크립트를 다수의 테스트 머신에 병렬 적용하여 테스트를 가속하고 효율화

Selenium 을 이용한 테스트 전략

E2E 테스트

  • 종단간 테스트 (end-to-end test)
    • 개발물의 안쪽은 침투하지 않는다.
    • 입력 으로부터 출력까지를 사용자 관점에서 테스트하는 것이다.
  • 필요성
    • GUI 를 포함하는 시스템에서 UI 와 코어 로직의 연결 및 동작 검증한다.
    • 단위 테스트로는 검증이 불가한 사용자 관점의 테스트한다.
  • BE 단독에 대해서는 다소 간단하다.

Selenium IDE 이용 테스트 케이스 개발

재현할 시나리오를 설계

• 여기서는 간단한 로그인/로그아웃 시나리오를 대상으로 설명한다.

Selenium IDE 의 도움을 얻어 자동화된 시나리오를 기록

• HTML element 들을 선택한다든지 하는 코드를 손으로 일일이 쓰는 것은 효율이 매우 떨어지는 일이다.

기록한 시나리오의 활용

• Selenium IDE 에서 파일을 불러 시나리오 재생한다.
• CI 를 위한 command-line runner 이용하여 재생한다.
• 테스트 케이스를 Python 코드로 추출하고 수정하여 적용한다.

종단간 테스트 케이스 개발

테스트 케이스 개발

  • 노트 목록 조회, 노트 선택하여 제목과 내용 확인한다.
    • 로그인 상태에서 행할 테스트가 많으므로 로그인/로그아웃 기능은 코드 공용화한다.
    • 사용자 상호작용이 벌어지는 HTML 요소의 선택 기준을 명확히한다.
    • Assertion 을 삽입하여 올바른 동작을 확인한다.
  • 로그인이 실패하는 경우
    • Alert 에 대한 assertion 과 처리 방법으로 실습한다.

E2E 테스트 자동화

Headless browser 를 이용한 테스트

• 테스트는 빈번히 일어날 일이어서 이 때마다 사용자 인터페이스 요소들을 렌더링하는 일은 불필요한 오버헤드가 크다.

Selenium Grid 를 이용한 테스트 환경 구축

• 이것을 테스트 자동화에 직접 활용하려는 것은 아니다.
• 자동화 테스트에 적용할 환경 구성의 배경을 파악하고 구성 관리를 실습한다.
• 개발 단계에서 종단간 테스트의 결과를 눈과 손으로 확인하는 데 활용한다.
• 이후 CI/CD 파이프라인을 통해 자동화한다.

Headless Browser

  • GUI가 없는 브라우저이다.
  • 브라우저의 동작을 포함하는 종단간 테스트의 자동화에 이용한다.

0개의 댓글