ios
iOS Mirror Automation
Contents:
1. はじめに
「iOS Mirror」接続により、Robotは脱獄(ルート化)されていないデバイス上でiOSアプリケーションをテストできます:
T-Plan iOS Plugin は、タッチスクリーンおよびキーボード操作を有効にするために、テスト対象アプリケーションにコンパイルまたは注入する必要があります。
デバイスの画面は、プラグイン(「iOSプラグイン」ミラー)経由、またはMac OSシステムAPI (「Lightning USBケーブル」)を使用してミラーリングされます。
レガシー機能には、Veency VNCサーバーの制御やサードパーティ製ミラーリングアプリケーションによる画面ミラーリングが含まれます。この機能は廃止予定と見なされており、現在はメンテナンスされていません。詳細は iOS Mirror Legacy Functionality ドキュメントを参照してください。
機能 | iOS Plugin | Lightning USB cable |
|---|---|---|
対応システム | MS Windows | Mac OS X 10.7 or newer |
接続 | Low (2-3 fps in JPEG encoding ) | High (.h264 video) |
パフォーマンス | Network (WiFi) or tunneling | Lightning USB only |
選択した画面ミラーリングの種類にかかわらず、ネットワークインターフェースの正常な起動を保証するため、接続初期化フェーズでは少なくともデバイスがWi-Fiに接続された状態を維持する必要があることに注意してください。
T-Plan iOSプラグインへのWiFi接続は、オプションでUSBケーブル経由でトンネル接続できます。これにより、不安定または低速なWiFiネットワークを回避できます。
並列接続(つまり、1台の機械から複数のデバイスを並列に自動化すること)は、トンネリングが使用されていない場合にのみサポートされます。
iOSデバイスの要件:
Lightning connectorを搭載したApple iOSデバイス。.
デバイスはネットワークに接続されている必要があります(通常はWiFi経由)。
Robot 機械要件:
「Lightning USBケーブル」による画面ミラーリングには、compatible Java versionが必要です。
2. Robot 機械構成
MS Windows セットアップ
MS WindowsマシンからのiOSデバイスの自動化は、「iOSプラグイン」ミラーでのみサポートされています。設定手順は不要です。
Mac OS X 設定
iOSデバイスをLightning USBケーブルでMacに接続してください。ただし、「iOSプラグイン」ミラータイプと組み合わせてTCP/IP経由でデバイス制御を選択する場合は不要です。
ロボットプロセスに必要なアクセス権限を付与してください。
Start Robot を起動し、Login ウィンドウで "iOS Mirror" 接続を選択します。オプションを設定し、Connect をクリックします。接続は失敗し、「アクセシビリティが有効になっていません」というエラーが表示されます。
Apple→設定を開き、セキュリティとプライバシーを選択します。
左側の列でアクセシビリティをクリックし、ウィンドウの右側でアクセスを有効にします。ロボットプロセスは、起動方法に応じて"java"または"sh"として表示される場合があります。
ロボットのログインウィンドウで再度接続をクリックしてください。カメラの権限を求めるポップアップが表示されます。許可してください。または、セキュリティとプライバシー内のカメラ 項目を選択し、そこで権限を付与してください。
同様に、画面録画および自動化のアクセスも有効にする必要がある場合があります(これらは古いMac OS Xリリースでは存在しない可能性があります)。

ロボットまたはJavaのアップグレードのたびに、この手順を繰り返す必要がある場合があります。
3. iOSデバイスの設定
1. デバイス設定
指定したアイドル時間後にデバイスがスリープ状態にならないようにするには、自動ロック機能を無効にすることを推奨します:
iOSホーム画面の設定アイコンをタップしてください。
一般 -> 自動ロック に移動し、無効 を選択します。
T-Plan iOSプラグインでデバイスを設定する
テスト対象アプリケーションには、 T-Plan iOS Pluginが含まれている必要があります。
これにより、アプリケーションが画面に表示されている間は、その操作を制御できます。
完全なiOS制御が必要な場合は、代わりにiOS Over Xcode 接続を使用してください。
4. 自動化
Robotからの接続
デバイスは、WiFi経由でネットワークに接続するか、またはLightning USBケーブルを介して駆動元のMacマシンに接続する必要があります。
iOSプラグインを搭載したアプリケーションが実行され、デバイス画面に表示されていることを確認してください。アプリケーションが実行されていない場合、またはバックグラウンドに追いやられている場合、接続は機能しません。
TCP/IP制御を選択した場合、デバイスのIPアドレスとポート番号5909を入力する必要があります。例:"192.168.1.10:5909"。デバイスのIPアドレスを確認するには、iOSで設定->Wi-Fiを開き、小さな「i」マークをタップしてください。

Start Robot を起動し、「iOS Mirror」接続タイプを選択します。その後、以下のパラメータを選択します:

Device Control defines how the device touch screen and keyboard will be controlled:
デバイス制御 は、デバイスのタッチスクリーンとキーボードの制御方法を定義します:
TCP/IP経由のT-Planサーバー/プラグインは、WiFiネットワーク経由でT-Planプラグインコンポーネントに接続します。このオプションでは、デバイスのIPアドレスの後にコロンとポート番号5909を入力する必要があります。例については下の画像を参照してください。
USB経由のT-Planサーバー/プラグインは、USBケーブルを介してT-PlanプラグインとのTCP/IP接続をトンネリングします。テスト対象アプリケーション(AUT)の起動時には、ネットワークインターフェースの正常な起動を保証するため、デバイスがWi-Fiに接続されている必要があります。このオプションはMac OS Xでのみサポートされています。
VNCサーバー(Veency)は、WiFiネットワーク経由でデバイス上で動作しているVNCサーバーに接続します。デバイスのIPアドレスの後にコロンとVNCポート番号(通常は5901)を入力する必要があります。この機能は廃止され、現在はメンテナンスされていません。詳細は iOS Mirror Legacy Functionalityドキュメントを参照してください。
画面ミラーリング は、デバイス画面をPC/ロボットに転送する方法を指定します:
Lightning USBケーブルは、Mac OS Xに接続されたLightning USBケーブルを介して画面をミラーリングします。デバイスの名前を指定する必要があります。お使いのMacに接続されているデバイスの一覧を表示できるセレクターが用意されています。
iOSプラグインはプラグインを介して画面をミラーリングします。このオプションとTCP/IPデバイス制御を組み合わせることで、MS WindowsまたはUnix/Linuxマシンからの自動化が可能になります。安定した接続を得るためには、iOSプラグインライブラリバージョン1.11以降の使用を推奨します。
ミラーアプリは、選択したミラーアプリケーションを使用します。この機能は廃止され、現在はメンテナンスされていません。詳細は iOS Mirror Legacy Functionality ドキュメントを参照してください。
テストスクリプトからデバイスに接続するには、Connect コマンド(TPRスクリプト)またはconnect()メソッド(Javaテストスクリプト)を使用します。引数URLは「apple://<アドレス>:<ポート>」の形式である必要があります。例えば、IPアドレスが192.168.100.1のAppleデバイスがある場合:
Example 1: Connect to the T-Plan Plugin/Server over TCP/IP using a mirror app:
TPR test scripts: Connect apple://192.168.100.1:5909
Java test scripts: connect("apple://192.168.100.1:5909");
Example 2: Connect to the T-Plan Plugin/Server over USB using a mirror app:
TPR test scripts: Connect apple://localhost:5909
Java test scripts: connect("apple://localhost:5909");
Example 3: Connect to the VNC Server using a mirror app:
TPR test scripts: Connect apple://192.168.100.1:5901
Java test scripts: connect("apple://192.168.100.1:5901");
メソッド(Javaテストスクリプト)を使用します。引数URLは「apple://<アドレス>:<ポート>」の形式である必要があります。例えば、IPアドレスが192.168.100.1のAppleデバイスがある場合 _IOS_DEVICES動的変数の呼び出しを通じて利用可能なデバイスのリストを取得できます。
Example 4: Connect to the T-Plan Plugin/Server over TCP/IP using Lightning USB:
TPR test scripts: Connect apple://192.168.100.1:5909 device="My iPhone 5"
Java test scripts: connect("apple://192.168.100.1:5909", null, false, "My iPhone 5");
Example 5: Connect to the T-Plan Plugin/Server over USB using Lightning USB:
TPR test scripts: Connect apple://localhost:5909 device="My iPhone 5"
Java test scripts: connect("apple://localhost:5909", null, false, "My iPhone 5");
iOSプラグインミラーを強制するには、予約済みデバイス名"plugin"を使用してください:
Example 4: Connect to the T-Plan Plugin/Server over TCP/IP using iOS Plugin (suitable for automation from MS Windows/Linux/Unix and/or devices which are NOT attached to the Mac via USB):
TPR test scripts: Connect apple://192.168.100.1:5909 device="plugin"
Java test scripts: connect("apple://192.168.100.1:5909", null, false, "plugin");
自動化のヒント
iOSデバイスの画面はH.264ビデオ(非可逆画像圧縮形式)でミラーリングされるため、画面上のアーティファクト(構成要素)はピクセルレベルで変化します。ロボットテンプレート画像を用いてこれらを検索するには、 search2 比較方式と合格率50%以下を設定してください。
複数のデバイスを単一のPCから自動化する推奨方法は、Mac OS Xにおける Lightning USB 接続です。デバイスがIPアドレスで識別されるよう、USBトンネリングの使用は避けてください。手順は以下の通りです:
ライセンスには2つ以上の接続数(接続ごとに1つのライセンス)が含まれていることを確認してください。ライセンスの接続数が不足している場合、超過したスクリプトは空き接続を待機することになります(順次実行)。
並列テストを実現するには、CLIモードで2つ以上の並列スクリプトを含むワークアイテムを実行します。あるいは、GUIモードで複数のロボットインスタンスを起動し、通常通りテストを開始します(テストスクリプト1つにつきインスタンス1つ)。