selendroid tutorial android mobile test automation framework
Selendroidを使用したモバイルオートメーション(パートI):
これまで、Androidをプラットフォームとして使用して何百万ものアプリがすでに開発されており、その数は日々増え続けています。
キャッチは、すべてのアプリを検証する方法ですか?人的資源、実際のデバイス(モバイルなど)などの専用リソースが必要になるため、これも時間のかかる作業です。一方、Androidのバージョン、アプリケーション(.apk)のバージョン、デバイスのサイズなどは一定ではありません。
したがって、完全なテストスコープを定義できないため、テスト終了基準を定義することが非常に困難になり、正確なテスト作業量の見積もりを行うことができません。
デバイスの依存関係を克服するために、Androidのバージョン、デバイス、およびそれらのバージョンを気にせずにアプリケーションをテストできる、リアルタイムのような環境を提供できるエミュレーターが開発されています。ただし、エミュレーターを介したアプリケーション(.apk)のテストは、手動の作業であり、時間のかかる作業ですらあります。したがって、モバイルテストを自動化するというアイデアが進化しています。
モバイル自動化を実行するために、テスト自動化フレームワークが開発されています。これにより、スクリプト言語を使用してAndroidベースのアプリケーションを自動化できます。
Selendroid、Appium、Robotium、Espressoなど、開発された多くの自動化フレームワークがあります。
このチュートリアルは2つの部分に分かれています。
チュートリアル#1 : Selendroidの紹介:Androidモバイルテスト自動化フレームワーク
チュートリアル#2: Selendroidフレームワークを使用してモバイルアプリケーションを介したユーザーインタラクションを自動化する方法(近日公開)
学習内容:
セレンドロイドとは何ですか?
Selendroidは、いくつかの重要な機能を備えた素晴らしいAndroidモバイルアプリケーションテスト自動化フレームワークツールです。 Selendroidは、複数のデバイスと同時に対話できる非常に強力な自動化ツールであり、Selendroidを使用して変更や変更を加えることなくアプリケーションをテストできます。
とも呼ばれます 「SeleniumforAndroid」 ネイティブおよびハイブリッドモバイルアプリとモバイルウェブのテスト用。
なぜセレンドロイド?
- オープンソースです(無料で使用できます)
- スクリプト言語としてSeleniumをサポート
- Java、C#、PerlなどのWebドライバー互換言語をサポートします
- すべてのAndroidバージョンをサポート
- エミュレーターと実際のデバイスの両方で動作します
- ネイティブ、ハイブリッド、およびWebベースのアプリケーションで動作します
- ネイティブアプリケーションやクラウドベースのアプリケーションの実行中に効果的です。セレングリッドをサポートしているため
- オブジェクトプロパティを使用したオブジェクト認識をサポートします
- 実装が簡単
- ハードウェアデバイスは、テストを再開または停止することなく、テストの実行中にPCに接続したり、PCから取り外したりすることができます。 Selendroidは新しいデバイスを自動的に認識できます。この機能は「ホットプラグ」として知られています
Selendroidのシンプルなアーキテクチャ

セレンドロイドコンポーネント
Selendroid-クライアント
基本的には、Javaクライアントライブラリです。このコンポーネントから、HTTPおよびWebDriverリクエストがJSONを使用してSelendroidスタンドアロンサーバーに送信されます。
Selendroid-スタンドアロン
このコンポーネントは、Selendroidサーバーとテスト対象のアプリをインストールすることで、さまざまなデバイスと.apkを管理します。 Httpリクエスト(実際のデバイス/シミュレーターで実行される)は、Selendroidスタンドアロンサーバーからデバイスとテスト中のapkに送信されています。
Selendroid-サーバー
このサーバーは、テスト対象のアプリケーションとともにデバイス上で実行されます。サーバーとテスト対象のアプリケーションの間には双方向通信があります。
AndroidDriverApp
これは、組み込みのAndroidドライバーであり、モバイルWebをテストするためのWebViewアプリでもあります。
名前の付いた別のテストフレームワーク APPI Selendroidと同様に機能します。
これが両方の小さな比較です。
| 特徴 | セレンドロイド | appium |
|---|---|---|
| 下位Androidバージョンのサポート(<4.1) | はい | しない |
| ホットプラグ | はい | しない |
| ユーザーエージェントのテスト | しない | はい |
| iOSベースのアプリケーションのサポート | しない | はい |
| 環境要件 | Androidの場合-Mac、Linux、Windows(任意のバージョン) | iOSの場合– Mac OSX107。 Androidの場合– Windows 7以降、Linux、MacOSX107。 |
前提条件:
Chrome用の無料ポップアップブロッカー
対象読者は、セレン、EclipseなどのIDEツールの使用について十分に理解している必要があります。プログラミングの基本概念にはJava、Cなどがあり、Mavenやその他のテストツールの使用について知っている必要があります。
- Intel x86 Emulator Accelerator(必須ではありません)をインストールして、からシミュレーターを表示します。 ここに
- Java SDK、JREはすでにテスト環境にインストールされています。または、同じものをからダウンロードすることもできます ここに
インストール中にSDKパスを書き留めます。
マイコンピュータ上に存在する環境変数を設定します->右クリック->プロパティ->システム設定の詳細


- Eclipseはすでにマシンにインストールされています。そうでない場合は、同じものをダウンロードすることもできます ここに
- Seleniumjarファイルをダウンロードします。あなたは同じをダウンロードすることができます ここからも
- TestNGjarはすでにダウンロードされています
- ダウンロードしてインストールするAndroidSDK。同じものをからダウンロードすることもできます ここに
インストール中にAndroidSDKパスを書き留めます
ダウンロードしたら、ANDROID_HOMEを次の環境変数に設定する必要があります。
マイコンピュータ->右クリック->プロパティ->システム設定の詳細

- Selendroidjarファイルをダウンロードします。同じものをからダウンロードすることもできます ここに
覚えておいてください 上記の場所からSelendroidスタンドアロンjarファイルをダウンロードします。通常、名前はselendroid-standalone-0.9.0-with-dependencies.jarのようなものです。また、上記の場所からselendroid-test-app-0.8.0.apkという1つのサンプルAPKファイルをダウンロードします
注意:
- 使用することもできます Mavenリポジトリ すべてのjarへの参照を提供するか、手動でダウンロードしてビルドパスにアタッチする必要があります(Over Eclipse Project)
- デバイス/エミュレーター– Androidでは、インストールされているすべてのアプリケーションの拡張子が.apkになります。他の方法では、Androidデバイスにインストールされているアプリケーションのリストとその実際の名前、サイズなどを通知するAPK情報などのアプリをダウンロードできます。
環境設定
#1)適切な場所にインストールする必要があるAPKを保持します
私の場合、私はそれを維持しました G:\ Jars \ selendroid-test-app-0.8.0.apk
#2)次に、アプリケーションをプロジェクトフォルダに保存します
私の場合は 500: AppiumAutomation SelendroidFirst

#3)実デバイスをPCに接続する
USBデバッグモードが有効になっていることと、USB接続を介して外部アプリをインストールできることを確認してください。
チップ:
#4)Windowsでコマンドプロンプトを開く
Selendroidスタンドアロンjarとダウンロードされたapkファイルが存在するフォルダーに移動します。
同様のコマンドを指定し、コマンドプロンプトでEnterキーを押します
例えば。 java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
またはjava–jar selendroid-standalone-0.15.0-with-dependencies.jar
APKファイル: selendroid-test-app-0.8.0.apk
注意: 上記のコマンドを実行するときは、APKが署名されていることと、実際のデバイスがPCに接続されており、デバイス上でデバッグが有効になっていることを確認してください。
((注意:画像をクリックすると拡大表示されます)

コマンドプロンプトで次の点をチェックして、環境が自動化の準備ができていることを確認します。
- 「有効な番号でデバイスが指定されました」というメッセージを確認します
- 「サーバーはデフォルトのポートで開始されています(4444)…」というメッセージを確認します。
- 「セッションが作成されています…」というメッセージを確認します
繰り返しになりますが、サーバーが起動しているかどうかは、どのWebブラウザでも次のURLを使用していつでも再確認できます。
例えばhttp:// localhost:4444 / wd / hub / status

#5)APKの検査
- 実際のモバイルデバイスを接続することで、実際のアプリを使用できます
- ダウンロードしたオフラインAPKファイルを使用できます
Selendroid Inspectorは、APKのWeb要素のデバッグ/検査に役立ちます。
デバイスが識別されて起動されると、APKを(仮想モードで)表示し、参照を見つけることができます。これは、任意のWebブラウザーで次のURLを使用して、スクリプトの作成に役立ちます。
例えば: http:// localhost:4444 / inspector
ここに、テスト中のアプリケーションのスクリーンショットがあり、要素を検査する機能もあります。
または、いつでも使用できます uiautomatorviewer テスト対象のアプリケーションからオブジェクトを検索します。
このためのデフォルトのパスを以下に示します。
C: Users admin android-sdks tools
C: Users admin – これはAndroidSDKをインストールした場所ですが、インストール時に指定した場所によって異なる場合があります。

実際のデバイス上でAPKファイルを使用して最初のスクリプトを書く
目的:
- サーバーを起動します(デフォルトのポートでは4444と言います)
- セッションを作成する
- 接続された実デバイスにアプリケーション(.apkファイル)をインストールします
- 一部のデータを使用してテキストフィールドを自動化する
- ボタンを自動的にクリック
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); } 結論
Selendroidは非常に強力な自動化テストフレームワークツールであり、ネイティブ、ハイブリッド、および任意のAndroidデバイス上のWebアプリとシミュレーターをテストするために使用できます。
ホットプラグをサポートします。つまり、ユーザーは一度に複数のデバイスをテストできるため、複数のデバイス間で並列テストを実行できます。長押し、タッチアクションなどのさまざまな種類のインタラクションをサポートします…
それの唯一の複雑さは、他のフレームワークにもある環境設定です。正しくセットアップされると、スクリプトを問題なく実行できます。
にパート2このSelendoidチュートリアルでは、Selendroidフレームワークを使用してモバイルアプリケーションを介したユーザーインタラクションを自動化する方法について説明します。
次の記事では、 pCloudyハンズオンレビューチュートリアル。
推奨読書
- 初心者向けの詳細なEclipseチュートリアル
- SeeTest Automation Tutorial:Mobile Test Automation Tool Guide
- Javaコレクションフレームワーク(JCF)チュートリアル
- 例を含むJavaリフレクションチュートリアル
- Ranorexチュートリアル:強力なデスクトップ、Web、およびモバイル自動化テストツール
- AndroidおよびiOSモバイルアプリをテストするためのAppiumチュートリアル
- Selendroidを使用したモバイルアプリでのユーザーインタラクションの自動化(パート2)
- リアルタイムモバイルオートメーションプロジェクトでのSeeTestオートメーションの高度な使用法