Skip to main content
Skip table of contents

vnc (JA)


VNCサーバーの自動化

内容

1. はじめに
2. サポートされる構成
3. 対応VNCサーバー
4. 微調整

1.はじめに

VNCサーバー接続により、T-Plan Robot Enterpriseはリモートフレームバッファプロトコル(RFB)を介して機械やデバイスを自動化できます。このプロトコルは仮想ネットワークコンピューティングまたはVNCとして広く知られています。VNC技術は多くの製品に採用されているため、この接続はコンピュータに限定されません。RFB 3.x互換のVNCサーバーを実行するあらゆるデバイスを一般的に自動化できます。ロボットは以下のような幅広いシステムの自動化に成功して導入されています:

  • PC

  • 携帯電話

  • KVMスイッチ

  • POSマシン

メリット
  • シンプルさ

  • 幅広い採用、複数のOSによるサポート

  • 画像エンコーディング(圧縮)によるTCP/IPネットワーク上での良好なパフォーマンス

デメリット
  • キーボードサポートはラテン1文字セット(ISO 8859-1)に限定されます

  • タッチデバイスでのマルチフィンガージェスチャーのサポートなし

  • 限定的なセキュリティ(平文パスワード認証)は、SSHトンネル経由で解決可能

2.サポートされる構成

VNCサーバーは、以下の構成で使用できます:


2.1 ローカル・デスクトップ・オートメーション

ローカルデスクトップ自動化は、ロボットがVNCサーバーが動作する同一システム(デスクトップ)を自動化することを前提としています。これは、MS WindowsやMac OS Xに依存する単一OSソリューションで一般的です。自動化が進行中またはスクリーンショット作成中は、ロボットGUIは通常非表示になり、自動化されたデスクトップを妨げない視界を確保します。
この設定を行うには:

  1. 対応VNCサーバーのいずれかをインストールし、起動してください。

  2. ロボットを設置する。

  3. ロボットを起動します。接続タイプとして"VNC Server"を選択し、Serverフィールドに"localhost"を入力します。他の設定用に予約されている "127.0.0.1" は使用しないでください。サーバーが 5900 以外のカスタムポートで動作する場合は、コロン(:)の後にポートを指定してください("localhost:5901")。
    この設定の代替手段として、ローカルデスクトップ接続があります。これは、ローカルにインストールされた Java を使用して、ローカルデスクトップを自動化します。VNCサーバーなどの他のコンポーネントは不要です。この接続の欠点は、telnetやrshなどの端末を介して(別のPCやデバイスから)リモートでテストスクリプトを起動できないことです。代わりにVNCサーバーを使用してください。


2.2 シングルOSとマルチデスクトップ


単一のマシン/OS上に複数のデスクトップインスタンスを実行する構成(Linux/Unixで典型的な形態)では、単一システム上で複数のVNCサーバー(デスクトップ)を稼働させることが可能です。各サーバーインスタンスは独自のポートで動作し、デフォルトのシステムデスクトップ(画面に表示されているもの)とは独立したスタンドアロンのグラフィカルデスクトップを提供します。この場合のマシンはクライアントシステムとSUTの両方として機能します。T-Plan Robotは通常(必ずしもではありませんが)デフォルトシステムデスクトップ(図に表示されている通り)上で実行され、VNCサーバーに接続します。
設定手順:

  1. 任意の対応VNCサーバーをインストールし、起動してください。

  2. ロボットをインストールしてください。

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

2.3 複数のOSインスタンスを持つ単一マシン

この構成では、次のような仮想化技術を利用します。VirtualBoxまたはVMware。このシナリオでは、デフォルトの OS(仮想化用語では 「ホストシステム」 と呼ばれる)が、独自の OS(「ホステッドシステム」 と呼ばれる)を搭載した仮想マシン(VM)を実行します。ホストシステムとホステッドシステムは、特定の仮想化テクノロジーがサポートする OS の任意の組み合わせとすることができます。

  • ホスティングシステムは通常、Robotを実行しクライアントシステムの役割を担います。Robotを別の専用VMインスタンス上で実行することも可能ですが、T-Plan Robotユーザーから報告されている環境固有の問題点のため、この構成は推奨されません。クライアントとサーバーの役割は逆転できず、VMがホスティングシステムをリモート制御(および自動化)することはできない点に留意してください。

  • ホストされたシステムはVNCサーバーを実行します。

設定方法:

  1. VirtualBox または VMware をインストールしてください。

  2. 仮想マシンを作成し、そこにホスト型OSをインストールする。

  3. ホストシステムに対応VNCサーバーをホスト・システム上で起動する。をインストールし、起動してください。

  4. ホストシステムからVNCポートを可視化するように仮想マシンを設定します( (VirtualBoxの手順).

  5. ホスティングシステムにロボットをインストールする。

  6. ロボットを起動します。接続タイプとして「VNCサーバー」を選択し、サーバーフィールドに仮想マシンのIPアドレスとポートを入力します。例:「192.168.100.2:5901」

注意事項

  • VMware上で動作するVNCサーバーでは、クライアントとサーバーのキーボードレイアウトが異なる場合にキーマッピングの問題が発生することが報告されています(例[1],例[2]).これにより、VNCデスクトップ上で一部の文字が誤って入力されることが一般的です。これはT-Plan Robot Enterpriseの障害ではありません。

  • Robot 4.3以降では、RDPサーバー接続を使用してVirtualBox VMに直接接続できます。

2.4 デュアルシステム環境

このシナリオでは、安定した専用デバイス(別のPC、モバイルデバイス、KVMスイッチ、POS端末など)がVNCサーバーを実行していることを前提としています。この構成は自動化生産シナリオに推奨されます。テスト対象システム(SUT)が物理的に別々のマシンであるため、安定した状態を維持し、必要なバックアップを作成したり、各テストサイクル後にシステムを復元するルーチンを設定したりすることが容易です。当該デバイスがネットワークに接続されている場合、イントラネットまたはインターネット経由で複数ユーザー(クライアントシステム)のテスト環境としても機能します。また、SUTがT-Plan Robot Enterpriseの実行要件(Java SE非対応システム)を満たさない場合、単一マシンシナリオが利用できない唯一の構成でもあります。設定手順は以下の通りです:

  1. SUTに任意の対応VNCサーバーをインストールし、起動してください。

  2. クライアントシステムにロボットをインストールする。

  3. ロボットを起動します。接続タイプとして 「VNCサーバー」を選択し、 「<マシン名またはIPアドレス>:<ポート番号>」  を サーバー 欄に入力します。

3.対応VNCサーバー

RFBプロトコルによる自動化には、被試験システム(SUT)がVNCサーバーを実行している必要があります。既存のVNC製品に関する優れた概要は、WikipediaのVNCおよびリモートデスクトップソフトウェアの比較の項目に記載されています。T-Plan Robot は、RFB 3.x互換のVNCサーバーであれば問題なく動作するはずです。

クリップボード転送を機能させるには、サーバー上で「vncconfig」ユーティリティを実行する必要があります。一部のVNCサーバー(例:TightVNC)では配布されていないため、T-Plan Robot Enterpriseではこの機能が無効化されている可能性があります。サーバーからクライアントへテキストを転送するためにクリップボード変更機能を使用する場合は、UltraVNCやRealVNCなど、この機能を備えたVNCサーバーを入手してください。

デスクトップPCプラットフォーム
  • MSウィンドウズ - TightVNC, RealVNC, UltraVNC

    • Windows上でVNCサーバーをサービスとして実行することを推奨します。これにより、T-Plan Robot からWindowsを再起動し、システム再起動後にログイン画面にアクセスできるようになります。Ctrl+Alt+Deleteなどのシステム予約キーの組み合わせを送信するには、T-Plan Robot GUIの左上隅にある「キー」タブを使用してください。

    • T-Plan RobotをTightVNCを実行しているWindowsサーバーに接続すると、リフレッシュの問題が発生する可能性があります。アプリケーションウィンドウがリモートデスクトップ上にコンテンツなしで表示される場合があり、ユーザーがウィンドウ上にマウスポインタを移動させると、ウィンドウ画像の一部が表示されることがあります。この動作を防ぐには、TightVNCの設定ウィンドウを開き、「フルスクリーンポーリング」チェックボックスを選択してください。

    • Windows固有のキー(例:Windowsキーやプロパティキー)は、VNCサーバーが対応している限り、Pressコマンドを通じてスクリプトで再現可能です。これらのキーはRealVNCおよびUltraVNCで正常に動作します。問題が発生した場合は、スクロールロックをオンにしてください(これはUltraVNCフォーラムで説明されている回避策です)。TightVNC 1.3.10 は Windows 固有キーをサポートしていませんが、2.0 リリースでの対応が計画されています。

  • Unix/Linux- TightVNC, RealVNC, リモートデスクトップ(Ubuntuなど一部のディストリビューションの組み込みシステム機能)

    • ほとんどのLinuxディストリビューションでは、パッケージリポジトリにVNCサーバーが含まれており、パッケージマネージャーを通じてインストールできます。お使いのマシンにソフトウェアがインストールされているかどうかを確認するには、ターミナルでvncserverを実行してみてください。

    • autocutselユーティリティは、Linux/Unix環境においてvncconfigの代わりにクリップボード転送を実現するために使用できます。サーバー側で「autocutsel -s PRIMARY」として実行する必要があります。DebianまたはUbuntuをご利用の場合、パッケージリポジトリから入手できる可能性があります。その他のリソースではxcutselも言及されていますが、T-Plan社ではテストしていません。RFBクライアントはLatin-1(ISO8859-1)文字セットの文字のみ転送可能である点にご注意ください。これはRFBプロトコルによる制限であり、当方では対応できません。

  • Mac OS X- アップル・リモート・デスクトップ(Mac OS Xシステム内蔵機能)、RealVNC、Vine

  • SolarisOS - RealVNCまたはSolaris 10 Update 5以降にバンドルされているデフォルトのVNCサーバーを使用します。

  • HP UX - RealVNC

  • エーアイエックス - RealVNC

  • その他 - キヤノン遠隔操作ソフトウェアキット

ポータブル機器

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

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

モバイルデバイス向け推奨サーバーの概要:

一部のモバイルサーバー(例:VMLite)では、サーバー通信をUSBケーブル経由でトンネリングすることでネットワーク接続を回避できます。不安定なWiFiを回避する別の方法として、プライベートルーターやUSB WiFiホットスポットデバイスの使用があります。デバイス間の通信を遮断する「AP分離」設定を適用しないよう、必ず設定してください。

以下のマトリックスはサーバーの詳細を説明しています。新規未掲載サーバー

VNCサーバー

プラットフォーム

ステータス/注意事項

Tight VNC

すべてサーバーがサポート

当社にてLinuxおよびWindows環境でテスト済みです。Windows固有のキー(Winキー、プロパティ)はTightVNCサーバーでは動作しない点にご注意ください。この問題は報告済みであり、TightVNC 1.3.11または2.0で修正される見込みです。

Real VNC

すべてサーバーがサポート

RealVNCがOEMソフトウェアとして配布する携帯端末(携帯電話など)向けサーバーは互換性がなく、T-Plan Robot Enterpriseでは動作しません。RealVNC Free Editionは標準のRFB v3.xプロトコルに依存し、そのまま使用可能です。RealVNC Personal EditionおよびRealVNC Enterprise Editionは、v4.xとしてコーディングされたRFBプロトコルの独自拡張版で動作します。T-Plan Robot Enterpriseは、これらのサーバーと3.3プロトコル互換モードでのみ動作可能です。サーバー側で以下の設定が必要です:

  1. VNCサーバーウィンドウの接続タブで設定を変更:

  認証 - なし
  暗号化 - なし
  VNC サーバーユーザーに接続の承認を求める - チェックを外す

  1. 詳細設定タブで:

  プロトコル 3.3 - True
2.についてエキスパート設定タブをクリックする:
プロトコル3.3 - True

UltraVNC

当社によるテスト済み;ユーザーから動作報告あり。

リモートデスクトップ(VNCと互換性のあるUbuntuの機能)

Ubuntu Linux

当社でテスト済み。アクセスを有効にするには:

  1. OSメニューでシステム->環境設定->リモートデスクトップを選択してください

  2. 他のユーザーに自分のデスクトップを表示する」と「他のユーザーに自分のデスクトップを操作する」のチェックボックスをオンにします

  3. このマシンへのアクセスは毎回確認する必要があります」チェックボックスをオフにする

  4. デスクトップサーバーはデフォルトのVNCポートである5900で動作するため、Robotから接続するにはIPアドレスのみ(例:「192.168.100.10」)またはIPアドレスとポート番号を組み合わせた形式(「192.168.100.10:5900」)を使用してください。

アップルリモートデスクトップ(ARD、Mac OSではVNCと互換性あり)

10.4 PPC Mac10.5以上(インテルMac)

当社によるテスト済み(レガシープラットフォームはユーザーから動作報告あり)。ARDをT-Plan Robot Enterpriseで動作させるには、Mac OS Xデスクトップで以下の手順を実行してください:

  1. システムメインメニュー(アップルアイコン)からシステム環境設定を起動します

  2. インターネット & ワイヤレス セクションで 共有 を開く

  3. リスト内の画面共有チェックボックスにチェックを入れてください。

  4. コンピュータ設定ボタンをクリックし、誰でも許可を要求できるをオフにし、VNCビューアはパスワードで画面を制御できるをオンにしてパスワードを入力してください

  5. OK で確認(認証が必要な場合があります) 

  6. ウィンドウには「vnc://192.168.100.10/」のようなURLを含む説明が表示されます。デスクトップサーバーはデフォルトのVNCポートである5900で動作するため、Robotから接続するには、IPアドレスのみ(例:「192.168.100.10」)またはIPアドレスとポート番号(「192.168.100.10:5900」)を使用します。。

キヤノン遠隔操作ソフトウェアキット

ユーザーから報告された不具合。デスクトップを正しい色で表示するには、T-Plan Robotバージョン 3.1.1 以降が必要です。

Pocket VNC

Windows CEおよびWindows Mobileデバイス

当社でテスト済み。PocketVNC v1.4.3などの旧バージョンには、デスクトップ画像転送を妨げるバグが含まれています。回避策があります:

  1. T-Plan Robot Enterprise GUI の 編集->設定 に移動し、「RFB (VNC) クライアント」パネルを探します。

  2. ヘクタイルとRAWエンコーディングをリストの最初と2番目に移動する。

  3. カスタムピクセル形式を使用」を選択し、ドロップダウンから「16ビット(65k色)」項目を選んでください。
    モバイル端末をT-Plan Robot Enterpriseから接続可能にする方法については、PocketVNCサイトのWindows Mobile Network記事を参照してください。モバイル端末がIPアドレスを取得できないがネットワークに接続されている場合、PocketVNCからT-Plan Robot Enterpriseへの逆接続にはRFBリスンモードを使用してください。一部のデバイスはバッテリー節約のため定期的にネットワークから切断されるため、Robotは「サーバーへの経路がありません」や「サーバーが見つかりません」といったメッセージで接続に失敗する可能性があります。PCから端末IPへのPing操作で復帰する場合があります。効果がない場合は、端末をネットワーク(WiFi)に再接続し、VNCサーバーを再起動して接続状態を確認してください。これにより端末がローカルネットワーク上で認識されるようになります。注記:Pocket VNCとT-Plan Robot Enterpriseの組み合わせは、WindowsモバイルOSおよびアプリケーションテスト向けの実質的なブラックボックスGUI自動化ソリューションとして極めて数少ない選択肢の一つです。

EfonVNC

Windows CEおよびWindows Mobileデバイス

バージョン4.3はユーザーにより動作が確認されています。サーバーはデフォルトで非標準の15ビットピクセルフォーマットを使用するため、画面が青みがかって見える場合があります。これは、Robotに以下の方法で標準ピクセルフォーマットのいずれかを要求させることで修正できます:

  1. T-Plan Robot Enterprise GUI の 編集->設定 に移動し、「RFB (VNC) クライアント」パネルを探します。

  2. カスタムピクセル形式を使用」チェックボックスをオンにし、ドロップダウンから任意の標準ピクセル形式を選択してください(32ビットで問題ありません)。

mVNC

Symbian OSモバイル機器

ユーザーからの動作報告デバイスのキーボードのほとんどのキーはPCのテンキーにマッピングされているため、デバイスでの入力を自動化するコマンドは「location=numpad」パラメータを使用する必要があります。例えば、電話番号123456789の入力を自動化するには、"Type 123456789 location=numpad "を使用します。

Veency

iOS(iPod、iPhone)

基本機能については当社でテスト済み。ユーザーからの動作報告あり。Veencyは脱獄(ルート化)済みデバイスが必要です。iOS APIには必要な機能へのアクセスを提供するインターフェースが含まれていないため、代替手段はありません。Veencyは脱獄時にデバイスにインストールされるCydiaからインストールできます。画面のフリーズやその他の接続問題が発生した場合は、以下の手順を実行してください:

  • Veency側でカーソルを有効にする設定を有効にしてください。

  • ロボット側で編集->環境設定に移動し、「RFB (VNC) v3.x クライアント」パネルを選択し、Rawエンコーディングをリストの一番上に移動します。新しいロボットバージョンでは、カーソルエンコーディングも無効化してください(右側の無効化リストに移動)。

    iOS 6上で動作するVeency v0.9.3381以降では、接続がパスワードで保護されていない場合、キーボードとマウスの入力が無効化されることがあります。この現象が発生した場合は、Veency UIでパスワードを設定し、デバイスを再起動してください。
    iOSテストの代替手段については、iOSミラー接続を参照してください。

VMLite VNC Server

アンドロイド

VMLite VNC Serverは、Google Playストアから少額で購入できる商用ソフトウェアです。ルート化済みデバイスと非ルート化デバイスの両方で動作します:

  • ルート化されたデバイスでは、サーバーを直接起動できます。

  • ルート化されていないデバイスでは、PCに小型のVMLiteアプリケーションをインストールし、デバイスをUSBポートに接続した状態でサーバーを起動する必要があります。USB経由でサーバー接続をPCにトンネルするオプションをサポートしているため、Wi-Fiネットワークに接続されていないデバイスのテストに適しています。

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

4.ファインチューニング

クライアント側の設定

ロボットは、ロボットアプリケーションとVNC接続の両方のパフォーマンスを向上させる可能性のある、複数の設定可能なパラメータをサポートしています。以下の表に最も重要なものを示します。

パラメータ名(位置)

説明

エンコーディング
(GUI:Preferences->RFB (VNC) 3.x Client)

エンコーディングは、ロボットとVNCサーバー間で転送される画像データの符号化方法を指定します。これらは順序付きリストとして指定され、最初の(最上位の)項目が最優先となります。各エンコーディングは異なる符号化アルゴリズムを使用し、ネットワーク経由で転送されるデータ量(圧縮率が高いほどデータ量が少ない)と、それを復号化するために必要なローカルCPUリソースとのトレードオフを図ります。

  • VNCサーバーが遠隔地にある場合やネットワークが遅く、ローカルCPUが十分に高速な場合は、TightZlibHextileなどの高圧縮エンコーディングのいずれかを最優先に設定してください。

  • ローカルCPUが遅くネットワークが高速な場合、圧縮率は低いが復号コストが安いHextileRRE、またはCoRREを試してみてください。

  • Rawエンコーディングを優先(最初に設定)しないでください。これは圧縮なしの生の形式でピクセルが転送される最も非効率な方式です。ただし、一部の簡易サーバー(モバイルデバイスや組み込みシステムなど)はこの方式のみをサポートし、存在を要求するため、リストの下位に配置しておく必要があります。

  • 問題が発生しない限り、リスト内のカーソルエンコーディングを(任意の位置に)保持してください(一部のサーバーはこれを嫌がり、存在するとクラッシュする傾向があります)。これにより、クライアント(ロボット)はカーソルをデスクトップ画像にエンコードするのではなく、ローカルでレンダリングします。これにより、低速なネットワーク環境においてデスクトップのパフォーマンスが大幅に向上します。また、画像比較が容易かつ信頼性の高いものになります。

エンコーディングの効率を確認するには、同じパネル内の「コンソールデバッグログ」パラメータを「完全」に設定し、コンソールウィンドウ(コマンドプロンプト)でパフォーマンスデータを確認してください。

コネクション・プーリング(Java API)

接続プールによりサーバー接続を再利用でき、再接続のオーバーヘッドを回避できます。このメカニズムはJava APIから直接適用可能です。詳細はRemoteDesktopClientFactoryクラスのドキュメントを参照してください。

サーバー側の設定

クライアントとサーバー間の接続パフォーマンスを大幅に向上させる可能性のある、いくつかの簡単な推奨事項があります:

  • サーバーのデスクトップ背景を、エンコーディングによって効率的に圧縮できる単色に変更してください。画像や写真は、ネットワーク経由で転送される画像データの量を大幅に増加させます。

  • デスクトップから、時計や画像をループ表示するガジェットなど、不要な動的に更新されるオブジェクトをすべて削除してください。これらのコンポーネントは頻繁なデスクトップ更新の原因となり、ネットワークトラフィックを増加させます。

  • 可能であれば、異なるメーカーのサーバーを試してみてください。一部の製品には、パフォーマンスを向上させるためのカスタムビデオドライバや接続機能が付属しています。

  • 適切なリモートデスクトップサイズ(解像度)を使用してください。画像データの量はデスクトップサイズに比例します。

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.