メインコンテンツまでスキップ
バージョン:23.3

Android モバイルデバイスとの作業

概要

モバイルデバイスへの接続で議論されたように、Eggplant FunctionalはAndroidモバイルデバイスのテストに広範なサポートを提供しています。EggplantのAndroidモバイルデバイス接続を使用すると、Eggplant Functionalを実行しているマシンに直接接続されているAndroidモバイルデバイスをテストすることができます。Androidデバイスは、物理デバイスまたはエミュレーターである可能性があります。さらに、Sauce LabsにホストされているクラウドホストのAndroidモバイルデバイスをテストすることもできます。このセクションでは、Eggplant Functionalを実行しているシステムに直接接続されているモバイルデバイスのテストに関連する概念について議論します。クラウドホストのAndroidモバイルデバイスとの作業の詳細については、Sauce Labsの実デバイスおよび仮想ブラウザへの接続を参照してください。

ノート

モバイルデバイス接続は、Eggplant Functionalを実行しているマシンからのデバイスへの直接の接続のみをサポートしています。Eggplant Functionalと同じマシン上で共同ホストされていない共有ネットワークアドレスからデバイスをホストする必要がある場合、EggplantのクラシックAndroidゲートウェイアプリケーションを使用する必要があります。クラシックAndroidゲートウェイアプリケーションのセットアップと使用方法の詳細については、ユーザーガイドを参照してください。

AndroidモバイルデバイスIDの取得

一部のケースでは、Androidデバイスのモバイルデバイス接続を作成する前に、AndroidデバイスIDが必要になります。このセクションでは、物理デバイスのデバイスIDの取得方法を説明します。エミュレートされたデバイスに接続しようとしている場合、エミュレートされたデバイスのデバイスIDの取得方法の詳細については、Androidエミュレーターへの接続を参照してください。

テストする単一のAndroidモバイルデバイスがある場合、Eggplant FunctionalはデバイスをEggplant Functionalに接続してモバイルデバイス接続を作成するときにデバイスを自動検出することができます。ただし、テストするAndroidモバイルデバイスが複数ある場合は、デバイス間で区別するためにデバイスIDを使用する必要があります。このセクションでは、AndroidモバイルデバイスのデバイスIDの取得方法を説明します。

Androidの携帯電話でデバイスIDを特定するための複数の方法があります。以下の方法のいずれかが適用されるはずです:

  • お使いの電話のダイヤルパッドに*#*#8255#*#*を入力します。最後の数字を入力すると、GTalk Service Monitorが開き、結果の情報にデバイスIDが表示されます。(表示されるデバイスIDには、文字列android-が付加される場合があります。付加された文字列は無視してください。android-文字列に続く16進数の数字のみが必要です。)
  • システムにAndroid Debug Bridgeがインストールされている場合、adb devicesコマンドを使用して、現在システムに接続されているデバイスのリストを取得できます(adbドキュメントのデバイスのクエリを参照)。コマンドを実行する前に、デバイスがシステムに接続されていることを確認してください。
  • 上記の方法が機能しない場合、デバイスIDを読むことができるアプリがあります。Androidのアプリストアにアクセスして「デバイスID」と検索してください。

デバイスIDを取得したら、情報をコピーしてください。Eggplant Functionalで接続を作成するときにデバイスIDを指定できます。

ノート
  • リマインダとして、複数のAndroidデバイスを同時に接続する予定の場合のみ、デバイスIDが必要です。一度に1台のデバイスしか接続していない場合、Eggplant FunctionalはデバイスIDを必要とせずにデバイスを検出できます。
  • デバイスIDとシリアル番号を混同しないでください。それらは同じではありません。デバイスIDの代わりにシリアル番号を使用しようとすると、接続が失敗します。

Androidエミュレーターへの接続

Eggplant Functionalのモバイルデバイス接続は、Android Studioを介してエミュレートされたAndroidデバイスとシームレスに動作します。エミュレートされたデバイスに接続するには、Eggplant Functionalを実行しているのと同じシステムでAndroid Studioを実行する必要があります。接続を試みる前に、Android StudioでAndroid仮想デバイスを起動する必要があります。

1つのAndroid仮想デバイスのみを実行している場合、デバイスIDを知る必要なく、Eggplant Functionalのモバイルデバイス接続を使用して接続を続行できます。コンピューターに1台のデバイスのみが接続されている場合、Eggplant Functionalはデバイスを発見でき、デバイスIDが必要なくデバイスに接続します。

複数のAndroid仮想デバイスを同時に実行している、または実行する予定の場合、接続するときにデバイスIDを指定する必要があります。エミュレーターからデバイスIDを取得するには、デバイスの拡張コントロールを開き、拡張コントロールウィンドウの左側 のパネルで「ヘルプ」をクリックします。"Emulator ADB Serial Number"が表示されるはずです。デバイスに接続を試みるときに、その値をデバイスIDとして使用してください。以下は、Android Studio Electric Eel(2022.1.1)の例です。

エミュレートされたデバイスのデバイスIDの取得

ノート
  • Androidエミュレーターは、見出し「Emulator ADB serial number」の下にデバイスIDを表示します。見出しにもかかわらず、これは正しいデバイスIDです。
  • 仮想デバイスのデバイスIDはAndroid Studioによって設定され、セッションごとに変更される可能性があります。さらに、複数のエミュレーターが実行されている場合、IDの割り当てはデバイスを起動する順序に依存します。この動作は、Eggplantで明示的にデバイスIDを指定する場合に問題となります。デバイスIDが予期せずに変更されることを避けるために、1回に1つのエミュレートされたデバイスのみを実行するか、同じ順序で常にエミュレートされたデバイスを起動する必要があります。使用ケースに適している場合、デバイスIDに依存する必要がないため、一度に1つのエミュレーターのみを実行することをおすすめします。

あなたのAndroidモバイルデバイスの設定

Androidモバイルデバイスで最高のテスト自動化体験を得るためには、デバイスを適切に設定する必要があります。このセクションでは、初めてテスト自動化を対象として実行する前に、Androidモバイルデバイスで実行する必要がある設定活動について説明します。

開発者モードの有効化

Eggplant FunctionalでAndroidデバイスに接続する前に、デバイスで開発者モードを有効にする必要があります。Androidデバイスの開発者モードを有効にする方法は、ディストリビューションによって異なる場合があります。開発者モードの有効化方法の詳細については、Android Studioユーザーガイドの開発者オプションの有効化を参照してください。

USBデバッグの設定

Eggplant FunctionalでAndroidデバイスに接続する前に、デバイスでUSBデバッグを有効にする必要があります。USBデバッグの有効化方法の詳細については、Android StudioユーザーガイドのデバイスでのUSBデバッグの有効化を参照してください。

モック位置の有効化

必要に応じてEggplantのSetDeviceLocation SenseTalkコマンドを機能させるために、Androidデバイスでモック位置を有効にする必要があります。モック位置の有効化方法の詳細については、Android Studioユーザーガイドのデバッグを参照してください。

Androidモバイルデバイスの操作

Eggplant FunctionalのAndroidモバイルデバイス接続を介してAndroidモバイルデバイスに接続すると、Eggplantの画像ベースのコマンドやEggplantのモバイルWebDriverコマンドを使用してデバイスを操作できます。これらの機能は、単一のモバイルデバイス接続で自動的に利用可能です。

モバイルデバイス接続でモバイルWebDriver機能を使用するには、新しいモバイルデバイス接続を作成(またはアクティブに)します。その後、任意のmobile WebDriverベースのSenseTalkコマンドをデバイスに送信できます。また、Eggplantのモバイルコントロールやタッチイベントのコマンドをいくつか使用して、モバイルデバイスを操作することもできます。詳細については、SenseTalkモバイルコントロールおよびタッチイベントを参照してください。

Eggplant Functionalスクリプトからモバイルデバイスを自動化する方法を学ぶには、以下のリソースを参照してください: