目次:
1. はじめに
2. ロボットの構成
3. iOSデバイスの設定
4. 自動化
1. はじめに
HeartCore Roboでは、「iOSミラー」接続によってiOSアプリケーションを非ジェイルブレイク(非Root化)デバイスでテストすることができます。
- タッチスクリーンとキーボードコントロールを可能にするために、T-Plan iOS Pluginを開発アプリケーションプロジェクトにコンパイルする、あるいは組み込む必要があります。
- デバイスの画面は、プラグイン("iOS Plugin"ミラー)またはMacOSのシステムAPI(LightningUSBケーブル接続)を使用してミラーリングされます。
- レガシーオプションには、Veency VNCサーバーの制御とサードパーティのミラーリングアプリケーションによるスクリーンミラーリングが含まれます。この機能は古く、今後メンテナンスされません。詳細は古いiOSミラー接続のドキュメントをご覧ください。
機能 |
iOSプラグイン |
LightningUSBケーブル
|
サポートOS
|
MS Windows
MacOS X
Linux/Unix
|
MacOS X 10.7以上
|
パフォーマンス
|
低い(2~3fps(Jpegエンコーディング)) |
高い(.h264エンコーディング)
|
接続
|
Wifi接続または
ライトニングケーブル接続のトンネリング |
ライトニングケーブル接続のみ
|
※ 選択された画面ミラータイプに関わりなくネットワークインターフェースの正しい起動を確実にするために、少なくとも接続開始段階ではHeartCore RoboとiOS機器が同じWiFiアクセスポイントに接続されている必要があることに注意してください。
iOSプラグインへのWiFi接続は、オプションでライトニングUSBケーブルを経由してトンネリングすることができます。これにより不安定なWiFiネットワークや低速なWiFiネットワーク接続によるトラブルを回避することができます。
iOSのデバイス要件:
- ライトニングコネクタを搭載したApple製iOSデバイス。
- iOS機器とHeartCore RoboがインストールされているMacは同じネットワークに接続されている必要があります(通常同じWiFi経由)。
ロボットスクリプトのマシン要件:
2. ロボットの構成
MS Windowsのセットアップ
MS WindowsからのiOSデバイス自動化は"iOSプラグイン"ミラー接続のみサポートされています。設定手順は必要ありません。
Mac OS Xの設定
- HeartCore Roboを起動しログインウィンドウで「iOSミラー」接続を選択、そのオプションを入力して、「接続」をクリックします。アクセシビリティが有効になっていないとエラーが出て接続が失敗します。
- MacOSのシステム設定を開き、プライバシーとセキュリティを選択します
- 左側の列の[ユーザー補助]をクリックし、ウィンドウの右側でアクセスを有効にします。HeartCore Roboプロセスは、開始方法に応じて「java」または「sh」と表示される場合があります。
- ロボットのログインウィンドウでもう一度[接続]をクリックします。カメラの許可を求めるポップアップが表示されます。承認します。または、[セキュリティとプライバシー]で[カメラ]アイテムを選択し、そこに権限を付与します。
- 同様に、画面の記録と自動化へのアクセス(画面収録)も有効にする必要がある場合があります(これらは古いMacOS Xリリースでは表示されない場合があります)。
- HeartCore RoboまたはJavaをアップグレードするたびに、この手順を繰り返す必要がある場合があります。
MacOSのバージョンによって表示画面が大きく変更される可能性があることにご注意ください。
3. iOSデバイスの設定
1.デバイス構成
指定されたアイドル時間後にデバイスがスリープ状態にならないように、自動ロック機能をオフにすることをお勧めします。
- iOSのホーム画面で[設定]アイコンをタップします。
- [一般]または[画面表示と明るさ] -> [自動ロック]に移動し[なし]を選択します。
2. iOSプラグインでの機器設定
テスト対象のアプリケーションプロジェクトにiOSプラグインを組み込む必要があります。
- これにより、アプリケーションが画面に表示されている間、そのアプリケーションをHeartCore Roboで制御することができます。
- iOSの完全なコントロールが必要な場合は「XCode経由のiOS」接続を使用してください。
4. 自動化
ロボットプロジェクトとの接続
HeartCore Roboと同じWiFiネットワークに接続するか、ライトニングUSBケーブルでMacに接続する必要があります。
- iOSプラグインを搭載したアプリケーションが機器で起動して画面に表示されていることを確認してください。アプリケーションが起動していない場合や、バックグラウンドで動作しているような場合は接続できません。
- 「TCP/IP経由のロボサーバ/プラグイン」を選択した場合、デバイスのIPアドレスと5909のポートを入力する必要があります(例:"192.168.1.10:5909")。 デバイスのIPアドレスを調べるには、iOSの「設定」→「WiFi」を開き、小さな「i」の丸をタップすると確認できます。
ロボットを起動し、「iOSミラー」接続タイプを選択します。そして次のようにパラメータを選択します。
- デバイスコントロールは、デバイスのタッチスクリーンとキーボードをどのように制御するかを定義します。
- TCP/IP経由のロボサーバ/プラグインは、WiFiネットワーク経由でプラグインコンポーネントに接続します。このオプションを使用するには、デバイスのIPアドレスの後ろにコロン、およびポート番号5909を入力する必要があります。例については上記画像を参考にしてください。
- USB経由のロボサーバ/プラグインは、USBケーブルを介してプラグインとのTCP/IP接続をトンネリングします。テスト中のアプリケーション(AUT)が開始されたときにiOS機器がWi-Fiに接続されネットワークインターフェイスが正しく起動していることを、HeartCore Roboの接続前に確認する必要があります。このオプションはMacOS X以降でのみサポートされています。
- VNCサーバ(Veency)は、WiFiネットワーク経由でデバイス上で実行されているVNCサーバに接続します。このオプションを使用するには、デバイスのIPアドレス、コロン、およびVNCポート番号(通常は5901)を入力する必要があります。この機能は廃止され現在はメンテナンスされていません。詳細は旧解説ページをご覧ください。
- 画面ミラーは、デバイス画面をPC/ロボットに転送する方法を指定します。
- Lightning USBケーブルは、MacOS Xに接続されたLightningUSBケーブルを介してHeartCore Robo内でリモート接続画面を表示します。デバイスの名前を指定する必要があります。Macに接続されているデバイスを一覧表示できるセレクタがあります。
- iOSプラグインは、プラグインを介してHeartCore Robo内でリモート接続画面を表示します。このオプションとTCP/IPデバイスコントロールにより、MS WindowsまたはUnix/Linuxマシンから接続しての自動化が可能になります。安定した接続を得るために、iOSプラグインライブラリのバージョン1.11以降を使用することをお勧めします。
- ミラーアプリはお客様が選択したミラーアプリケーションを使用します。この機能は現在メンテナンスされていません。詳細は旧解説ページをご覧ください。
- テストスクリプトからデバイスに接続するには、Connectコマンド(TPRスクリプト)またはconnect()メソッド(Javaテストスクリプト)を使用します。引数のURLは、"apple:// <address>:<port>"の形式である必要があります。たとえば、192.168.100.1のIPを持つAppleデバイスがあるとします。
例1:ミラーアプリを使用して
TCP/IP経由でRoboサーバ/プラグインに接続:
TPRテストスクリプト: Connect apple://192.168.100.1:5909
Javaテストスクリプト: connect("apple://192.168.100.1:5909");
例2:ミラーアプリを使用して
USB経由のRoboサーバ/プラグインに接続:
TPRテストスクリプト: Connect apple://localhost:5909
Javaテストスクリプト: connect("apple://localhost:5909");
例3:ミラーアプリを使用して
VNCサーバーに接続:
TPRテストスクリプト: Connect apple://
192.168.100.1
:5901
Javaテストスクリプト: connect("apple://
192.168.100.1
:5901"
- 画面ミラーがライトニングUSBケーブルの場合はデバイス名を指定する必要があります。v5.0.6以降では、動的変数{_IOS_DEVICES}の呼び出しで利用可能なデバイスリストを取得することができます。
例4:Lightning USBケーブルを使用して
TCP/IP経由のRoboサーバ/プラグインに接続する:
TPRテストスクリプト: Connect apple://192.168.100.1:5909 device="My iPhone 5"
Javaテストスクリプト: connect("apple://192.168.100.1:5909",
null
,
false,
"My iPhone 5"
);
例5:Lightning USBケーブルを使用して
USB経由のRoboサーバ/プラグインに接続する:
TPRテストスクリプト: Connect apple://localhost:5909 device="My iPhone 5"
Javaテストスクリプト: connect("apple://localhost:5909",
null
,
false,
"My iPhone 5"
);
- iOSプラグインのミラーリングを強制的に行うには、予約したデバイス名"plugin"を使用します。
例6:iOSプラグインを使用して
TCP/IP経由のRoboサーバ/プラグインに接続(MS Windows/Linux/UnixやUSBでMacに接続されていない機器の自動化に適しています):
TPRテストスクリプト: Connect apple://localhost:5909 device="plugin"
Javaテストスクリプト: connect("apple://localhost:5909",
null
,
false,
"plugin"
);
ロボット作成(自動化)のヒント
- リモートで接続されたiOS機器の画面は非可逆圧縮形式のH.264ビデオでミラーリングされているため、画面上の表示内容はピクセル単位で常に変化しています。ロボット作成時にテンプレート画像を取り込んで画像検索する場合は、
"search2"
の画像比較方式で50%以下の合格率で検索してください。これ以上に精度を上げてしまうとかえって画像を認識しなくなります。
- 1台のPCから複数のデバイスを自動化する方法として、MacOS X以上ではLightning USB接続が推奨されています。デバイスをIPアドレスで識別できるように、USBトンネリングは使用しないでください。
- 必ず1契約ライセンス内に2ライセンス(2シート)以上をご契約いただきご用意ください(各接続ごとに1シート)。ライセンス(シート)数が不足すると、超過したスクリプトが空き接続を待ち、シートが空いたら逐次実行することになります。
- 並列テストを行うには、CLIモードで2つ以上の並列スクリプトを含むワークアイテムを実行します。あるいは、GUIモードで複数のRobotインスタンスを起動し、通常通りテストを開始します(1つのテストスクリプトに1つのインスタンス)。