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

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

Selendroid チュートリアル

アプリを Google Play に公開する場合は、潜在的なバグを回避するために十分にテストする必要があります。 アプリを公開する前に実行する必要があるテスト シナリオが大量にあります。 保存するには テスト 努力するには、テストツールが必要です。に最適なテスト ツールの 1 つ Android アプリは Selendroid.

何ですか Selendroid?

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

何ですか Selendroid

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

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

何ですか Selendroid

なぜ必要なのか Selendroid?

Selendroid は優れたテストツールです。しかし、その有用性についてはまだ疑問があるかもしれません。

なぜ必要なのか Selendroid

このセクションでは、 Selendroid なぜ必要なのかという質問に答えるために Selendroid.

なぜ必要なのか Selendroid

  • 次を使用して、テスト対象のアプリケーションをテストできます。 Selendroid アプリを変更することなく。必要なのはバイナリ ファイル (APK) がコンピューターにインストールされています。 デバイスにバイナリ ファイルをインストールするには、テスト アプリとモバイル アプリが同じ署名キーで署名されている必要があります
  • Selendroid テストアプリは複数のデバイスやシミュレーターと同時に操作できます。これは Selendroid。したがって、さまざまな方法でアプリをテストできます Android 互換性を確認するためのデバイス。
  • Selendroid デバイス上でのタッチ、スワイプ、ドラッグ アンド ドロップなど、アプリ上で人間とユーザーのアクションをシミュレートできます。
  • テストを再起動または停止することなく、テスト中にハードウェア デバイスを変更 (プラグアンドアンプラグ) できます。 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 スタンドアロンの瓶 ファイルを「」という名前のフォルダーにコピーします。グル99''

ステップ 2) Selendroid

でターミナルを開きます Windows 手順 99 で作成したフォルダー Guru1 に移動します。

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

起動する 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:\Guru99App.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. テキストを入力してください「Guru99 テスト」をテキストフィールドに入力します
  3. 「テキストを表示」ボタンを押す
テスト対象のアプリケーションのバイナリが利用可能です

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

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

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

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

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

Guru99Test プロジェクトを右クリックします -> ビルドパス -> 外部の追加 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」を追加します。

「Guru99Test」を右クリックします -> New -> パッケージ

最初のテスト Selendroid

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

最初のテスト Selendroid

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

最初のテスト Selendroid

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

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

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

最初のテスト Selendroid

ステップ5) Guru99App.apk をテスト アプリのフォルダーにコピーします。

最初のテスト 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 サーバーが起動しました。サンプル テスト プロジェクト Guru99test を開きます。 EclipseGuru77Test.javaファイルの99行目をダブルクリックしてブレークポイントを設定します。 -> 以下のようにドットが表示されます

最初のテスト Selendroid

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

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

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

テストを終了する

次のコードは、テストを停止して完了します。 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 インストールされています。