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は通常非表示になり、自動化されたデスクトップを妨げない視界を確保します。
|
2.2 シングルOSとマルチデスクトップ
![]() | 単一のマシン/OS上に複数のデスクトップインスタンスを実行する構成(Linux/Unixで典型的な形態)では、単一システム上で複数のVNCサーバー(デスクトップ)を稼働させることが可能です。各サーバーインスタンスは独自のポートで動作し、デフォルトのシステムデスクトップ(画面に表示されているもの)とは独立したスタンドアロンのグラフィカルデスクトップを提供します。この場合のマシンはクライアントシステムとSUTの両方として機能します。T-Plan Robotは通常(必ずしもではありませんが)デフォルトシステムデスクトップ(図に表示されている通り)上で実行され、VNCサーバーに接続します。
|
2.3 複数のOSインスタンスを持つ単一マシン
![]() | この構成では、次のような仮想化技術を利用します。VirtualBoxまたはVMware。このシナリオでは、デフォルトの OS(仮想化用語では 「ホストシステム」 と呼ばれる)が、独自の OS(「ホステッドシステム」 と呼ばれる)を搭載した仮想マシン(VM)を実行します。ホストシステムとホステッドシステムは、特定の仮想化テクノロジーがサポートする OS の任意の組み合わせとすることができます。
設定方法:
注意事項 |
2.4 デュアルシステム環境
![]() ![]() | このシナリオでは、安定した専用デバイス(別のPC、モバイルデバイス、KVMスイッチ、POS端末など)がVNCサーバーを実行していることを前提としています。この構成は自動化生産シナリオに推奨されます。テスト対象システム(SUT)が物理的に別々のマシンであるため、安定した状態を維持し、必要なバックアップを作成したり、各テストサイクル後にシステムを復元するルーチンを設定したりすることが容易です。当該デバイスがネットワークに接続されている場合、イントラネットまたはインターネット経由で複数ユーザー(クライアントシステム)のテスト環境としても機能します。また、SUTがT-Plan Robot Enterpriseの実行要件(Java SE非対応システム)を満たさない場合、単一マシンシナリオが利用できない唯一の構成でもあります。設定手順は以下の通りです:
|
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 エンコーディングが有効になっている場合、またはサーバーが処理できないピクセルフォーマットが強制された場合に発生します。
モバイルデバイス向け推奨サーバーの概要:
Symbian(S60) - mVNC
アップルiOS(iPod、iPhone) - Vine
Android - VMLite VNC Server
一部のモバイルサーバー(例:VMLite)では、サーバー通信をUSBケーブル経由でトンネリングすることでネットワーク接続を回避できます。不安定なWiFiを回避する別の方法として、プライベートルーターやUSB WiFiホットスポットデバイスの使用があります。デバイス間の通信を遮断する「AP分離」設定を適用しないよう、必ず設定してください。
以下のマトリックスはサーバーの詳細を説明しています。新規未掲載サーバー
VNCサーバー | プラットフォーム | ステータス/注意事項 |
|---|---|---|
すべてサーバーがサポート | 当社にてLinuxおよびWindows環境でテスト済みです。Windows固有のキー(Winキー、プロパティ)はTightVNCサーバーでは動作しない点にご注意ください。この問題は報告済みであり、TightVNC 1.3.11または2.0で修正される見込みです。 | |
すべてサーバーがサポート | 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プロトコル互換モードでのみ動作可能です。サーバー側で以下の設定が必要です:
認証 - なし
プロトコル 3.3 - True | |
当社によるテスト済み;ユーザーから動作報告あり。 | ||
リモートデスクトップ(VNCと互換性のあるUbuntuの機能) | Ubuntu Linux | 当社でテスト済み。アクセスを有効にするには:
|
アップルリモートデスクトップ(ARD、Mac OSではVNCと互換性あり) | 10.4 PPC Mac10.5以上(インテルMac) | 当社によるテスト済み(レガシープラットフォームはユーザーから動作報告あり)。ARDをT-Plan Robot Enterpriseで動作させるには、Mac OS Xデスクトップで以下の手順を実行してください:
|
ユーザーから報告された不具合。デスクトップを正しい色で表示するには、T-Plan Robotバージョン 3.1.1 以降が必要です。 | ||
Windows CEおよびWindows Mobileデバイス | 当社でテスト済み。PocketVNC v1.4.3などの旧バージョンには、デスクトップ画像転送を妨げるバグが含まれています。回避策があります:
| |
Windows CEおよびWindows Mobileデバイス | バージョン4.3はユーザーにより動作が確認されています。サーバーはデフォルトで非標準の15ビットピクセルフォーマットを使用するため、画面が青みがかって見える場合があります。これは、Robotに以下の方法で標準ピクセルフォーマットのいずれかを要求させることで修正できます:
| |
Symbian OSモバイル機器 | ユーザーからの動作報告デバイスのキーボードのほとんどのキーはPCのテンキーにマッピングされているため、デバイスでの入力を自動化するコマンドは「location=numpad」パラメータを使用する必要があります。例えば、電話番号123456789の入力を自動化するには、"Type 123456789 location=numpad "を使用します。 | |
Veency | iOS(iPod、iPhone) | 基本機能については当社でテスト済み。ユーザーからの動作報告あり。Veencyは脱獄(ルート化)済みデバイスが必要です。iOS APIには必要な機能へのアクセスを提供するインターフェースが含まれていないため、代替手段はありません。Veencyは脱獄時にデバイスにインストールされるCydiaからインストールできます。画面のフリーズやその他の接続問題が発生した場合は、以下の手順を実行してください:
|
アンドロイド | VMLite VNC Serverは、Google Playストアから少額で購入できる商用ソフトウェアです。ルート化済みデバイスと非ルート化デバイスの両方で動作します:
Androidテストの代替手段については、Android Over ADB接続を参照してください。 |
4.ファインチューニング
クライアント側の設定
ロボットは、ロボットアプリケーションとVNC接続の両方のパフォーマンスを向上させる可能性のある、複数の設定可能なパラメータをサポートしています。以下の表に最も重要なものを示します。
パラメータ名(位置) | 説明 |
|---|---|
エンコーディング | エンコーディングは、ロボットとVNCサーバー間で転送される画像データの符号化方法を指定します。これらは順序付きリストとして指定され、最初の(最上位の)項目が最優先となります。各エンコーディングは異なる符号化アルゴリズムを使用し、ネットワーク経由で転送されるデータ量(圧縮率が高いほどデータ量が少ない)と、それを復号化するために必要なローカルCPUリソースとのトレードオフを図ります。
エンコーディングの効率を確認するには、同じパネル内の「コンソールデバッグログ」パラメータを「完全」に設定し、コンソールウィンドウ(コマンドプロンプト)でパフォーマンスデータを確認してください。 |
コネクション・プーリング(Java API) | 接続プールによりサーバー接続を再利用でき、再接続のオーバーヘッドを回避できます。このメカニズムはJava APIから直接適用可能です。詳細はRemoteDesktopClientFactoryクラスのドキュメントを参照してください。 |
サーバー側の設定
クライアントとサーバー間の接続パフォーマンスを大幅に向上させる可能性のある、いくつかの簡単な推奨事項があります:
サーバーのデスクトップ背景を、エンコーディングによって効率的に圧縮できる単色に変更してください。画像や写真は、ネットワーク経由で転送される画像データの量を大幅に増加させます。
デスクトップから、時計や画像をループ表示するガジェットなど、不要な動的に更新されるオブジェクトをすべて削除してください。これらのコンポーネントは頻繁なデスクトップ更新の原因となり、ネットワークトラフィックを増加させます。
可能であれば、異なるメーカーのサーバーを試してみてください。一部の製品には、パフォーマンスを向上させるためのカスタムビデオドライバや接続機能が付属しています。
適切なリモートデスクトップサイズ(解像度)を使用してください。画像データの量はデスクトップサイズに比例します。




