Tools/Cypress

Cypress와 Selenium 비교

NANCEEE 2022. 7. 7. 02:25
반응형

시작하기에 앞서

Cypress 사이프레스를 공부하며, 이후 프로젝트에 어떤 테스트 툴을 도입하는 것이 좋을까 고민이 되어 이 포스트를 작성하게 되었습니다. Selenium은 지금까지 사용해 본 적은 없습니다만, 이번기회에 가볍게 공부 해 볼까 생각이 드네요.

그럼, 둘의 특징에 대해서 먼저 살펴 봅시다.

Cypress란

https://www.cypress.io

 

JavaScript End to End Testing Framework

Fast, easy and reliable testing for anything that runs in a browser. Install Cypress in seconds and take the pain out of front-end testing.

www.cypress.io

Cypress는 JavaScript로 작성된 자동 테스트 툴입니다. QA나Developer를 대상으로 만들어져, 이하의 테스트에서 사용됩니다.

  • Unit test(단위 테스트)
  • Integration test(통합 테스트)
  • End to End test

무료와 유료판이 있어, 유저수나 테스트 건수 등의 차이가 있습니다.

Cypress의 장점

  • 테스트의 기록:동영상이나 스크린 샷을 자동으로 작성 할 수 있다.
  • 테스트의 자동화:Jenkins 젠킨스, Docker 도커 등의 CI파이프 라인을 통해 실행이 가능해 테스트의 완전 자동화가 가능하다.
  • 실시간 reload 리로드:테스트를 실행하고 있는 도중에 테스트 코드의 수정이 있는 경우, 자동적으로 리로드해 재실행을 해 준다.
  • Spies, stubs, clocks:함수의 동작, 서버의 리스폰스. 타이머 등의 기능을 사용 가능하다.
  • 디버그:디버그가 가능하므로, 테스트 코드의 에러에 대처하기 용이하다.
  • 자동대기:wait나sleeps를 사용할 필요가 없다. 특정한 기대치나 동작이 나올 때 까지 자동적으로 대기하는 코드가 작성 가능하여, 테스트 중 타임아웃의 발생 위험이 적다.

Cypress의 한계점

  • 동시에 둘 이상의 브라우저를 조작 할 수 없다.
  • JavaScript로 밖에 기술할 수 없다.

selenium란

https://www.selenium.dev

 

Selenium

Selenium automates browsers. That's it!

www.selenium.dev

selenium 셀레니움은 웹 브라우저의 조작을 자동화 하는 프레임 워크입니다. 테스트의 자동화 이외에도, 웹 크롤링이나 태스크의 자동화 등에도 사용됩니다.
JavaScript로만 기술 할 수 있는 Cypress와는 다르게, Python나 Java등 여러 언어로 기술이 가능합니다.
selenium의 기동을 위해서는 반드시 웹 브라우저의 web driver 웹 드라이브의 설치가 필요합니다.

selenium의 장점

  • 언어・프레임 워크:Java, Ruby, Python등 여러 언어와 그 언어의 여러 프레임 워크를 사용 할 수 있다.
  • 브라우저:Cypress와 비교해, Safari한 보다 많은 브라우저를 지원하고 있다.
  • API:간결한 API를 제공한다.
  • 테스트 이외의 용도로 사용 가능하다.

selenium의 한계

  • 환경구축의 번거로움:Cypress의 경우, Cypress만 설치하면 바로 이용이 가능하지만, selenium은 각 브라우저의 web driver를 설치할 필요가 있다.
  • Cypress에 비해 테스트 작성에 다소 시간이 걸린다.

정리

  Cypress Selenium
언어 JavaScript Java, Python, Ruby, C#, PHP 등
브라우저 Chrome, Edge, Firefox(beta), Electron Chrome, IE, Safari, Edge, Firefox, Opera
프레임 워크 Mocha JS 각 언어별 여러 프레임 워크를 지원
(예:Javaーselenide, QAFな등 PythonーSeleniumBaseなど)
환경구축 Cypress만 설치하면 바로 사용 가능. 그 외 특별히 필요한 것은 없음. Cypress와 비교해, web driver의 섪치 등 환경구축이 번거로운 편이다.
개인적인 평가 - 도입하기에 가볍다.
- CI에 도입이 가능하기 때문에 완전한 테스트 자동화가 가능하다.
- 테스트 이외의 용도에 쓸 수 있다는 점이 매력적이다.
- Cypress보다 대응하는 언어나 브라우저가 풍부하다.

여기까지 읽어주셔서 감사합니다.

반응형