2016-05-02 5 views
1

私は最近、Genymotionエミュレータ仮想ボックスの設定で問題を発見しました。これまで私は1つのgenymotionエミュレータしか使用していませんでしたが、これは常に静的IPアドレスが1つあり、Javaスクリプト自動化テストではこのIPを正確に呼び出してエミュレータでテストを実行するように設定されていました。最近、リストにいくつかのエミュレータを追加することにしました。 1つのデバイスのIP(シャットダウンの場合)が別のエミュレータに割り当てられている場合や、最後に作成されたエミュレータのIPが最初のデバイスに割り当てられている場合などがあります。リストに4つのデバイスがあるとします。 IPの割り当て方法の優先順位に着目しました。私がバーチャルボックスを起動し、genymotionを開き、例えば最初のデバイスを起動すると、192.168.155.101が得られます。第2の装置192.168.155.102;第3の装置192.168.155.103;等である。しかし、私が終了し、再びgenymotionとバーチャルボックスを開いて、最初に4台目のデバイスを起動すると決めたら、最初の192.168.155.101からIPアドレスを取得し、Appium/Seleniumスクリプトの設定に問題が生じます。特定のIPをgenymotionの特定のデバイスに割り当てることは可能ですか?そうすれば、仮想ボックスとgenymotionを再起動した後も同じIPアドレスになりますか?Genymotionエミュレータは、起動するたびに異なるIPを受信します

+0

私はあなたがデバイスを区別するためにデバイス名機能を使うことができると信じています。 – karthick23

+0

私はそれを理解していますが、私のスクリプトに行き、現在接続されているデバイスによってUDID機能を調整します。 – GordonFreaman

+0

appiumの分かりやすい要素がわかります – karthick23

答えて

2

あなたの投稿からは、使用しているホストオペレーティングシステムがわかりません。私はLinux上にいる(Ubuntu 16.04)。あなたが何か他のものに乗っているなら、詳細は以下のものとは異なるかもしれませんが、概念は同じです。 Androidのメーカーのようなものにadb接続用(あなたは、一般的なLinuxホストを実行している場合、例えば、vboxnet0とサブネット192.168.56.0

GenymotionはVirtualBoxホストオンリーアダプタに依存しています。 Genymotion VMを展開すると、このアダプタが作成され、VirtualBoxに組み込まれているDHCPサーバが有効になります。限り、あなたはVirtualBoxのを再起動しないよう

$ adb devices 
List of devices attached 
192.168.56.101:5555 device 
192.168.56.102:5555 device 

を、あなたはこれらのVMをシャットダウンし、再起動することができ、彼らは同じアドレスを毎回取得します。したがって、起動後、あなたは複数のVMでこのような何かが始まっ表示されます。ただし、確認したように、VirtualBoxを再起動すると、以前のアドレスのメモリはなく、アドレス指定は起動順序に依存します。

ほとんどのフル機能のDHCPサーバ(安価なホームルータのものも含む)は、固定IPリースのMAC登録を可能にします。残念ながら、現在のところ、内蔵のVirtualBox DHCPサーバーはこれをサポートしていません。

解決策の1つのアイデアは、VMに接続されたネットワーク上のVirtualBox DHCPサーバーを無効にし、ホストのvboxnet0アダプタで自分自身でリッスンし、Genymotion VM用の固定IPを供給するように構成することでしたそれぞれのMACアドレスに基づいています。 ファイル - >設定 - >ネットワーク - >ホストオンリーネットワークのVirtualBoxホストオンリーアダプタのDHCPを無効にすることができます。私のホストマシン上のDHCPサーバの設定ファイルからの抜粋は以下のようになります。

192.168.56.0vboxnet0サブネットの割り当てを参照し、 hardware ethernetアドレスは 設定 - >ネットワークの高度な部分に示したものである
subnet 192.168.56.0 netmask 255.255.255.0 { 
    range 192.168.56.101 192.168.56.200; 
} 

host n5_2 { 
    hardware ethernet 08:00:27:1F:F2:7E; 
    fixed-address 192.168.56.123; 
} 

- >アダプタ1固定IP割り当てが必要な各VM用。

これは基本的に1つ悪化する問題を除いて動作します.Genymotionランチャーは、VMを起動するたびにネットワーク構成をチェックします。DHCPを無効にしたホストオンリーアダプタを使用してVMを見ると、DHCPが有効になっている場合は新しいホストが作成されます(vboxnet1、サブネット192.168.57.0など)。このアダプタをポイントするようにVMのネットワーク設定を変更します。このようにブートした後、あなたがこの(前と比較して、新しいサブネット0.57に気づく)があります:私は実験した短時間で

$ adb devices 
List of devices attached 
192.168.57.101:5555 device 
192.168.57.102:5555 device 

、私は変化するからGenymotionランチャーを防ぐために見つけた唯一の方法は起動時のネットワーク設定は、対応するVirtualBox 設定パネルを開いて、各VMをGenymotion Launcherから起動することでした。私は開いていると、設定ファイルに何らかのロックをかけて、Launcherが何も変更できなくなったと思います。上記のように構成された非DHCPアダプタとホストDHCPサーバーを使用するようにVMを設定した場合、一方のデバイスはDHCP構成に従って固定IPを取得し、他方はブート順序に基づいてアドレスを取得します。

$ adb devices 
List of devices attached 
192.168.56.101:5555 device 
192.168.56.123:5555 device 

あなたのホスト上でDHCPサーバを設定することができ、かつ設定パネルには、各VMを起動するたびに開く気にしない場合、私はあなたがこの回避策を検討ことができると思います。私には、そうではありません非常に実用的だとより良いオプションは次のとおりです。

  1. VirtualBoxは内蔵のDHCPサーバー におけるMACの登録のためのサポートを追加します。
  2. Genymotionは、ブート中に構成チェックを削除(またはオプション化)します。
  3. 考え方設定オープンはVMコンフィギュレーションをロックし、それを永久にロックします。
関連する問題