Selendroid 初心者向けチュートリアルと例
を開発したことがありますか Android アプリケーションを公開して Google プレイしますか?次のようなユーザーレビューを受け取ったらどうしますか?
アプリを公開すると Google プレイするには、潜在的なバグを回避するために十分にテストする必要があります。アプリを公開する前に実行すべきテストシナリオがたくさんあります。 テスト 努力するには、テストツールが必要です。に最適なテスト ツールの 1 つ Android アプリは Selendroid.
何ですか Selendroid?
Selendroid は、複数タイプのモバイル アプリケーション用のテスト自動化フレームワークです。 ネイティブ (NAIST) と ハイブリッド Android アプリと モバイル ウェブ。
を使用してテストを作成できます。 Selenium 2 つのクライアント API。なぜなら Selendroid まだ既存のものを再利用しています Selenium ウェブのインフラストラクチャ
Selendroid は強力なテストツールです。で使用できます エミュレーター そして本物 デバイス
なぜ必要なのか Selendroid?
Selendroid は優れたテストツールです。しかし、その有用性についてはまだ疑問があるかもしれません。
このセクションでは、 Selendroid なぜ必要なのかという質問に答えるために Selendroid.
- 次を使用して、テスト対象のアプリケーションをテストできます。 Selendroid アプリを変更することなく。必要なのはバイナリ ファイル (APK) がコンピューターにインストールされています。 デバイスにバイナリ ファイルをインストールするには、テスト アプリとモバイル アプリが同じ署名キーで署名されている必要があります
- Selendroid テストアプリは複数のデバイスやシミュレーターと同時に操作できます。これは Selendroid。したがって、さまざまな方法でアプリをテストできます Android 互換性を確認するためのデバイス。
- Selendroid デバイス上でのタッチ、スワイプ、ドラッグ アンド ドロップなど、アプリ上で人間とユーザーのアクションをシミュレートできます。
- テスト中にハードウェアデバイスを交換(抜き差し)しても、再起動や停止は不要です。ping テスト。 Selendroid 新しいデバイスを自動的に認識します
- に対応する Android APIのバージョンアップ、 Selendroid 新しいもサポートします Android API (API 10 から API 19 まで)
- Selendroid には、テスト対象のアプリケーションの UI 要素を識別するのに役立つインスペクター ツールも組み込まれています。たとえば、ID ボタン、テキスト フィールド、テキスト ビューなどです。
Selendroid Archi構造
Selendroid に基づいている Android インスツルメンテーションフレームワーク. Selendroid テストはそれに基づいて書かれています Selenium Web ドライバー クライアント API なので、現在のドライバーとの完全な統合をサポートします。 Selenium フレームワーク。
次の図は、 Selendroid
Selendroid 4 つの主要コンポーネントが含まれています。
- Web ドライバー クライアント – Java に基づくクライアント ライブラリ Selenium。このライブラリは (テスト ケースの開発に使用される) コンピューターにインストールする必要があります。
- Selendroid-サーバー – テスト対象のアプリ内で実行されるサーバー Android デバイスまたはシミュレータ。これは、の主なコンポーネントです Selendroid 建築
- Android ドライバーアプリ – 内蔵 Android ドライバー、モバイル Web をテストするための Web View アプリ。
- Selendroid-スタンドアロン – このコンポーネントは、 Selendroid サーバーとテスト対象アプリケーション (AUT)
はじめに Selendroid
あなたはすでにその重要性を知っています Selendroid。さあ、実際に手を動かしてみましょう Selendroid.
最初のテストの前に 3 つのステップを実行する必要があります。 Selendroid
セットアップ Selendroid 環境
Selendroid ウィンドウ上で作業できますが、 Linux そしてMac OS。このチュートリアルでは、次のようにセットアップします。 Selendroid ウィンドウOSで。
使用する前に Selendroidまず以下のパッケージをインストールする必要があります
- Java SDK (最小 1.6)
使用許諾契約に同意し、Java インストーラーをダウンロードする必要があります (OS に基づいて x64 または x86 を選択してください)。
ダウンロードしてインストール Java 通常のソフトウェアとしてのSDK
- 最新バージョンの Android SDK
- コンピュータには少なくとも 1 つが必要です Android 仮想デバイス (AVD)、または実際の Android デバイスが PC に接続されています。
- Selendroid 依存関係のあるスタンドアロン, Selendroid クライアント, Selenium クライアント
- Eclipse ソフトウェア
- JAVA_HOMEとANDROID_HOMEを設定する
ステップ1) ウィンドウで「コンピュータ」を右クリックします -> 特性 -> 高度なシステム設定
ステップ2) 「システムのプロパティ」ウィンドウが表示され、「詳細」タブを選択します -> 環境変数
ステップ3) 「環境」ウィンドウが表示されるので、「新規」をクリックします。 -> 変数ANDROID_HOMEを次のように入力します
変数値は、すでにインストールされている android-sdks へのパスです。
システム変数Pathを見つけます -> 編集 -> 現在の行の後に次の行を追加します
ANDROID_HOMEと同様に、以下の値を持つ新しい変数JAVA_HOMEを追加します。
価値はあなたの Java JDKのインストール
ステップ 4) PC を再起動します -> クリックします
起動方法 Selendroid
ステップ 1) テスト対象のアプリケーションを取得する
既存のものを使用できます Selendroid その方法を確認するためのテストアプリ Selendroid 作品(リンク テスト対象のサンプル アプリケーションへ)
ダウンロードが完了したら、この APK と上記の APK をコピーします。 Selendroid スタンドアロンの瓶 ファイルを「」という名前のフォルダーにコピーします。Guru99 "
ステップ 2) Selendroid
でターミナルを開きます Windows フォルダーに移動 Guruステップ1で99個作成されました。
次のコマンドを実行します
出力は次のように表示されます
このコマンドを実行した後、 Selendroid-スタンドアロンHTTPサーバーが起動します!このサーバーのデフォルトのポート番号は 4444 です。すべてのハードウェア デバイスおよび Android 仮想デバイスは自動的にスキャンされ、認識されます。 Selendroid を特定します Android ターゲットのバージョンとデバイスの画面サイズ。
確認するには Android 対象バージョンとデバイス情報に基づいて、以下を起動できます。 URL ブラウザ上で: http://localhost:4444/wd/hub/status.
Selendroid 基本的なコマンド
このセクションでは、基本的なものを紹介します Selendroid-スタンドアロンのコマンドライン。それらを使用して、 Selendroid テスト環境
- 設定ポート Selendroid
デフォルトのポート Selendroid は 4444 です。ただし、起動するコマンドにパラメータを追加することで、他のポートに変更できます。 Selendroid
パラメータ: -ポート [ポート番号]
具体的な例を挙げますと、以下の通りです。
上記のコマンドでは、5555 が新しいポートです。
だから URL をチェックする Android ターゲット バージョンは次のように変更されます。 http://localhost:5555/wd/hub/status
- テスト対象のアプリケーション (バイナリ APK ファイル) の場所を指定します。 Selendroid 多くの場合、このファイルの絶対パスが必要です
パラメータ: -app [ファイルパス]
具体的な例を挙げますと、以下の通りです。
上記のコマンドでは、 Selendroid 「C:\」に基づいてバイナリファイルを自動的に検索しますGuruテスト対象アプリケーションの情報を取得するには、「99App.apk」と入力します。
チェック URL
http://localhost:4444/wd/hub/status、この情報が表示されます - ポートを変更します Selendroid インストルメンテーション サーバーとの通信に使用します。 Selendroid ポート 8080 をデフォルトとして使用します
パラメータ: -selendroidServerPort [ポート番号]
例:
ポートは 9000 に変更されました
- エミュレータを起動するタイムアウトを変更します。 単位はミリ秒です。
パラメータ: -timeoutEmulatorStart
デフォルトでは、 Selendroid エミュレータが起動するまで 300,000 ミリ秒待機します。コマンドにより新しいタイムアウト(200,000ms)に変更可能
この時間が経過してもエミュレータを起動できない場合は、 Selendroid 例外エラー (デバイス/エミュレータの検索中にエラーが発生しました) がスローされ、実行が停止します。
- あなたが始めるとき Selendroid ターミナルでコマンドを実行すると、画面にログが出力されます。次のパラメータを追加することで、表示されるログの種類を変更できます。
パラメータ: -logLevel [ログの種類]
ログ レベルの値は、ERROR、WARNING、INFO、DEBUG、および VERBOSE です。 デフォルト: エラー。
たとえば、次のように設定します。 Selendroid WARNING ログのみを出力するには、このコマンドを使用できます。
その Selendroid 警告ログのみを出力します
最初のテストを開始します Selendroid
このセクションは、次を使用して最初のテスト スクリプトを作成するためのステップバイステップ ガイドです。 Selendroid
あるとしましょう Android テスト対象アプリケーション名 Guru99App。このアプリケーションには、テキストフィールドと「テキストを表示」という名前のボタンが含まれています。
以下を実行する必要があります テストケース Selendroid
| テストケース | 状態 | 期待される出力 |
|---|---|---|
|
テスト対象のアプリケーションのバイナリが利用可能です
デバイスがPCに接続されています |
「ここにテキストを表示」というテキストがテキストに変更されます。
どのユーザーがテキストフィールドに入力するか |
ステップ1) 作る Java プロジェクトイン Eclipse
ステップ2) セレンを加えて Selendroid Eclipse 環境の jar ファイル
右クリックする Guru99テストプロジェクト -> ビルドパス -> 外部の追加 Archiヴェス
jar ファイルを保存したフォルダーに移動します。
3つのjarファイルを追加する必要があります
- selendroid-client-0.10.0.jar: Selendroid Javaクライアントライブラリ
- selendroid-standalone-0.11.0-依存関係あり: Selendroid スタンドアロンサーバーライブラリ
- セレン-java-2.40.0.jar: Selenium Webドライバーライブラリ
すべてを選択 -> 「開く」を選択して、jar ファイルをプロジェクトに追加します
ステップ3) 上記のライブラリを追加すると、それらのライブラリはテスト プロジェクトの参照ライブラリに追加されます。 テスターはこれらのライブラリの API を使用してテスト プログラムを開発できます。
パッケージ「com.guru.test」を作成し、Java ファイル「Guru99Test.java」のように、以下のように
右クリック Guru99テスト -> New -> パッケージ
新規の名前欄にcom.guru.testと入力 Java パッケージダイアログ → 完了
その Eclipse ソースコード構造内にこのようなリストフォルダーとサブフォルダーが作成されます
ステップ4) インストールを開始する TestNG の Eclipse
In Eclipse、ヘルプ -> 新しいソフトウェアをインストールするには、インストールダイアログで「追加」をクリックし、次の内容を入力します。
- 名前: TestNG
- 住所 https://github.com/selendroid/selendroid
OKを押します。 -> 次にインストールするのは、 TestNG
ステップ5) コピー Guru99App.apkをTest Appのフォルダに移動
ステップ6) テスト対象のアプリケーションの ID を取得します。
APKファイル名があると仮定します Guru99App.apk。前のセクションで説明した手順に従って、ターミナルでコマンドを実行します。
ブラウザで次のリンクを開きます: http://localhost:4444/wd/hub/status.
デバイスの情報が表示されるので、appId値「com.guru99app:1.0」をコピーします。
ステップ7) ファイルをオープンする Guru99Test.java(サンプルコード内)を以下のように変更します。
新しいテスト セッションを作成するには Selendroid、アプリ ID を com.guru99app:1.0 の形式で指定する必要があります。このアプリ ID は手順 6 で特定できます。 Android デバイスの場合、テスト セッションはエラーをスローし、開始されません。
見つかったデバイスを初期化した後、 Selendroid カスタマイズされたselendroid-serverを作成し、 Selendroid その上のサーバー
Selendroid また、テスト対象のアプリケーションをインストールし、デバイス上でselendroid-serverを起動します。
テスト セッションが正常に初期化されると、デバイス上でテスト コマンドの実行が開始されます。 (テキストを入力し、ボタンを押すなど)。 テストがテスト セッションを追加すると、エミュレータは自動的に停止します
ステップ8) 新しいテストセッションを開始する
起動する Selendroid 手順6のようにターミナルで次のコマンドを使用してサーバーを起動します。
後に Selendroid サーバーが起動しました。サンプルテストプロジェクトを開きます。 Guru99テスト Eclipseファイルの77行目にブレークポイントを設定します Guru99Test.java をダブルクリックして77行目に進みます。 -> 以下のようにドットが表示されます
右クリックしてテストセッションを開始します Guru99テストプロジェクト -> デバッグ名 -> テスト テスト。
以下のようにテストセッションが開始されます
ステップ9) テスト対象のアプリケーションの GUI 要素の ID を取得する
テストセッションが正常に開始されたら、ブラウザを開き、 URL http://localhost:4444/inspector
以下のように、テスト対象のアプリケーションが起動されるのがわかります。
AUT の各 UI 要素 (Button、TextField、Text Label) にマウスを置くと、各要素の ID が右側のペインで強調表示されます。
この手順の後、上記の各 UI 要素の ID を取得できます。
- ボタン表示テキスト ID: “btn表示
- テキストフィールドID: “edtテキスト
- ラベルテキストID:「txtビュー
これらの ID は次のステップで使用されます
ステップ10) 以下のようにテストプログラムを入力します
を使用したテストプログラム Selendroid 3つのセクションが含まれています
セットアップテスト:
以下はセットアップテストのコードです。テストセッションの条件を設定します。エラーが発生した場合は、 Selendroid 例外がスローされ、テスト アプリが停止します。
コードには、各ステートメントを説明するコメントが含まれています。
package com.guru.test;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import io.selendroid.device.DeviceTargetPlatform;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
/**
* @author Guru99 Test App using Selendroid
* Application under test: Guru99App
*
*/
public
class Guru99Test {
//Declare web driver variable
private WebDriver driver;
/**
* Setup the environment before testing
* @throws Exception
*/
@BeforeSuite
public
void setUp() throws Exception {
//Start selendroid-standalone during test
SelendroidConfiguration config = new SelendroidConfiguration();
// Add the selendroid-test-app to the standalone server
config.addSupportedApp("Guru99App.apk");
//start the standalone server
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
// Create the selendroid capabilities
SelendroidCapabilities capa = new SelendroidCapabilities();
// Specify to use selendroid's test app
capa.setAut("com.guru99app:1.0");
// Specify to use the Android device API 19
capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
// Don't request simulator, use real device
capa.setEmulator(false);
//capa.wait(10000000);
// Create instance of Selendroid Driver
driver = new SelendroidDriver(capa);
}
テストの実行
以下はテストを実行するコードです。 コードにはコメントが含まれています
もう一度テスト手順を示します
- 「こんにちは」と入力してください Guru
- 「テキストを表示」ボタンをクリックします
- しばらく待ってください
- アプリがユーザーがテキストフィールドに入力したテキストを表示することを確認してください(例:「こんにちは」というテキストを表示する)。 Guru")
/**
* Start execute the test case
* 01. Enter the text "Selendroid" to the textfield
* 02. Press OK button
* @throws Exception
*/
@Test
public
void selendroidTest() throws Exception {
// Print the log
System.out.print("Start executing test");
// Find the input text field on screen
// The id of this text field was get from step 9
WebElement inputField = driver.findElement(By.id("edtText"));
// Verify that the text field enabled so user can enter text
Assert.assertEquals("true", inputField.getAttribute("enabled"));
// Enter a text to text field
inputField.sendKeys("Hello Guru");
// click Show Text button
// The id of this button was get from step 9
WebElement button = driver.findElement(By.id("btnShow"));
button.click();
// Delay time to take effect
Thread.sleep(5000);
//Find the label "Text Show Here" on screen
// The id of this label was get from step 9
WebElement txtView = driver.findElement(By.id("txtView"));
//Get the text display on screen
String expected = txtView.getText();
// Verify that the text which user enter on text field is same as text display on screen
Assert.assertEquals(expected, inputField.getText());
}
テストを終了する
以下のコードは、停止することでテストを完了します。ping Selendroid ドライバ。
/**
* Stop the Selendroid driver
*
*/
@AfterSuite
public
void tearDown() {
driver.quit();
}
この記事に含まれるサンプル コードで詳細を確認できます。
ステップ10) つながり、 Android USB ケーブル経由でデバイスを PC に接続します。観察すべき点 –
- デバイスに画面ロックが設定されていないことを確認してください。
- デバイスは、selendroid-standalone コンポーネントが実行されているコンピューターに USB 経由で接続する必要があります。
- デバイスには少なくともインストールする必要があります Android Target バージョン API 10
ステップ11) テストアプリを実行する: 右クリック Guru99test -> 次のように実行 -> TestNG test
ステップ10) スクリプトは次のように実行されます
ステップ12) テストの実行が終了したら、 TestNG 次のようにテストレポートを自動生成します
よかったです、これでテストは終わりました。
製品概要
- Selendroid テスト用の非常に強力なツールです Android ネイティブ アプリ、ハイブリッド アプリ、Web アプリ。
- シミュレータだけでなく実機でも使用できます。
- また、複数のデバイスでテストを実行することで、テストを並行して実行することもできます。
- Selendroid スイートは 4 つのコンポーネントで構成されています。
- Webドライバークライアント、
- Selendroid-サーバ、
- Android ドライバーアプリ
- Selendroid-スタンドアローン
- 使用するには Selendroid 購入できる柔軟性 Java JDK、 Android SDKと Eclipse インストールされています。


































