Silk4J がモバイル デバイスやエミュレータを認識できないと、アプリケーションの選択 ダイアログの モバイル タブにはデバイスやエミュレータが表示されません。さらに、アプリケーションの選択 ダイアログの Web タブにも、そのデバイスやエミュレータ上にインストールされているモバイル ブラウザーが表示されません。
原因 | 解決策 |
---|---|
エミュレータが実行されていない。 | エミュレータを開始します。 |
Android Debug Bridge (adb) がモバイル デバイスを認識しない。 | モバイル デバイスが adb によって認識されているかどうか確認するには:
|
デバイスのオペレーティング システムのバージョンを Silk4J がサポートしていない。 | サポートするモバイル オペレーティング システムのバージョンについては、リリース ノート を参照してください。 |
デバイスの USB ドライバがローカル マシンにインストールされていない。 | デバイスの USB ドライバをローカル マシンにインストールしてください。詳細については、「USB ドライバをインストールする」を参照してください。 |
USB デバッグがデバイスで有効化されていない。 | USB デバッグをデバイスで有効化してください。詳細については、「USB デバッグの有効化」を参照してください。 |
アドレス バーに入力された URL を、Chrome for Android が検索として解釈する場合があります。回避策として、URL に移動するコマンドをスクリプトに手動で追加できます。
Android Debug Bridge (adb) サーバーが開始するとき、ローカル TCP ポート 5037 にバインドし、adb クライアントから送信されてくるコマンドをリッスンします。すべての adb クライアントは、ポート 5037 を使用して、adb サーバーと通信します。adb サーバーは、5555 から 5585 の範囲 (エミュレータやデバイスで使用される範囲) で奇数のポートをスキャンしてエミュレータやデバイス インスタンスを探します。adb はこれらのポートの変更を許しません。adb 開始中に問題が発生した場合、これらの範囲のポートの 1 つが、他のプログラムによって既に使用されているかどうか確認します。
詳細については、http://developer.android.com/tools/help/adb.html を参照してください。
Android SDK、または Android Debug Bridge (adb) を使用するその他のツールをインストールしている場合、Silk4J が使用する adb サーバー以外のサーバーが実行中の可能性があります。バージョンの異なる adb サーバーが実行中の場合、Open Agent とデバイスとの接続が不安定になったり、接続できない場合があります。
このようなバージョンの不一致によるエラーを避けるには、環境変数 SILK_ANDROID_HOME に Android SDK ディレクトリへのパス(C:\Users\<ユーザー>\AppData\Local\Android\android-sdk など)を指定してください。Information Service が実行中の場合、Windows のサービス マネージャーを使用して、Silk Test Information Service を再起動して更新した環境変数を適用する必要があります。環境変数が設定されていない場合は、Silk4J は Silk4J に同梱されたバージョンの adb を使用します。
エミュレータを開始しているときに、システムが十分なメモリを割り当てることができない場合に、このエラーが表示されます。以下を行ってみてください。
原因 | 解決策 |
---|---|
iOS デバイスがデベロッパ モードになっていない。 | 次の 2 種類の方法のいずれかで、デベロッパ モードを有効化できます。
|
デバイスの iOS のバージョンを最近更新した。 |
|
UI オートメーションが iOS デバイスで有効化されていない。 |
|
Web インスペクタ が iOS デバイスで有効化されていない(モバイル Web アプリケーションのテストの場合)。 |
|
テストするアプリがテストしようとしている iOS デバイスの iOS バージョン用にビルドされていない。 | Xcode を使用してデバイスの iOS バージョン用にアプリをビルドします。 |
ソフトウェア・アップデート ダイアログ ボックスが iOS デバイス上で開いている。 | ダイアログ ボックスを閉じ、ソフトウェアの自動アップデートを無効化します。
|
テストの開始時に Android デバイスや Android エミュレータの画面がロックされると、デバイスやエミュレータが動的ハードウェア コントロールに 戻る ボタンだけを表示する場合があります。
この問題を解決するには、Open Agent を停止し、デバイスを再起動してから、デバイスの設定を画面のロックをしないように設定してください。
Unicode 文字列をサポートするために、Silk4J は標準キーボードをカスタム キーボードに置き換えます。そして、テストの完了時に元のキーボードに戻します。テスト中にエラーが発生すると、カスタム キーボードが設定されたまま、元に戻らない場合があります。
この問題を解決するには、
を開き、手動で元のキーボードに戻してください。テストの開始時に、デバイス、エミュレータ、シミュレータの画面がロックされると、Silk4J は画面のロックを解除できず、デバイス、エミュレータ、シミュレータが操作に応答しなくなる場合があります。
この問題を解決するには、Open Agent を停止し、デバイスの設定を画面のロックをしないように設定してください。
"SilkTestInformationService<バージョン>.pkg" は、開発元が未確認のため開けません。
金融取引を処理するアプリなど、高レベルなセキュリティを必要とする Android アプリでは、Silk4J がアプリのキャプチャをできないようにするために、FLAG_SECURE フラグが設定されている可能性があります。Silk4J は、記録時に Android デバイスのスクリーンショットやビデオを利用しますが、テストする Android アプリにこのフラグが設定されていると、記録中 ウィンドウにはデバイスの真っ黒な画面が表示されます。Silk Test でこのようなアプリをテストするには、テスト中に FLAG_SECURE フラグを設定しないよう、アプリの開発チームに依頼してください。
クラウド環境でテストする場合、必要なポートがオープンになっていないことなどが原因で、テストの記録や再生時にビデオの表示が機能しない場合があります。
infoservice.disableScreencastHosts=<URL_1>,<URL_2>, ...例:
infoservice.disableScreencastHosts=http://my-webdriver-server-url.com:80/wd/hubワイルドカードとしてアスタリスク(*)を使用して、*my-webdriver-server-url.com のような URL パターンを指定することができます。
この設定により、指定したホストでの記録と再生時に、Silk4J はビデオの代わりに連続したスクリーンショットを表示するようになります。
Xcode の最新版にアップグレードしてしまった場合など、使用している Xcode のバージョンを Silk4J がサポートしていない場合、iOS でテストする際にエラー メッセージが表示される場合があります。
インストールした Xcode のバージョンをサポートするバージョンで置換するには、サポートするバージョンの Xcode を https://developer.apple.com/download/more/ からダウンロードし、サポートされていないバージョンをダウンロードしたバージョンで置換します。サポートする Xcode のバージョンについての情報は、『リリース ノート』を参照してください。
0 2 1 * * find /Library/Caches/com.apple.dt.instruments -mtime +10 -delete
この例では、10 日より前のすべてのログ ファイルが、毎日午前 2 時にディレクトリから削除されます。
物理 iOS デバイス上でテストを行う場合、通常このエラーは WebDriverAgent アプリのビルド プロセス中に、プロビジョニング プロファイルでサインされていないか問題があったことを意味します。
cd /Applications/Silk/Mobile/common/Appium/node_modules/appium-xcuitest-driver xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test
mkdir -p Resources/WebDriverAgent.bundle
Developer Tools Access は、デバッグを続けるためにほかのプロセスを制御する必要があります。 これを許可するには、パスワードを入力してください。パスワードを入力して許可します。
sudo /usr/sbin/DevToolsSecurity --enable
iPad 上のモバイル Web アプリケーションのテスト時にコントロールを囲む矩形領域がずれている場合、複数のブラウザー タブが開いており、タブ バーが表示されている場合があります。この問題を回避するには、1 つを残して、ほかのすべてのタブを閉じてください。
Silk4J の新しいバージョンにアップデートすると、Silk4J の以前のバージョンでモバイル テスト用に使用してきた物理モバイル デバイス上の Appium アプリも自動的にアップデートされます。何らかの理由でこれらのアプリが自動的にアップデートされないと、そのデバイス上でテストの記録と再生が正常に動作しない場合があります。
Silk4J のアップデート後に、iOS デバイスでこのような問題が発生した場合は、WebDriverAgentRunner をデバイスから手動でアンインストールしてください。
Silk4J では、Appium を使ってモバイル アプリケーションをテストします。Appium でネットワーク プロキシ設定が設定されていると、Silk4J の記録を妨害する場合があります。モバイル デバイスまたはエミュレータのネットワーク プロキシ設定を無効にしてみてください。