Remote TestKitとWebDriverの連携

概要

テスト自動化ツールであるWebDrvierをRemote TestKit経由でもご利用いただけます。
Selenium WebDriverとはWebアプリケーションのテストフレームワークであり、このフレームワークとRemoteTestKitを組み合わせれば、様々な端末でWebアプリケーションの自動テストを行うことができます。
※本機能を利用いただくにはPC上にadbの設定がされている必要があります。
なお、特に指定のない場合、「コマンドラインツール」とは、Windowsならば「コマンドプロンプト」Macならば「ターミナル」を指します。

テストコードの準備

テストコードを準備します。WebDriverを使ったテストを作成する場合、JUnitにWebDriverを組み込むなどして直接テストを書く以外に、SeleniumIDESelenium Builderなどを使用して実際のブラウザ操作からテストを作成し、気軽に試してみることもできます。
※サイトによっては同じスマートフォンでもユーザーエージェントを細かく見てレスポンスを変えることがあるため、FireMobileSimulatorUserAgentSwitcherなどを併用すると良いかもしれません。


chrome設定

※SeleniumBuilderを使ってブラウザの操作を記録している様子

WebDriverのダウンロード

Selenium本家サイト http://docs.seleniumhq.org/download/ の「Mobile Devices」にあるAndroid版をダウンロードします。 ※本記事作成時のファイル名は「android-server-2.21.0.apk」となっていました。


chrome設定

Remote TestKitで端末をレンタル・設定

Remote TestKitで任意の端末をレンタル・起動してから「端末の操作」を参考に、端末ウィンドウより[有効機能 - ADT・DDMS・adb]メニューを選択し、ADT・DDMS・adb連携を有効化します。
コマンドラインツールを起動し、以下のコマンドを入力して接続している端末のデバイスIDを取得します。

adb devices

デバイスIDは以下のように返ってきます。下記の場合、デバイスIDは「samsung_i9500_galaxy_s4.appkitbox.com:50037」になります。

adb devices List of devices attached samsung_i9500_galaxy_s4.appkitbox.com:50037 device

次にポートフォワードを行うため、以下のコマンドを入力します。

adb -s [deviceID] forward tcp:8080 tcp:8080

WebDriverのインストール

レンタルしている端末にRemote TestKitまたはadbコマンド経由でWebDriverをインストールします。
※Remote TestKit経由の場合、端末ウィンドウより[編集 - アプリをインストール]をクリックし、「android-server-2.21.0.apk」(本記事作成時のバージョン)を選択してインストールします。


PCからテスト実行

「テストコードの準備」で用意したテストを実行すると、起動している端末でテストが走り始めます。

※SeleniumBuilderの場合、メニューから「Run」→「Run on Selenium Server」を選択し、Host:portを「localhost:8080」、Browser Stringを「android」として実行します。


config selenium builder


実行すると、レンタルしている端末中でテスト内容が実行されます。


run test

※本情報は掲載時点の情報となります