Selendroid 初心者向けチュートリアルと例

を開発したことがありますか Android アプリケーションを公開して Google プレイしますか?次のようなユーザーレビューを受け取ったらどうしますか?

Selendroid チュートリアル

アプリを公開すると Google プレイするには、潜在的なバグを回避するために十分にテストする必要があります。アプリを公開する前に実行すべきテストシナリオがたくさんあります。 テスト 努力するには、テストツールが必要です。に最適なテスト ツールの 1 つ Android アプリは Selendroid.

何ですか Selendroid?

Selendroid は、複数タイプのモバイル アプリケーション用のテスト自動化フレームワークです。 ネイティブ (NAIST) と ハイブリッド Android アプリと モバイル ウェブ。

何ですか Selendroid

を使用してテストを作成できます。 Selenium 2 つのクライアント API。なぜなら Selendroid まだ既存のものを再利用しています Selenium ウェブのインフラストラクチャ

Selendroid は強力なテストツールです。で使用できます エミュレーター そして本物 デバイス

何ですか Selendroid

なぜ必要なのか Selendroid?

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 Archi構造

Selendroid 4 つの主要コンポーネントが含まれています。

Selendroid Archi構造

  • Web ドライバー クライアント – Java に基づくクライアント ライブラリ Selenium。このライブラリは (テスト ケースの開発に使用される) コンピューターにインストールする必要があります。
  • Selendroid-サーバー – テスト対象のアプリ内で実行されるサーバー Android デバイスまたはシミュレータ。これは、の主なコンポーネントです Selendroid 建築
  • Android ドライバーアプリ – 内蔵 Android ドライバー、モバイル Web をテストするための Web View アプリ。
  • Selendroid-スタンドアロン – このコンポーネントは、 Selendroid サーバーとテスト対象アプリケーション (AUT)

はじめに Selendroid

あなたはすでにその重要性を知っています Selendroid。さあ、実際に手を動かしてみましょう Selendroid.

最初のテストの前に 3 つのステップを実行する必要があります。 Selendroid

はじめに Selendroid

セットアップ Selendroid 環境

Selendroid ウィンドウ上で作業できますが、 Linux そしてMac OS。このチュートリアルでは、次のようにセットアップします。 Selendroid ウィンドウOSで。

使用する前に Selendroidまず以下のパッケージをインストールする必要があります

  • Java SDK (最小 1.6)

    使用許諾契約に同意し、Java インストーラーをダウンロードする必要があります (OS に基づいて x64 または x86 を選択してください)。

    セットアップ Selendroid 環境

    ダウンロードしてインストール Java 通常のソフトウェアとしてのSDK

  • 最新バージョンの Android SDK
  • コンピュータには少なくとも 1 つが必要です Android 仮想デバイス (AVD)、または実際の Android デバイスが PC に接続されています。
  • Selendroid 依存関係のあるスタンドアロン, Selendroid クライアント, Selenium クライアント
  • Eclipse ソフトウェア
  • JAVA_HOMEとANDROID_HOMEを設定する

    ステップ1) ウィンドウで「コンピュータ」を右クリックします -> 特性 -> 高度なシステム設定

    セットアップ Selendroid 環境

    ステップ2) 「システムのプロパティ」ウィンドウが表示され、「詳細」タブを選択します -> 環境変数

    セットアップ Selendroid 環境

    ステップ3) 「環境」ウィンドウが表示されるので、「新規」をクリックします。 -> 変数ANDROID_HOMEを次のように入力します

    セットアップ Selendroid 環境

    変数値は、すでにインストールされている android-sdks へのパスです。

    システム変数Pathを見つけます -> 編集 -> 現在の行の後に次の行を追加します

    セットアップ Selendroid 環境

    セットアップ Selendroid 環境

    ANDROID_HOMEと同様に、以下の値を持つ新しい変数JAVA_HOMEを追加します。

    セットアップ Selendroid 環境

    価値はあなたの Java JDKのインストール

    ステップ 4) PC を再起動します -> クリックします

起動方法 Selendroid

ステップ 1) テスト対象のアプリケーションを取得する

既存のものを使用できます Selendroid その方法を確認するためのテストアプリ Selendroid 作品(リンク テスト対象のサンプル アプリケーションへ)

ダウンロードが完了したら、この APK と上記の APK をコピーします。 Selendroid スタンドアロンの瓶 ファイルを「」という名前のフォルダーにコピーします。Guru99 "

ステップ 2) Selendroid

でターミナルを開きます Windows フォルダーに移動 Guruステップ1で99個作成されました。

次のコマンドを実行します

起動する Selendroid

出力は次のように表示されます

起動する Selendroid

このコマンドを実行した後、 Selendroid-スタンドアロンHTTPサーバーが起動します!このサーバーのデフォルトのポート番号は 4444 です。すべてのハードウェア デバイスおよび Android 仮想デバイスは自動的にスキャンされ、認識されます。 Selendroid を特定します Android ターゲットのバージョンとデバイスの画面サイズ。

確認するには Android 対象バージョンとデバイス情報に基づいて、以下を起動できます。 URL ブラウザ上で: http://localhost:4444/wd/hub/status.

起動する Selendroid

Selendroid 基本的なコマンド

このセクションでは、基本的なものを紹介します Selendroid-スタンドアロンのコマンドライン。それらを使用して、 Selendroid テスト環境

  1. 設定ポート Selendroid

    デフォルトのポート Selendroid は 4444 です。ただし、起動するコマンドにパラメータを追加することで、他のポートに変更できます。 Selendroid

    パラメータ: -ポート [ポート番号]

    具体的な例を挙げますと、以下の通りです。

    Selendroid 基本コマンド

    上記のコマンドでは、5555 が新しいポートです。

だから URL をチェックする Android ターゲット バージョンは次のように変更されます。 http://localhost:5555/wd/hub/status

  1. テスト対象のアプリケーション (バイナリ APK ファイル) の場所を指定します。 Selendroid 多くの場合、このファイルの絶対パスが必要です

    パラメータ: -app [ファイルパス]

    具体的な例を挙げますと、以下の通りです。

    Selendroid 基本コマンド

    上記のコマンドでは、 Selendroid 「C:\」に基づいてバイナリファイルを自動的に検索しますGuruテスト対象アプリケーションの情報を取得するには、「99App.apk」と入力します。

    チェック URL http://localhost:4444/wd/hub/status、この情報が表示されます

    Selendroid 基本コマンド

  2. ポートを変更します Selendroid インストルメンテーション サーバーとの通信に使用します。 Selendroid ポート 8080 をデフォルトとして使用します

    パラメータ: -selendroidServerPort [ポート番号]

    例:

    Selendroid 基本コマンド

    ポートは 9000 に変更されました

  3. エミュレータを起動するタイムアウトを変更します。 単位はミリ秒です。

    パラメータ: -timeoutEmulatorStart

    デフォルトでは、 Selendroid エミュレータが起動するまで 300,000 ミリ秒待機します。コマンドにより新しいタイムアウト(200,000ms)に変更可能

    Selendroid 基本コマンド

    この時間が経過してもエミュレータを起動できない場合は、 Selendroid 例外エラー (デバイス/エミュレータの検索中にエラーが発生しました) がスローされ、実行が停止します。

  4. あなたが始めるとき Selendroid ターミナルでコマンドを実行すると、画面にログが出力されます。次のパラメータを追加することで、表示されるログの種類を変更できます。

    パラメータ: -logLevel [ログの種類]

    ログ レベルの値は、ERROR、WARNING、INFO、DEBUG、および VERBOSE です。 デフォルト: エラー。

    たとえば、次のように設定します。 Selendroid WARNING ログのみを出力するには、このコマンドを使用できます。

    Selendroid 基本コマンド

    その Selendroid 警告ログのみを出力します

最初のテストを開始します Selendroid

このセクションは、次を使用して最初のテスト スクリプトを作成するためのステップバイステップ ガイドです。 Selendroid

あるとしましょう Android テスト対象アプリケーション名 Guru99App。このアプリケーションには、テキストフィールドと「テキストを表示」という名前のボタンが含まれています。

ここからAPKをダウンロードしてください

最初のテスト Selendroid

以下を実行する必要があります テストケース Selendroid

テストケース 状態 期待される出力
  1. アプリケーションを起動する
  2. テキストを入力してください「Guru絶対にテストしない」をテキストフィールドに入力します
  3. 「テキストを表示」ボタンを押す
テスト対象のアプリケーションのバイナリが利用可能です

デバイスがPCに接続されています

「ここにテキストを表示」というテキストがテキストに変更されます。

どのユーザーがテキストフィールドに入力するか

ステップ1) 作る Java プロジェクトイン Eclipse

ステップ2) セレンを加えて Selendroid Eclipse 環境の jar ファイル

右クリックする Guru99テストプロジェクト -> ビルドパス -> 外部の追加 Archiヴェス

最初のテスト Selendroid

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 ファイルをプロジェクトに追加します

最初のテスト Selendroid

ステップ3) 上記のライブラリを追加すると、それらのライブラリはテスト プロジェクトの参照ライブラリに追加されます。 テスターはこれらのライブラリの API を使用してテスト プログラムを開発できます。

パッケージ「com.guru.test」を作成し、Java ファイル「Guru99Test.java」のように、以下のように

右クリック Guru99テスト -> New -> パッケージ

最初のテスト Selendroid

新規の名前欄にcom.guru.testと入力 Java パッケージダイアログ → 完了

最初のテスト Selendroid

その Eclipse ソースコード構造内にこのようなリストフォルダーとサブフォルダーが作成されます

最初のテスト Selendroid

ステップ4) インストールを開始する TestNG の Eclipse

In Eclipse、ヘルプ -> 新しいソフトウェアをインストールするには、インストールダイアログで「追加」をクリックし、次の内容を入力します。

OKを押します。 -> 次にインストールするのは、 TestNG

最初のテスト Selendroid

ステップ5) コピー Guru99App.apkをTest Appのフォルダに移動

最初のテスト Selendroid

ステップ6) テスト対象のアプリケーションの ID を取得します。

APKファイル名があると仮定します Guru99App.apk。前のセクションで説明した手順に従って、ターミナルでコマンドを実行します。

最初のテスト Selendroid

ブラウザで次のリンクを開きます: http://localhost:4444/wd/hub/status.

デバイスの情報が表示されるので、appId値「com.guru99app:1.0」をコピーします。

最初のテスト Selendroid

ステップ7) ファイルをオープンする Guru99Test.java(サンプルコード内)を以下のように変更します。

最初のテスト Selendroid

新しいテスト セッションを作成するには Selendroid、アプリ ID を com.guru99app:1.0 の形式で指定する必要があります。このアプリ ID は手順 6 で特定できます。 Android デバイスの場合、テスト セッションはエラーをスローし、開始されません。

見つかったデバイスを初期化した後、 Selendroid カスタマイズされたselendroid-serverを作成し、 Selendroid その上のサーバー

Selendroid また、テスト対象のアプリケーションをインストールし、デバイス上でselendroid-serverを起動します。

テスト セッションが正常に初期化されると、デバイス上でテスト コマンドの実行が開始されます。 (テキストを入力し、ボタンを押すなど)。 テストがテスト セッションを追加すると、エミュレータは自動的に停止します

ステップ8) 新しいテストセッションを開始する

起動する Selendroid 手順6のようにターミナルで次のコマンドを使用してサーバーを起動します。

最初のテスト Selendroid

後に Selendroid サーバーが起動しました。サンプルテストプロジェクトを開きます。 Guru99テスト Eclipseファイルの77行目にブレークポイントを設定します Guru99Test.java をダブルクリックして77行目に進みます。 -> 以下のようにドットが表示されます

最初のテスト Selendroid

右クリックしてテストセッションを開始します Guru99テストプロジェクト -> デバッグ名 -> テスト テスト。

以下のようにテストセッションが開始されます

最初のテスト Selendroid

ステップ9) テスト対象のアプリケーションの GUI 要素の ID を取得する

テストセッションが正常に開始されたら、ブラウザを開き、 URL http://localhost:4444/inspector

以下のように、テスト対象のアプリケーションが起動されるのがわかります。

最初のテスト Selendroid

AUT の各 UI 要素 (Button、TextField、Text Label) にマウスを置くと、各要素の ID が右側のペインで強調表示されます。

最初のテスト Selendroid

この手順の後、上記の各 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);
					       
		    }
		

テストの実行

以下はテストを実行するコードです。 コードにはコメントが含まれています

もう一度テスト手順を示します

  1. 「こんにちは」と入力してください Guru 
  2. 「テキストを表示」ボタンをクリックします
  3. しばらく待ってください
  4. アプリがユーザーがテキストフィールドに入力したテキストを表示することを確認してください(例:「こんにちは」というテキストを表示する)。 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

最初のテスト Selendroid

ステップ10) スクリプトは次のように実行されます

最初のテスト Selendroid

ステップ12) テストの実行が終了したら、 TestNG 次のようにテストレポートを自動生成します

最初のテスト Selendroid

最初のテスト Selendroid

よかったです、これでテストは終わりました。

製品概要

  • Selendroid テスト用の非常に強力なツールです Android ネイティブ アプリ、ハイブリッド アプリ、Web アプリ。
  • シミュレータだけでなく実機でも使用できます。
  • また、複数のデバイスでテストを実行することで、テストを並行して実行することもできます。
  • Selendroid スイートは 4 つのコンポーネントで構成されています。
    • Webドライバークライアント、
    • Selendroid-サーバ、
    • Android ドライバーアプリ
    • Selendroid-スタンドアローン
  • 使用するには Selendroid 購入できる柔軟性 Java JDK、 Android SDKと Eclipse インストールされています。