ハートコア株式会社
HeartCore Robo Desktop 4.4 Docコレクション
21/06/18

VNCサーバー上の自動化

最終更新日:2017年9月21日

目次:
1. はじめに
2. サポートされる構成
3. サポートされているVNCサーバー


1.はじめに

VNCサーバ接続により、HeartCore Robo Desktopは、仮想ネットワークコンピューティングまたはVNCとしてよりよく知られているリモートフレームバッファプロトコル(RFB)を介して、マシンおよびデバイスを自動化することができます。 多くの製品でVNC技術が採用されているため、この接続はコンピュータに限定されません。RFB 互換の VNC サーバを実行しているすべてのデバイスは、一般に自動化することができます。ロボットは、次のような広範なシステムを自動化するために正常に配備されました:
利点:

欠点:


2.サポートされる構成

VNCサーバはいくつかの構成で使用できます:



2.1ローカルデスクトップの自動化

ローカルデスクトップの自動化では、VNCサーバーが実行されているのと同じシステム(デスクトップ)を自動化することが前提です。これは、MS WindowsまたはMac OS Xに依存する単一のOSソリューションでは一般的です。自動化が進行中またはスクリーンショットが作成されている場合、通常、ロボットGUIは自動デスクトップの邪魔にならないように隠れています。

この設定を行うには:

  1. サポートされているVNCサーバー の1つをインストールして起動します。
  2. ロボットをインストールします。
  3. ロボットを起動します。「VNC Server」 接続タイプを選択し、「Server」フィールドに「localhost」と入力 します。 他の設定用に予約されている"127.0.0.1"は使用しないでください。サーバーが5900以外のカスタムポートで実行されている場合は、コロン("localhost:5901")の後にポートを指定します。

この構成の代わりに、ローカルデスクトップ接続があります。ローカルJavaのインストール手段を使用してローカルデスクトップを自動化します。VNCサーバーなどの他のコンポーネントは必要ありません。この接続の欠点は、テストスクリプトがtelnetやrshなどの端末を介して遠隔で(別のPCやデバイスから)起動されないことです。代わりにVNCサーバを使用してください。




2.2複数のデスクトップを持つシングルOS

単一システム上で複数のVNCサーバー(デスクトップ)を実行できるLinux / Unixに特有の、複数のデスクトップインスタンスを備えた単一のマシン/ OSによる構成。各サーバーインスタンスは独自のポートで動作し、既定のシステム(画面に表示されるもの)とは独立したスタンドアロンのグラフィカルデスクトップを提供します。この場合のマシンは、クライアントシステムとSUTの両方として機能します。ロボットは通常、(必ずしも必要ではないが)デフォルトのシステムデスクトップ上で動作し(画像に表示されるように)、VNCサーバに接続する。

設定する手順は次のとおりです。

  1. サポートされているVNCサーバー   をインストールして起動します。
  2.   ロボットをインストールします。
  3.   ロボットを起動します。「VNC Server」接続タイプを選択し、「Server」フィールドに「127.0.0.1:<port>」と入力 します。 他の設定用に予約されている"localhost"という名前は使用しないでください。


2.3複数のOSインスタンスを持つシングルマシン


この構成では 、VirtualBoxVMwareなどの仮想化テクノロジを利用します。このシナリオでは、デフォルトのOS( 仮想化用語では「ホスティングシステム」と呼ばれます)は、独自のOS(「ホステッドシステム」と呼ばれます)を持つ仮想マシン(VM)を実行します。WebサイトのVirtualBoxWindows XPシステムをホストしているWindows Vistaの例があります。ホスティングおよびホステッドシステムは、特定の仮想化技術によってサポートされるOSの任意の組み合わせであってもよい。
  • ホストしているシステムは、 一般的にロボットを実行し、クライアントシステムの役割を果たしています。ロボットは、別の専用のVMインスタンスで動作することもありますが、Robotユーザーによって報告された環境固有のさまざまな問題に関しては、この構成は推奨されません。クライアントとサーバーの役割は元に戻すことができず、VMはホスティングシステムをリモートコントロール(および自動化)できないことに注意してください。
  • ホストされたシステム機能は、VNCサーバを実行します。

設定手順:

  1. VirtualBoxまたはVMwareをインストールします。
  2. VMを作成し、そこにホストOSをインストールします。
  3. サポートされているVNCサーバーをホストされているシステムにインストールして起動します。
  4. VNCポートをホスティングシステムから見えるようにVMを構成します(VirtualBoxステップ)。
  5. ホスティングシステムにロボットをインストールします。
  6. ロボットを起動します。「VNC Server」接続タイプを選択し、192.168.100.2:5901」 などのServer フィールドにVM IPアドレスとポートを入力します。

ノート:

  • VMware上で動作するVNCサーバは、クライアントとサーバが異なるキーボードレイアウト(例[1]例[2]を参照)を持つキーマッピングに問題があると報告されています。これにより、通常、一部の文字がVNCデスクトップに正しく入力されなくなります。これはHeartCore Robo Desktopの失敗ではありません。
  • ロボット 4.3以降では、RDPサーバー接続を使用して直接VirtualBox VMに接続できます。




2.4デュアルシステム環境


このシナリオでは、安定した専用デバイス(別のPC、モバイルデバイス、KVMスイッチ、POSマシンなど)VNCサーバーを実行します。この構成は、自動化生産シナリオで推奨されます。テスト中のシステム(SUT)は物理的に別個のマシンであるため、安定した状態に保ち、必要なバックアップを取ったり、各テストサイクル後にシステムを復元するルーチンを設定することも容易です。デバイスがネットワークに接続されると、イントラネットまたはインターネット上の複数のユーザ(クライアントシステム)のテスト環境としても機能します。この設定は、SUTがHeartCore Robo Desktop(Java SEでサポートされていないシステム)を実行するための要件を満たさず、単一のマシンシナリオを使用できない場合にのみ可能です。

  1. サポートされているVNCサーバをSUTにインストールして起動します。
  2. クライアントシステムにロボットをインストールします。
  3. ロボットを起動します。「VNC Server」 接続タイプを選択し、「Server」フィールドに「<machine_name_or_IP>:<port>」と入力 します。 





3.サポートされているVNCサーバー

RFBプロトコルによる自動化では、VNCサーバーを実行するためにSystem Under Test(SUT)が必要です。既存のVNC製品の概要は、VNCリモートデスクトップソフトウェアの比較の両方のWikipediaにあります。HeartCore Robo Desktopは、RFB 3.x互換のVNCサーバーで正常に動作するはずです。 

" vncconfig"あなたのサーバーでユーティリティを実行して、クリップボードの転送を動作させる必要があります。いくつかのVNCサーバはそれを配布しないので(例えばTightVNC)、その機能はHeartCore Robo Desktopでスイッチオフされるかもしれません。クリップボードの変更を使用してサーバーからクライアントにテキストを転送する場合は、UltraVNCやRealVNCなどのVNCサーバーを入手します。  


デスクトップPCプラットフォーム


ポータブルデバイス

標準のPCキーボードイベントへの電話キーボードのマッピングについては、使用している特定のサーバーのドキュメントを参照してください。

多くのモバイルVNCサーバーは、RFB 3.x仕様を完全に満たしておらず、標準のVNCセッション設定でクラッシュする可能性があることに注意してください。接続に障害が発生した場合は、ロボット側(編集 - >環境設定 - > RFB(VNC)3.xクライアント)の
RFBクライアントを最小構成に再設定することをお勧めします( Raw以外のすべてのエンコーディングを無効にし、カスタムピクセル形式)。コンソールのデバッグログを設定することもお勧めします コンソールウィンドウ(コマンドプロンプト)にデバッグメッセージを出力するように設定することをお勧めします。今回接続が成功した場合は、エンコードを追加したり、ピクセルフォーマットを1つずつ設定してクラッシュの原因となるものを特定してみてください。ほとんどの問題は、CursorまたはZlibのエンコードが有効になっているか、またはサーバーが処理できないピクセル形式に強制されている場合に発生します。

モバイルデバイスに適したサーバーの概要:
VMLite などの一部のモバイルサーバーでは、USBケーブルを介したサーバー通信のトンネリングによってネットワーク接続を回避できます。不安定なWiFiを避ける別の方法は、プライベートルータまたはUSB WiFiホットスポットデバイスを使用することです。デバイス間の通信をブロックする「AP分離」設定を適用しないように設定してください。


次の表は、サーバーの詳細を示しています。リストに載っていない新しいサーバーでリストに寄稿したい場合は、HeartCore Robo Desktop Contactsの Webページからお問い合わせください。

VNCサーバー
プラットフォーム
ステータス/注釈
Tight VNC
すべてのサーバーでサポートされています
LinuxとWindowsで私たちがテストしました。TightVNCサーバーでは、Windows固有のキー(Win、Properties)が機能しないことに注意してください。この問題は報告されており、TightVNC 1.3.11または2.0で修正される可能性があります。
Real VNC
すべてのサーバーでサポートされています
RealVNCによってOEMソフトウェアの形で配布されるポータブルデバイス(携帯電話など)用のサーバは互換性がなく、HeartCore Robo Desktopでは動作しません。

RealVNC Free Editionは、標準のRFB v3.xプロトコルを使用しており、そのまま使用できます。

RealVNC Personal EditionRealVNC Enterprise Edition は、v4.xとしてコード化されたRFBプロトコルの独自の拡張機能で動作します。HeartCore Robo Desktopは、次のようにサーバー側で構成する必要がある3.3プロトコル互換モードでのみ、これらのサーバーと連携できます。

1.  VNCサーバーウィンドウの[ 接続  ]タブで、設定を変更します。
  認証 - なし
  暗号化 - なし
  VNCサーバーのユーザーに接続の承認を促す - Untick

2.   [ エキスパート設定]タブで、
  プロトコル3.3 - 真
UltraVNC
すべてのサーバーでサポートされています 私達によってテストされた; ユーザーによって動作すると報告されています。
リモートデスクトップ

VNCと互換性のあるUbuntuの機能)
Ubuntu Linux
私たちによってテストされています。アクセスを有効にするには:
  1. OSメニューの「システム」 - >「環境設定」 - >「リモートデスクトップ」を選択します。
  2. 「他のユーザーにデスクトップの表示を許可する」「他のユーザーがデスクトップを制御できるようにする」チェックボックスをオンにします
  3. 「このマシンへのアクセスを確認する必要があります」チェックボックスをオフにします。
  4. デスクトップサーバーはデフォルトのVNCポート5900で動作するため、ロボットから接続するには、IPだけ(「192.168.100.10」など)またはポート番号(「192.168.100.10:5900」)を持つIPを使用します。
Apple Remote Desktop(ARD; MacOSの機能
はVNCと互換性があります)
10.4 PPC Mac
10.5以降(Intel Mac)
10.6 Snow Leopardでテストしました。従来のプラットフォームはユーザーによって動作すると報告されていました。

HeartCore Robo DesktopでARDを動作させるには、Mac OS Xデスクトップで次の手順を実行します。
  1. システムのメインメニュー(Appleアイコン)から「システム環境設定」を起動します。
  2. インターネットとワイヤレスセクション での公開共有
  3. 一覧の[ 画面の共有]チェックボックスをオンにします 
  4. クリックしてコンピュータの設定をオフに設定ボタン、「誰でも許可を要求することができる」に設定し、「VNCビューアは、パスワードを使用して画面を制御することができる」とパスワードを入力します
  5. OKで確認してください (承認が必要な場合があります) 
  6. ウィンドウに、「vnc://192.168.100.10/」のようなURLを含む説明が表示されます 。デスクトップサーバーはデフォルトのVNCポート5900で動作するため、ロボットから接続するには、IPだけ(「192.168.100.10」など)またはポート番号(「192.168.100.10:5900」)を持つIPを使用します。
キヤノンのリモートオペレータのソフトウェアキット
ユーザーが作業すると報告されました。デスクトップを正しい色で表示するには、HeartCore Robo Desktopバージョン3.1.1以降が必要です。
ポケットVNC
Windows CEおよびWindows Mobileデバイス
私たちによってテストされています。PocketVNC v1.4.3などの古いバージョンには、デスクトップイメージの転送を中断するバグがあります。回避策があります:
  1. HeartCore Robo Desktop GUIのEdit-> Preferencesに移動して、"RFB(VNC)Client" パネルを探します。
  2. HextileとRawエンコーディングをリストの1番目と2番目に移動します。
  3. [カスタムピクセル形式を使用する]を選択し、ドロップダウンメニューで[16ビット(65k色)]を選択します。
PocketVNCサイト のWindows Mobile Networkの記事を参照して、HeartCore Robo Desktopからモバイル接続を取得する方法を確認してください。携帯電話がIPアドレスを持たないがネットワークに接続されている場合は、RFBリッスンモードを使用してPocketVNCからHeartCore Robo Desktopに逆接続します。

バッテリを節約するために一部のデバイスがネットワークから定期的に切断されるため、ロボットは「サーバーへのルートなし」や「サーバーが見つかりません」などのメッセージで接続できないことがあります。PCからデバイスのIPをpingすると、場合によっては起動するようです。それでも問題が解決しない場合は、デバイスをネットワーク(WiFi)に再接続し、VNCサーバーを再起動して、接続がアクティブで、デバイスがローカルネットワークに表示されていることを確認します。
 
注: Pocket VNCとHeartCore Robo Desktopを組み合わせることで、WindowsモバイルOSおよびアプリケーションテスト用のブラックボックスGUI自動化ソリューションはごくわずかです。
EfonVNC
Windows CEおよびWindows Mobileデバイス バージョン4.3はユーザーによって動作すると報告されています。デフォルトでは、サーバーは通常とは異なる15ビットピクセル形式を使用しているため、画面が青みがかったように見えることがあります。これは、ロボットが次のように標準ピクセル形式の1つを要求するようにすることで修正できます。
  1. HeartCore Robo DesktopGUIで編集 - >環境設定に行き、"RFB(VNC)クライアント" パネルを探します。
  2. [ カスタムピクセル形式を使用する]チェックボックスをオンにし、ドロップダウンメニューで任意の標準ピクセル形式を選択します(32ビットはOKです)。
mVNC
Symbian OSモバイルデバイス
ユーザーが作業すると報告されました。

デバイスのキーボードのほとんどのキーはPCの数字キーにマッピングされているため、デバイスの入力を自動化するコマンドでは、 "location = numpad"パラメータを使用する必要があります。たとえば、123456789の電話番号の入力を自動化するには、次のように入力します"Type 123456789 location=numpad"
Veency
iOS(iPod、iPhone)
基本的な機能について私たちによってテストされています。ユーザーによって動作すると報告されています。Veencyには、jailbroken (rooted)デバイスが必要です。iOS APIには、必要な機能へのアクセスを提供するインターフェイスが含まれていないため、代替手段はありません。jailbreaking中にデバイスにインストールされるCydiaからVeencyをインストールすることができます。

凍結しているディスプレイイメージやその他の接続の問題が発生した場合は、次の手順を実行します。
  • Veency側で、Enable Cursorプリファレンスを有効にします。
  • ロボット側で、Edit-> Preferencesにナビゲートし、"RFB(VNC)v3.x Client"パネルを選択し、Raw エンコーディングをリストの一番上に移動します。より新しいロボットバージョンでは、カーソルの エンコーディングを無効にします(右の無効リストに移動します)。

iOS 6で動作しているVeency v0.9.3381以降では、接続がパスワードで保護されていないと、キーボードとマウスの入力が無効になることがあります。この現象が発生 すると、Veency UIでパスワード設定し 、デバイスを再起動します。

iOSテストの代替方法については、iOSミラー接続を参照してください。

VMLite VNCサーバー アンドロイド VMLite VNCサーバーは、GoogleのPlayストアからのわずかな料金で利用可能な商用ソフトウェアです。これは、ルーテッド デバイスとルーティングされていないデバイスの両方で実行できます。
  • ルーテッドデバイスでは、サーバーを直接起動できます。
  • ルーティングされていないデバイスでは、PCに小型のVMLiteアプリケーションをインストールし、デバイスがUSBポートに接続されている間にサーバーを起動する必要があります。これは、USB経由でPCへのサーバー接続をトンネリングするオプションをサポートしているため、Wi-Fiネットワークに接続されいないデバイスのテストに適しています

Androidのテストの代替方法については、Android Over ADB接続を参照してください。