FluentLenium を使って、ブラウザのテストを自動化する方法を書いていきます。
※ FluentLenium は Selenium を使用しています。
バージョン
動作確認で使用した製品のバージョンは以下の通りです。
1. ビルドファイルの作成
Maven のビルドファイルを作成して、ライブラリの依存関係を追加します。
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test-fluentlenium</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.fluentlenium</groupId>
<artifactId>fluentlenium-assertj</artifactId>
<version>5.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.fluentlenium</groupId>
<artifactId>fluentlenium-junit-jupiter</artifactId>
<version>5.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>4.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M8</version>
</plugin>
</plugins>
</build>
</project>
2. テストケースの作成
以下のテストクラスを作成します。
src/test/java/org/example/DuckDuckGoTest.java
package org.example; import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.TimeUnit; import org.fluentlenium.adapter.junit.jupiter.FluentTest; import org.junit.jupiter.api.Test; class DuckDuckGoTest extends FluentTest { @Test void titleOfDuckDuckGoShouldContainSearchQueryName() { // DuckDuckGoのページに移動 goTo("https://duckduckgo.com"); // 検索欄に入力 $("#search_form_input_homepage").fill().with("FluentLenium"); // サブミット $("#search_button_homepage").submit(); // サブミットしたフォームが消えるまで待機 await().atMost(5, TimeUnit.SECONDS).until( el("#search_form_homepage") ).not().present(); // タイトルに検索文言が含まれていることを確認 assertThat(window().title()).contains("FluentLenium"); } }
3. テストの実行
IDEでテストクラスを実行するか、コマンドラインで以下のコマンドを実行します。
mvn test
テストを実行すると、FireFox が起動して操作が行われます。