iOSモバイルデバイスとの連携
概要
Eggplant FunctionalはiOSモバイルデバイスの詳細なテストをサポートしています。EggplantのiOSモバイルデバイス接続を使用して、Eggplant Functionalを実行しているマシンに直接接続された物理的なiOSモバイルデバイスをテストできます。さらに、Sauce Labsにホストされているクラウド上のiOSモバイルデバイスもテストできます。
このセクションでは、Eggplant Functionalを実行しているシステムに直接接続されている物理的なモバイルデバイスのテストについて説明します。クラウド上のiOSモバイルデバイスでの作業の詳細については、Sauce Labsのリアルデバイスと仮想ブラウザへの接続を参照してください。
EggplantのClassic iOSゲートウェイのユーザー向け
以前EggplantのClassic iOSゲートウェイを使用したことがある場合、新しいiOSモバイルデバイス接続に関連するいくつかのコンセプトがわかるかもしれません。ただし、新しいiOSモバイルデバイス接続にスムーズに移行するために知っておくべきいくつかの重要な違いがあります。そのようなユーザーである場合、このセクションを読むことをお勧めします。Classic iOSゲートウェイを使用したことがない場合、このセクションをスキップして開始前にに進むことができます。
これらは、Classic iOSゲートウェイから移行する場合に知っておく必要がある重要な動作の違いです。違いは以下の通りです(新しいiOSモバイルデバイス接続の動作については開始前にで読むことができます):
- 明示的に開発者証明書、プロビジョニングプロファイル、および開発者ディスクを提供する必要があります。新しいiOSモバイルデバイス接続は、これらの項目をXCodeまたはMacキーチェーンから取得することはできません。
- プロビジョニングプロファイル内で、
com.testplant.*
のワイルドカードApp IDの代わりに、com.*
のワイルドカードApp IDを使用する必要があります。 - 新しいiOSモバイルデバイス接続を使用すると、WindowsとLinuxシステム上のiOSデバイスに接続することができるようになります。ただし、iOSデバイスをサポートするようにWindowsとLinuxシステムに追加のソフトウェアをインストールする必要があります(iTunesまたは
usbmuxd
のインストール (WindowsまたはLinuxのみ)を参照してください)。
Classic iOSゲートウェイはMacシステムからの接続のみをサポートしていましたが、新しいiOSモバイルデバイス接続は、Eggplant Functionalによってサポートされているすべてのプラットフォームで動作するように設計されています。そのため、Eggplant Functionalが実行されているマシンにXCodeがインストールされているとは限りません。したがって、Classic iOSゲートウェイとXCodeの間の緊密な結合は、新しいiOSモバイルデバイス接続では再現されません。これが、開発者証明書、プロビジョニングプロファイル、および開発者ディスクを明示的に提供する必要がある理由です。
開始する前に
開発者ディスクがあることを確認してください
iOSモバイルデバイスに接続するためには、Eggplant Functionalが開発者ディスクにアクセスできる必要があります。Xcode がインストールされているMac上でEggplant Functionalを実行している場合、開発者ディスクはXcodeのインストールの一部として提供されます。Xcode内では、Xcodeがサポートする各HWプラットフォーム(つまり、iPhone、iPadなど)に対して開発者ディスクのセットがあります。各HWプラットフォームには、そのプラットフォームでサポートされているOSの各バージョンに対応する開発者ディスクがあります。テストする予定のHWプラットフォームの開発者ディスクへのパスを知っておく必要があります。Xcodeをデフォルトの場所にインストールした場合、iPhoneの開発者ディスクへのパスは/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
となります。
WindowsまたはLinuxシステムでEggplant Functionalを実行し、iOSモバイルデバイスに接続する予定の場合は、Macシステムから適切な開発者ディスクをコピーする必要があります。開発者ディスクをコピーするには:
- 最新バージョンのXcodeがインストールされているMacシステムで、適切な開発者ディスクの場所(通常、
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
)に移動します。 - このフォルダーの内容を含むzipアーカイブを作成します。
- このzipアーカイブをWindowsまたはLinux PCにコピーして解凍します。ファイルを解凍した場所に注意してください。これは、モバイルデバイスに接続するときに必要となる開発者ディスクの場所です。
Linuxにファイルをコピーする場合、コピー後にファイルのアクセス許可を確認する必要があります。最低限、すべてのファイルとディレクトリに対して「ユーザー」がRWアクセス許可を持っていることを確認する必要があります。
あなたのプロビジョニングプロファイルと開発者証明書のコピーを取得する
iOSモバイルデバイスに接続するには、Eggplant Functionalに開発者証明書のコピーを提供し、テスト対象のモバイルデバイス上でソフトウェアを実行させるためのカスタムプロビジョニングプロファイルを作成する必要があります。カスタムプロビジョニングプロファイルは、テスト対象の特定のデバイス(またはデバイス)に開発者証明書をリンクし、com.*
のワイルドカードApp IDを持つアプリケーションがデバイス上で実行されることを許可する必要があります。
それらを取得したら、カスタムプロビジョニングプロファイルと対応 する開発者証明書をEggplant Functionalを実行しているシステム上のスタンドアロンファイルとしてダウンロードして利用可能にする必要があります。これらのファイルのシステム上の場所を知り、モバイルデバイス接続を作成するときにそれらのパスを指定できる必要があります。
このドキュメントでは、iOS Developer/Testerとして、既にApple Developer Accountを持っており、プロビジョニングプロファイルと開発者証明書の概念に慣れていることを前提としています。開発者アカウントをまだ持っていない場合は、Apple Developer Program Enrollmentページの情報を参照してください。プロビジョニングプロファイルや開発者証明書の概念に慣れていない場合は、AppleのオンラインDeveloper Account Helpドキュメントを読むことをお勧めします。特にCreate Developer ID CertificatesとCreate a Development Provisioning Profileに注意してください。XCodeがインストールされているMacシステムで作業している場合、XCodeを使用して開発者証明書とプロビジョニングプロファイルを管理することもできます。詳細はXCodeのドキュメントを参照してください。
iTunesまたはusbmuxd
のインストール (WindowsまたはLinuxのみ)
WindowsまたはLinuxマシンでEggplant Functionalを実行している場合、iOSデバイスへのモバイルデバイス接続を試みる前にiTunes(Windows)またはusbmuxd
(Linux)をインストールする必要があります。
あなたのiOSモバイルデバイスのオートメーション設定
iOSモバイルデバイスでの最良のテスト自動化体験を得るためには、デバイスを適切に設定する必要があります。このセクションでは、初めてテスト自動化を実行する前にiOSモバイルデバイスで実行する必要がある設定活動について説明します。
開発者モードを有効にする
iOS 16以降を実行しているモバイルデバイスでは、Eggplant Functionalにデバイスを接続する前にデバイスで開発者モードを有効にする必要があります。開発者モードを有効にする方法の詳細については、Apple Xcodeのドキュメントであるデバイスでの開発者モードの有効化を参照してください。
信頼を確立する
iOSモバイルデバイスを初めてシステムに接続し、デバイスのロックを解除すると、デバイスが接続しているシステムを信頼するかどうかを確認するプロンプトが表示されます。Eggplantを使用してデバイスを自動化するためには、Eggplant Functionalが実行されているシステムをデバイスが信頼するように設定する必要があります(そしてその逆も同様です)。この操作は、モバイルデバイスをシステムに初めて接続するときに一度だけ行う必要があります。
iOSモバイルの一意のデバイスID (UDID) の取得
テストし たいiOSモバイルデバイスが1台だけの場合、Eggplant FunctionalはデバイスをEggplant Functionalに接続し、モバイルデバイス接続を作成するとデバイスを自動的に検出できます。自動検出は、システムに接続されているデバイスが1台だけの場合にのみ機能します。同時に複数のiOSモバイルデバイスをシステムに接続したい場合は、Eggplant Functionalが接続するデバイスを指定するためにUDIDを使用する必要があります。このセクションでは、iOSモバイルデバイスのUDIDの取得方法について説明します。
iOSの電話でUDIDを検索する方法はいくつかあります。UDIDを取得する方法はどれでも構いませんが、情報をコピーしてください。Eggplant Functionalで接続を作成するときにUDIDを指定することができます。
MacシステムでXCodeを使用してUDIDを検索する
- iPhoneをMacシステムのUSBポートに接続します(プロンプトが表示された場合、電話とMacの両方で信頼を確認します)。
- デバイスがロックされていないことを確認します(つまり、デバイスにサインインします)。
- メインメニューからWindowsを選択し、次にDevices and Simulatorsを選択します。
- 結果として表示されるウィンドウの右上のデバイスタブで、デバイスが一覧表示されるはずです。それをクリックします。
- デバイス情報が表示されるウィンドウが表示されます。"Identifier"フィールドがあなたのUDIDです。
- それを選択してテキストをコピーします。
Mac システムの Finder を使用して UDID を検索する方法
- iPhone を Mac システムの USB ポートに接続します(プロンプトが表示された場合、電話と Mac の両方で信頼を確認してください)。
- デバイスがロックされていないことを確認します(つまり、デバイスにサインインします)。
- Finder サイドバーの「Locations」セクションで iPhone を探します。それをクリックします。
- 結果として表示される画面の上部に、iPhone の名前が表示されるはずです。iPhone の名前の下の情報をクリックします。情報は複数の行を循環する必要があり、そのうちの1つに UDID が含まれるでしょう。
- 情報の行を右クリックして「UDID をコピー」という選択肢をクリックします。
iTunes(Mac または Windows)または Apple Music を使用して UDID を検索する方法
- iPhone を Mac システムの USB ポートに接続します(プロンプトが表示された場合、電話と Mac の両方で信頼を確認してください)。
- デバイスがロックされていないことを確認します(つまり、デバイスにサインインします)。
- 左のナビゲーションペインの「Devices」セクションで iPhone を探します。それをクリックします。
- 結果として表示される画面の上部に、iPhone の名前が表示されるはずです。iPhone の名前の下の情報をクリックします。情報は複数の行を循環する必要があり、そのうちの1つに UDID が含まれるでしょう。
- 情報の行を右クリックして「UDID をコピー」という選択肢をクリックします。
アプリを使用して UDID を検索する方法
App Store には UDID を表示するためのいくつかのアプリがあります。App Store で「UDID」と検索し、最も適しているアプリをインストールします。
- リマインダーとして、複数の iOS デバイスを同時に接続する予定の場合にのみ UDID が必要です。一度に1台のデバイスしか接続していない場合、Eggplant Functional は UDID なしでデバイスを検出できます。
- UDID と シリアル番号を混同しないでください。それらは同じものではありません。UDID の代わりにシリアル番号を使用しようとすると、接続が失敗します。
iOSモバイルデバイスの操作
Eggplant FunctionalのiOSモバイルデバイス接続を経由してiOSモバイルデバイスに接続すると、Eggplantの画像ベースのコマンドやEggplantのモバイルWebDriverコマンドを使用してデバイスを操作できます。これらの機能は、単一のモバイルデバイス接続で自動的に利用できます。
モバイルデバイス接続でモバイルWebDriver機能を使用するには、新しいモバイルデバイス接続を作成(または有効化)します。その後、デバイスに任意のmobile WebDriverベースのSenseTalkコマンドを送信できます。また、Eggplantのモバイルコントロールやタッチイベントのコマンドを使用して、モバイルデバイスを操作することもできます。詳細については、SenseTalkモバイルコントロールとタッチイベントを参照してください。
Eggplant Functionalスクリプトからモバイルデバイスを自動化する方法を学ぶためのリソースは、以下の通りです: