はじめに
web開発してて、UIテスト面倒な~
これ全部、自動化されたら、楽なのにな~って思ってる開発者は少なくないと思う!
テスト自動化にSelenide
を使ってみたので簡潔に内容を記載しようと思う。
Selenide導入
以下、mavenで使用する場合。
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>5.24.3</version>
<scope>test</scope>
</dependency>
まずはwebサイトを開く
これだけで画面は開けちゃう。
import com.codeborne.selenide.Selenide;
// yahooを開く
Selenide.open("https://www.yahoo.co.jp/");
要素にアクションを起こす
以下、クリックの例
import com.codeborne.selenide.Selenide;
// selecterにはCSSセレクタが入る
Selenide.$(selecter).click();
個人的にはCSSセレクタを使って、
.click()
ってメソッドがあるとかjqueryの感覚で使えそうだな~って印象
Javaは得意じゃないけど、jqueryはよく使ってたからJavaよりもとっつきやすい!(^^)/
ココがスゴイ
- 勝手に要素wait
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.Selenide;
// 要素の出現待機する秒数を設定(ミリ秒)
Configration.timeout = 10000;
Selenide.$(selecter).click();
このような記述をした場合、selecter
の値が表示されるまでフレームワークでwaitしてくれる!!
昔、Selenide
を使ったときはブラウザでアクセスしてどれくらいのwaitかければいいか計算してやった記憶があるな…
あの時はがむしゃらだったなー…(ホジホジ)
- 実施者の裁量に依存しない!
// ブラウザサイズを指定
Configuration.browserSize = width + "x" + height;
UIテスト実施等で大変なのは、複数人で実施した時の前提条件合わせ
ルールは決めてたけど、設定し忘れて実施しちゃった…なんてことも…
設定値に完全統一が難しいブラウザサイズの固定もできる!
- 複数ブラウザも楽ちん!
import org.openqa.selenium.chrome.ChromeDriver;
import com.codeborne.selenide.WebDriverRunner;
// chromeを設定
ChromeDriver chromeDriver = new ChromeDriver();
WebDriverRunner.setWebDriver(chromeDriver);
WebDriverRunner
のsetWebDriver
メソッドを使用すれば、ブラウザの切り替えも余裕!
いや~これ導入したら、「IEとchromeとfirefoxでテストしてほしいんだよね」って言う人がいても余裕ですね~笑(IEはもうやらんくて良くない…??)
次回予告
次回は、
- テスト自動化でエビデンスをとる
- 使ってみてのマイナスポイント
の2本立てでお送りします!
それでは~(*´ω`)ノシ