JetBrains Aqua > 테스트 자동화를 위한 IDE

Soyean·2023년 6월 30일
0

ETC

목록 보기
8/10
post-thumbnail

JetBrains Aqua

Aqua는 JetBrains에서 출시한 테스트 자동화 IDE입니다.
PyCharm만 사용해보았는데 테스트 자동화를 위한 IDE는 사요해본적이 없어서 이번 기회에 사용해보았습니다.

Aqua 다운로드

현재 Aqua는 preview 버전을 무료로 다운할 수 있도록 제공되고 있습니다.
다운로드 페이지에서 OS 선택 후 프로그램을 다운로드 합니다.

새 프로젝트 생성 (Create a new project)

Aqua에서는 Selenium 뿐만 아니라 Express, Cypress 등 다양한 framework를 지원해줍니다.
왼쪽 리스트 Generator에서 원하는 것을 선택하면 됩니다.
저는 PYTHON / SELENIUM 활용한 프로젝트를 생성할 예정이라 Selenium with Pytest를 선택했습니다.

이름과 위치를 입력해주고 Interpreter를 세팅합니다. (위치는 변경하지 않아도 OK!)

가상 환경은 프로젝트 특징에 맞춰서 Virtualenv Environment / Conda Environment / System Environment / Pipenv Environment / Poetry Environment 중 선택해주면 됩니다. 가상 환경 별 특징 및 차이는 Pip, Pipenv, Poetry or Conda에서 참고하여 선택했습니다.

프로젝트 생성 시 아래처럼 jetbrains 공식 홈페이지를 테스트하는 테스트 코드가 포함된 프로젝트가 생성됩니다.
처음 설정이 어렵고 시간이 오래 걸릴 때가 많기 때문에 기본적인 셀레니움과 크롬드라이버 등 자동화를 위한 설정이 된 상태로 테스트 코드가 제공되는 것이 장점인 것 같습니다.

Web Inspector 활용하기 ( Work with web element inspector )

왼쪽 툴바에서 Web Inspector를 열 수 있습니다. 검색창에 주소 입력 시 해당 주소에 대한 web element를 확인할 수 있습니다.

Aqua에서 가장 큰 장점은 코드에 바로 element를 입력할 수 있다는 것입니다. 하나의 프로그램에서 element를 확인하고 바로 코드에 적용까지 되니 코드 작성에 상당한 시간을 단축할 수 있었습니다. 정확한 element를 가져왔는지 확인하는 시간이 많이 걸리는데 바로 코드에 적용하니 미동작되는 부분이 없어서 훨씬 편리했습니다. ( 기존에 개발자 도구로 복사 붙여넣기하는 것도 생각보다 귀찮았기 때문일까요 😉 )

  1. Locators Evaluator 영역의 Select element in page button 버튼을 클릭하여 web inspecting mode를 시작합니다.

  2. 원하는 element를 클릭하면 Locators Evaluator 검색창에 해당 element가 검색되고 Add Element to Code By ⌄ 버튼 클릭 시 다양한 형식으로 해당 element를 코드에 추가할 수 있습니다.

  • 공식 홈페이지의 검색창 버튼을 코드에 추가한 예시

    • Code by Data Attribute
    def button_open_search(self):
            return self.driver.find_element(By.XPATH, "//*[@data-test = 'site-header-mobile-search-action']")
    • Code by Tag with classes
    def button_open_search2(self):
     return self.driver.find_element(By.TAG_NAME,
                                          "button._main_1dh718a_17._modeClear_1dh718a_478._sizeS_1dh718a_92._alignIconLeft_1dh718a_77._dark_1dh718a_62._withIcon_1dh718a_144._withoutText_1dh718a_138._siteHeaderAction_i9ysw")
    
    • Code by CSS
    def button_open_search3(self):
            return self.driver.find_element(By.CSS_SELECTOR, "button[data-test='site-header-mobile-search-action']") 
    • Code by XPATH
     def button_open_search4(self):
            return self.driver.find_element(By.XPATH, "//button[@data-test='site-header-mobile-search-action']")

참고 : https://www.jetbrains.com/help/aqua/2022.3/getting-started-aqua.html

profile
주니어 QA 🐥

0개의 댓글