コンテンツへスキップ

PitaliumがMaven対応したのでDockerと組み合わせて使ってみる

by : 2018/01/23

Pitaliumはこれまでjarファイルをダウンロードして自分でセットアップする必要がありましたが、先日Mavenのリポジトリに登録されました!これで導入の手間が大幅に軽減されるはずです。

そこで今回はごく基本的なPitalium導入法に加えて、Dockerを使ってSelenium Hub/Nodeを簡単に組み合わせる方法を紹介します。

要件

まず以下の環境はあることとします。

  • Docker
  • Gradle

Dockerの実行

Dockerはすでにインストールされている前提とします。Selenium Hub/NodeはDockerコンテナイメージのサイズが大きいので、ダウンロードに時間がかかります。そこで、とりあえず実行しておきます。

$ docker run -d -p 4444:4444 –name selenium-hub selenium/hub
$ docker run -d -v /dev/urandom:/dev/random -P –link selenium-hub:hub selenium/node-chrome-debug

view raw
index.sh
hosted with ❤ by GitHub

これでどちらも実行されればSelenium Hub/Nodeが立ち上がって、Chromeが使える状態になります。

ディレクトリ構成

最低限のディレクトリ構成は次のようになります。

$ tree .
.
├── build.gradle
└── src
├── main
│   └── resources
│   └── capabilities.json
└── test
└── java
└── pitaliumtest
└── SampleTest.java
6 directories, 3 files

view raw
index.sh
hosted with ❤ by GitHub

capabilities.jsonはHubのブラウザ設定を記述しますが、この時点ではChromeのみなので次のようになります。IEやFirefoxなど必要に応じて追加してください。

[
{
"browserName": "chrome"
}
]

view raw
index.json
hosted with ❤ by GitHub

build.gradleは次のようになります。ここでPitaliumを指定するだけです。

apply(plugin: 'java')
apply plugin: 'application'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile group: 'com.htmlhifive', name: 'pitalium', version: '1.2.1'
}

view raw
index.gradle
hosted with ❤ by GitHub

SampleTest.javaは今回は次のように記述しました。03.基本的なテストコードの書き方 – hifiveのままですが、Dockerで立ち上がるChromeは英語版になっていますので、アクセス先を日本語版指定としています。

import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.*;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.htmlhifive.pitalium.core.PtlTestBase;
public class SampleTest extends PtlTestBase {
@Test
public void test() throws Exception {
// 1. hifiveサイトのトップページを開きます
driver.get("http://www.htmlhifive.com/conts/web/view/Main/?language=ja");
// 2. hifiveサイトのトップページのスクリーンショットを撮影します
assertionView.assertView("OpenhifiveTopPage");
// 3. "#about" に表示されているタイトルが正しいことをチェックします
WebElement about = driver.findElementById("about");
WebElement title = about.findElement(By.tagName("h2"));
assertThat(title.getText(), is("hifiveとは"));
}
@Test
public void testClickAndCapture() throws Exception {
// 1. hifiveサイトのトップページを開きます
driver.get("http://www.htmlhifive.com/conts/web/view/Main/?language=ja");
// 2. hifiveサイトのトップページのスクリーンショットを撮影します。
assertionView.assertView("OpenhifiveTopPage");
// 3. "過去のお知らせ一覧" ボタン要素を取得してクリックします。
WebElement infoHistoryButton = driver.findElementByCssSelector("#news a.btn");
infoHistoryButton.click();
// 4. ページ遷移後のスクリーンショットを撮影します。
assertionView.assertView("OpenNewsListPage");
}
}

view raw
index.java
hosted with ❤ by GitHub

実行する

後はテストを実行するだけです。

$ gradle test

view raw
index.sh
hosted with ❤ by GitHub

しばらく待つと結果が表示されます。

$ gradle test
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
BUILD SUCCESSFUL
Total time: 1 mins 11.666 secs

view raw
index.
hosted with ❤ by GitHub

そしてJUnitのファイルも生成されています。

Pitaliumのテストファイルも生成され、スクリーンショットも保存されています。


Dockerコンテナイメージがダウンロードできるまでに若干の時間がかかりますが、それさえ終われば環境を整えるのはとても簡単です。ぜひPitaliumを使ってWebブラウザベースのビジュアルテスティングを推進してください!

Pitalium(hifiveリグレッションテストライブラリ) – hifive

From → テスト, hifive

コメントは受け付けていません。

%d人のブロガーが「いいね」をつけました。