Android WebDriverブラウザ自動テストツールの紹介
5621 ワード
Selenium WebDriverはブラウザの自動テストツールであり、Webアプリケーションをテストするための軽量レベルと優雅な方法を提供しています.Selenium WebDriverはAndroid SDK extraとして、Android 2.3(Gb)および前向きバージョンをサポートしています.
WebDriverはエンドツーエンドのテストであり、ユーザーの行動を実際にテストすることができ、ユーザーのインタラクション、例えばタッチ、指のスクロール、長押しなど、HTML 5のいくつかの特性をサポートし、例えばローカルストレージ、sessionストレージ、アプリケーションキャッシュなどである.これらのテストは、Junitに基づくAndroid tests projectの一部として使用される.Eclipseからロードまたはコマンドラインを介して実行できます.WebDriverは、携帯電話、タブレット、タブレットシミュレータ、または実際のデバイスで動作します.起動すると、WebDriverはAndroidブラウザのようなWebView構成を開き、テストを実行します.
WebDriverはAndroid SDK extraで、これらの指導でインストールできます.Sleniumサイトにもユーザーガイドがあります.
以下に簡単な例を添付します.
Androidプロジェクトを作成し、レイアウトのない空のActivityを含む.
Androidテストプロジェクトを作成します.WebDriverはWebViewを作成し、メインActivityでレイアウトを自動的に設定します.次はAndroidでGoogleのトップページを開き、「ロサンゼルスの天気」を調べます.Googleが検索結果を返し、最初の結果が答えを返すことをテストします.
このActivityは画面にWebViewを表示し、テストコードが実行されるとWebアプリケーションを見ることができます.
次はインタラクティブテストです.
WebDriverは、水平軽弾で1枚の画像を捨て、ライブラリ内の次の画像の表示を保証する高度なジェスチャーを作成してデバイスと対話することをサポートします.
画面を回転させ、画面に表示される画像のサイズを調整します.
バグを見つけて、簡単にスクリーンを切って、デバッグを助けることができます.
WebDriverはエンドツーエンドのテストであり、ユーザーの行動を実際にテストすることができ、ユーザーのインタラクション、例えばタッチ、指のスクロール、長押しなど、HTML 5のいくつかの特性をサポートし、例えばローカルストレージ、sessionストレージ、アプリケーションキャッシュなどである.これらのテストは、Junitに基づくAndroid tests projectの一部として使用される.Eclipseからロードまたはコマンドラインを介して実行できます.WebDriverは、携帯電話、タブレット、タブレットシミュレータ、または実際のデバイスで動作します.起動すると、WebDriverはAndroidブラウザのようなWebView構成を開き、テストを実行します.
WebDriverはAndroid SDK extraで、これらの指導でインストールできます.Sleniumサイトにもユーザーガイドがあります.
以下に簡単な例を添付します.
Androidプロジェクトを作成し、レイアウトのない空のActivityを含む.
1
public
class
SimpleAppActivity
extends
Activity {
2
@Override
3
public
void
onCreate(Bundle savedInstanceState) {
4
super
.onCreate(savedInstanceState);
5
}
6
}
Androidテストプロジェクトを作成します.WebDriverはWebViewを作成し、メインActivityでレイアウトを自動的に設定します.次はAndroidでGoogleのトップページを開き、「ロサンゼルスの天気」を調べます.Googleが検索結果を返し、最初の結果が答えを返すことをテストします.
01
public
class
SimpleGoogleTest
extends
ActivityInstrumentationTestCase2<SimpleAppActivity> {
02
03
public
void
testGoogleShouldWork() {
04
// Create a WebDriver instance with the activity in which we want the test to run
05
WebDriver driver =
new
AndroidDriver(getActivity());
06
// Let’s open a web page
07
driver.get(
"http://www.google.com"
);
08
09
// Lookup for the search box by its name
10
WebElement searchBox = driver.findElement(By.name(
"q"
));
11
12
// Enter a search query and submit
13
searchBox.sendKeys(
"weather in san francisco"
);
14
searchBox.submit();
15
16
// Making sure that Google shows 11 results
17
WebElement resultSection = driver.findElement(By.id(
"ires"
));
18
List<WebElement> searchResults = resultSection.findElements(By.tagName(
"li"
));
19
assertEquals(
11
, searchResults.size());
20
21
// Let’s ensure that the first result shown is the weather widget
22
WebElement weatherWidget = searchResults.get(
0
);
23
assertTrue(weatherWidget.getText().contains(
"Weather for San Francisco, CA"
));
24
}
25
}
このActivityは画面にWebViewを表示し、テストコードが実行されるとWebアプリケーションを見ることができます.
次はインタラクティブテストです.
WebDriverは、水平軽弾で1枚の画像を捨て、ライブラリ内の次の画像の表示を保証する高度なジェスチャーを作成してデバイスと対話することをサポートします.
1
WebElement toFlick = driver.findElement(By.id(
"image"
));
2
// 400 pixels left at normal speed
3
Action flick = getBuilder(driver).flick(toFlick,
0
, -
400
, FlickAction.SPEED_NORMAL)
4
.build();
5
flick.perform();
6
WebElement secondImage = driver.findElement(“secondImage”);
7
assertTrue(secondImage.isDisplayed());
画面を回転させ、画面に表示される画像のサイズを調整します.
1
assertEquals(landscapeSize, secondImage.getSize())
2
((Rotatable) driver).rotate(ScreenOrientation.PORTRAIT);
3
assertEquals(portraitSize, secondImage.getSize());
バグを見つけて、簡単にスクリーンを切って、デバッグを助けることができます.
1
File tempFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);