Pitaliumで特定のDOMを指定/除外してテストを実行する
画面のテスト(リグレッションテスト)を行う上で、画面上の特定の部分についてテストを行いたかったり、逆にテストから省きたいと思うことがあるでしょう。そんな時のためのテクニックを紹介します。
特定のDOMだけターゲットにする
特定のDOMをターゲットとする場合はCompareTargetを使います。下記はその一例で、 #about をターゲットとした場合のコードです。
@Test
public void testCompareTarget_ID() throws Exception {
// 1. hifiveサイトのトップページを開きます。
driver.get(“https://www.htmlhifive.com/”);// 2. ID: aboutの比較対象をScreenshotArgumentBuilderで作成します。
ScreenshotArgument arg = ScreenshotArgument.builder(“TopPageAbout”)
.addNewTarget(SelectorType.ID, “about”)
.build();
public void testCompareTarget_ID() throws Exception {
// 1. hifiveサイトのトップページを開きます。
driver.get(“https://www.htmlhifive.com/”);// 2. ID: aboutの比較対象をScreenshotArgumentBuilderで作成します。
ScreenshotArgument arg = ScreenshotArgument.builder(“TopPageAbout”)
.addNewTarget(SelectorType.ID, “about”)
.build();
// 3. 検証を実行します。
assertionView.assertView(arg);
}
SelectorType.IDとなっていますが、これはSelenium APIのByと同じ指定ができます。そのためCLASS_NAMEやCSS_SELECTOR、TAG_NAME、XPATHなども利用できます。
このテストを実行すると、下のような画像が生成され、Webページの一部のDOMだけをターゲットとした比較ができます。
特定のDOMを除外してテストする
逆にDOMを除外する場合としては、タイミングによって違う文字を出すものであったり(カウンターなど)、スクロール時に表示されるBack to Topなどが考えられます。
コードは次のようになります。excludesとしてDOMの場所を指定し、それをCompareTargetで指定しています。
画面周りの動きは複雑で、カルーセルのような動きやAjaxによる操作など多数存在します。Pitaliumを使って柔軟なテストケースを作成してください。
コメントは受け付けていません。