본문 바로가기

Tools/Cypress

CypressとSeleniumの比較

반응형

はじめに

Cypressを勉強しているところ、今後、PJへどのテストツール投入するのがいいかと思い、この記事を書くことになりました。
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パイプラインでの実行ができてテストの自動化ができる。
  • リアルタイムリロード:テストコードの修正がある場合、自動的にリロードしてくれる。
  • Spies, stubs, clocks:関数の動作、サバーレスポンス、タイマーなどを使える。
  • デバッグ:デバッグができるので、テストが失敗の対応に楽。
  • 自動待機:waitやsleepsを使う必要がない。テストを進むとき、コマンドやアサートチェックを行う前に自動的に待機し、エレメントの有無チェックやタイムアウトの確認の場合の処理なども作成できる。

Cypressの限界

  • 同時に二つ以上のブラウザーが使用できない。
  • JavaScriptでしか書けない。

seleniumとは

https://www.selenium.dev

 

Selenium

Selenium automates browsers. That's it!

www.selenium.dev

seleniumはwebブラウザの捜索を自動化するフレームワークです。テストの自動化以外にも、webクローリングやタスクの自動化などにも使われます。
JavaScriptだけ使えるcypressとは違って、PythonやJavaなどの様々な言語で利用できます。
起動のためには必ずwebブラウザとweb driverが必要です。

seleniumのメリット

  • 言語・フレームワーク:Java、Ruby、Pythonなど様々な言語やフレームワークを使える。
  • ブラウザー:Safariを含む、cypressと比べ、より多いブラウザーを支援する。
  • API:簡潔なAPIを提供する。
  • テスト以外の用途

seleniumの限界

  • 環境構築の難しさ:cypressはcypressのみ設置すれば利用できるが、seleniumはブラウザーのweb driverをインストールする必要がある。
  • テスト作成に多少時間がかかる。

まとめ

  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より使える言語・ブラウザーが豊か。

ここまで読んでくださってありがとうございます。

반응형