Selenideの紹介

intra-martのテストコードを実装する際にSelenideを利用しています。
今回はSelenideについて紹介したいと思います。

Selenideとは

Selenide(セレナイド、セレニド)はSeleniumを拡張した自動テスト用のフレームワークです。
公式サイトは以下です。
selenide.org


使ってみた印象としてはSeleniumよりシンプルにテストコードが書けそうだと感じました。
公式サイトや他のサイトでも詳しく紹介されていますが、以下の点がSelenideの特徴と思います。

  • APIがわかりやすい
  • 待ち処理を特に書く必要がない
  • ページオブジェクトを利用してテストコードを簡潔に出来る
  • テスト失敗時にスクリーンショットを自動保存する

APIについて

要素を選択するときは「$("#title")」のように書くことが出来たり、要素に値を設定する際は「val」で値を設定するなど、わかりやすいAPIが用意されています。

待ち処理について

自動テストはブラウザ上の操作を自動で行うため、画面描画中やスクリプト実行などで要素が活性に切り替わるタイミングなどで入力を試みて失敗することなどがあると思います。Selenideは要素の操作などに自動で待ち処理を追加してくれます。また「watiUntil」メソッドや「should」メソッドなどで明示的な待ち処理を実行することが出来ます。

ページオブジェクトについて

画面毎にクラスを用意して、要素のセレクタを前もって定義したり一連の操作をメソッド化する機能があります。
これによってテストコードをシンプルに実装することが出来ます。

スクリーンショットの自動保存について

アサーション用に「should」メソッドや「shouldBe」メソッドなどが用意されており、アサーションに失敗するとスクリーンショットを自動保存する機能が用意されています。また失敗時のhtmlファイルも自動出力されるため、原因調査もしやすくなっています。


以上、簡単ですがSelenideについて紹介しました。
今後は、intra-martでSelenideを使ってみて難しかったところなどを紹介したいと思います。