Selenium 실전편 Part 04
#
Selenium - 010 - Selenium 실전편 Part 04 자동화 스크립트 작성이 글에서 예시로 사용되는 정보는 다음과 같다.
- Python 3.7.7
- Selenium 3.141.0
- Pytest 6.2.1
목차
- 임의의 사이트 선정 및 자동화할 영역, 기능등에 대한 범위 선정
- 테스트 자동화 스크립트의 형상관리 & POM 구조 작성
- 로케이터 및 페이지 작성
- 자동화 스크립트 작성 (테스트 케이스, 테스트 시나리오)
#
1) 자동화 스크립트 작성드디어 우리는 로케이터도 취득을 하였고, 각 페이지 또는 공용으로 사용할 페이지도 작성을 하였다.
이전에 설명한 기본 노출 / 기본 기능을 확인할 수 있는 각 페이지에 대한 로케이터, 페이지에 대한 기능 함수, 테스트에 대한 스크립트를 전체적으로 설명 하고자 한다.
(1) Page Object Model
- 효울적으로 관리하기 위한 POM 에 대한 설명을 이전에 하였다.
- Google 신께 물어보면 이미 좋은 레퍼런스의 POM 구조가 있으니 참조 하여도 되고, 각자 상황에 맞게 변경해서 사용을 해도 무방하다.
- 중요한것은 이 모든 행위는 효율성을 위한 것이란 것만 잊지 말도록 하자.
POM_Example
(2) Locator
- 각 페이지의 로케이터를 저장하는 곳으로 페이지 별로 관리를 하는것이 유지보수성에 유리하다.
locator_Example
(3) Pages
- 각 페이지에 사용되는 함수들을 저장하는 곳으로 필자는 기본적으로 Base_Page 에는 Selenium 같은 라이브러리의 명령어와 예외처리 기능등을 별도로 정의한다.
- 그외 Page 에는 각 페이지에서만 주로 사용되는 기능들을 정의하는 것이 좋다.
- 예시1) 로그인 페이지라면 로그인 여부를 체크하여 로그인을 하는 함수
- 예시2) 메인 페이지라면 불필요한 팝업들을 다 닫아버리고, 메인 페이지만 남기는 함수 등
Pages_Example
(4) Tests
- 실제로 테스트 스크립트를 작성하는 곳이다. 필자는 Pytest 를 사용하기 때문에 그것을 기준으로 설명한다.
- 필자는 보통 기본 기능은 BASIC 이라는 폴더로 구분하고, 시나리오 케이스는 SCENARIO 라는 폴더로 구분한다.
- Pytest 를 사용할 경우, class 와 def 에는 test_ 라는 명시를 꼭 주도록 하자.
- 참고로 html 로 결과를 생성할 경우에는 한글은 깨진다. xml 은 한글이 노출되는 Jenkins 같은 도구와 연동 또는 대시보드 라이브러리 등을 사용하여 결과를 관리하자.
Tests_Example
자동화를 어떻게 해야할지 어떤 개념을 잡아야 할지 잘 모르는 사람들에게 부디 작은 도움이 되었기를 희망하며..
작성자 : 현의노래 작성일 : 2022년 02월 08일