카피바라 (소프트웨어)

Capybara (software)
카피바라
개발자토머스 월폴
안정적 해제
3.34.0 / 2020년 11월 26일; 15개월(2020-11-26)[1]
리포지토리
기록 위치루비
운영 체제크로스 플랫폼
유형동작 중심의 개발 프레임워크/테스트 도구
면허증MIT 라이선스
웹사이트teamcapybara.github.io/capybara/

카피바라(Capybara)는 사용자 스토리에 대한 시나리오를 시뮬레이션하고 행동 중심 소프트웨어 개발을 위한 웹 애플리케이션 테스트를 자동화하는 웹 기반 테스트 자동화 소프트웨어다.루비 프로그래밍 언어로 쓰여 있다.

카피바라는 웹 기반 응용프로그램과 상호작용하는 실제 사용자의 행동을 모방할 수 있다.그것은 페이지를 받고, HTML을 구문 분석하고 양식을 제출할 수 있다.[2]

배경과 동기

소프트웨어 개발 프로세스(특히 애자일 및 테스트 주도 개발 환경) 중에 테스트의 크기가 증가함에 따라 모듈화가 아닌 복잡한 테스트 관리가 어려워진다.[2]

Capybara는 Oii, RSpec와 같은 인간이 읽을 수 있는 행동 중심의 프레임워크 개발 스타일을 자동화 코드 자체로 확장함으로써 간단한 웹 기반의 자동화된 테스트를 개발하는 것을 목표로 한다.[3]

카피바라 해부학

카피바라(Capybara)는 루비 라이브러리(일명 보석이라고도 함)로, 기반 웹 기반 드라이버와 함께 사용된다.기본 웹 드라이버에 의해 실행되는 동작을 설명하는 사용자 친화적인 DSL(Domain Specific Language)으로 구성된다.[4]

DSL(및 기본 웹 드라이버)을 사용하여 페이지를 로드할 때, Capybara는 DOM(Document Object Model)에서 관련 요소를 찾고 클릭 버튼, 링크 등과 같은 작업을 실행하려고 시도한다.

드라이버

기본적으로 Capybara는:rack_testJavaScript 실행을 지원하지 않는 드라이버.운전자는 Before와 After Block으로 전환할 수 있다.Capybara가 지원하는 웹 드라이버 중 일부는 아래에 언급되어 있다.

랙 테스트

Ruby로 작성된 Capybara의 기본 드라이버 RackTest는 Rack 인터페이스와 직접 상호작용하기 때문에 서버를 시작할 필요가 없다.따라서 Rack 애플리케이션에만 사용할 수 있다.

셀레늄

웹 기반 자동화 프레임워크에서 주로 사용되는 셀레늄 웹 드라이버는 카피바라에 의해 지원된다.카피바라의 기본 드라이버와 달리 자바스크립트를 지원하고 애플리케이션 외부에서 HTTP 리소스에 액세스할 수 있으며, 머리 없는 모드에서 테스트를 위해 설정할 수도 있어 CI 시나리오에 특히 유용하다.[4]

카피바라 웹킷

Capybara-webkit 드라이버(보석)는 JavaScript 지원을 통한 진정한 헤드리스 브라우저 테스트에 사용된다.Qt웹킷을 사용하며 전체 브라우저를 로딩하지 않아 셀레니움보다 훨씬 빠르다.

매처스

Capybara는 도메인별 언어 또는 XPath/CSS 선택기를 사용하여 요소를 찾는다.부분 일치로 인해 예상치 못한 결과가 나올 수 있다.일치 항목이 두 개 이상일 경우 모호한 일치 오류로 인해 실패할 수도 있다.다음은 카피바라(Capybara)가 지원하는 매칭 전략이다.[4]

번째: 일치하는 첫 번째 요소를 선택하십시오.사용하지 않는 것이 좋다.

1: 한 요소만 일치시키십시오.둘 이상이 일치하는 경우 오류 발생.

스마트: Capybara.exact가 참이면 위의 옵션(하나)과 같이 동작한다.만약 Capybara.exact가 거짓이라면, 먼저 정확한 일치점을 찾으려고 할 것이다.일치 항목이 두 개 이상 발견될 경우 모호한 예외가 제기된다.요소가 발견되지 않으면 부정확한 일치에 대한 새로운 검색이 시작된다.다시 한 번, 일치 항목이 두 개 이상 발견될 경우 모호한 예외가 제기된다.

first_exact: 모든 일치하는(정확하고 정확하지 않은) 요소를 찾으십시오.일치하는 항목이 여러 개 발견되면 다른 일치 항목을 삭제한 첫 번째 정확히 일치하는 요소가 반환된다.

사용법

사용자 등록 프로세스

다음은 사용자 등록 테스트를 카피바라(Capybara)를 사용하여 수행하는 방법의 예다.사용자가 등록 절차를 계속 진행할 수 있는지, 아니면 홀딩이 있는지 확인하기 위한 테스트가 있다.필요한 자격 증명을 가지고 있으면 등록한 후 'Welcome' 페이지로 리디렉션된다.[5]

  묘사하다 '사용자 등록' 하다     그럭저럭 '등록할 사용자 지정' 하다       방문하다 new_user_viron_path       fill_in '이름', :with => '신규'       fill_in '성', :with => '사용자'       fill_in '이메일', :with => 'newuser@example.com'       fill_in '암호', :with => '사용자 비밀번호'       fill_in '암호 확인', :with => '사용자 비밀번호'       click_button '등록'       페이지를 매기다.해야 한다 만족하다 '환영한다'     종지부를 찍다   종지부를 찍다 

오이를 곁들인 카피바라

Oii와 함께 사용되는 Capybara 기능의 예:

언제 /^추가하고 싶은/ 하다     fill_in 'a', :with => 100     fill_in 'b', :with => 100     click_button '추가' 종지부를 찍다 

RSpec를 사용한 카피바라

RSpec[4][6] 함께 Capybara를 사용하기 위해서는 약간의 미세한 통합이 필요하다.

묘사하다 '홈페이지로 이동' 하다   그럭저럭 '홈페이지를 펴다' 하다     방문하다 (get_beats)     기대하다(페이지를 매기다). 만족하다('환영한다')   종지부를 찍다 종지부를 찍다 

유사 공구

참고 항목

참조

  1. ^ "Releases - teamcapybara/capybara". Retrieved 19 January 2021 – via GitHub.
  2. ^ a b Engineering Software as a Service: An Agile Approach Using Cloud Computing. ISBN 9780984881246.
  3. ^ Application Testing with Capybara. ISBN 9781783281268.
  4. ^ a b c d "The Basics of Capybara and Improving Your Tests". SitePoint. Retrieved 2016-02-08.
  5. ^ "Integration testing Devise with RSpec and Capybara". garyrafferty.com. Archived from the original on 2016-01-21. Retrieved 2016-02-16.
  6. ^ Liss, Jo. "Capybara (and Selenium) with RSpec & Rails 3: quick tutorial". www.opinionatedprogrammer.com. Retrieved 2016-02-08.