スタンドアロン版リリース 概要
1. 概要
この文書は、スタンドアロンプラットフォーム向けRobotリリースの詳細を記載しています。Javaの選択とインストール方法、微調整、トラブルシューティング、更新、およびRobotアプリケーションの移行手順を説明します。これらの手順は、Javaがアプリケーション内にパッケージ化されており一切変更できない、Mac/Windows/Linux向けRobotなどのOS固有リリースには適用されません。
ここに提供される情報は高度に技術的であり、開発者のみを対象としています。
2. Java の要件
RobotはJavaアプリケーションであり、サポート対象バージョンのJavaがインストールされたあらゆるシステム上で動作します。他のJavaベンダーも存在しますが、RobotはOracleのJava上で開発されているため、お客様のプラットフォーム(OS)がサポートされている限り、このベンダーを推奨します。
Robot Version | Supported Java versions | Note |
|---|---|---|
8.0+ | Java 11+ (systems) | ロボットは、IBM AIXなど、Javaをサポートする非公式のシステム上でも動作する可能性があります。 |
7.0+ | Java 9+ (systems) | |
6.3.3 | Java 8-18 (systems) | Java 9以降ではプラグインの動的ロードは不可能です。プラグインJARファイルはクラスパスに配置するか、インストールフォルダにコピーする必要があります。詳細は起動の章を参照してください。 |
Javaがマシンにインストールされているかどうかを確認するには、ターミナルウィンドウ(Unix/Linux)またはコマンドプロンプト(Windows)を開き、次のコマンドを実行してください:
java -version
お使いのマシンにJavaがインストールされており、そのバイナリがシステムパス上にある場合、そのバージョンが表示されます。Javaがインストールされていない場合は、以下の場所から無料でダウンロードできます:
Javaは2つのディストリビューションで提供されています。Javaランタイム環境(JRE)とJava開発キット(JDK)です。JREはJDKのサブセットであり、開発に必要なJavaソースコードコンパイラやライブラリを含みません。Robotは両方で動作しますが、JavaスクリプトやJavaコードブロックの開発やオンザフライ実行など、特定の機能にはJDKが必要です。この機能を使用する場合はJDKを入手してください。NetBeans IDEでのJava開発に慣れている場合は、Oracle Inc.からJDKと一体のソフトウェアバンドルとして入手することを検討できます。両コンポーネントはオープンソースで無料です。JDKのインストールには、次の章で説明するシステムパスの更新が必要です。
3. JDK のインストールと設定
Javaスクリプトの開発やJavaコードブロックの使用を計画している場合は、JDKをインストールし、以下のいずれかの方法でRobotを設定する必要があります:
代替案1: Robotの設定からJDKパスを設定する:
ロボットGUIで、ファイル>新規スクリプト>Javaスクリプトを選択し、新しいJavaスクリプトを作成します。
エディタを右クリックし、コンパイルを選択します。
ロボットは既知のパスからインストール済みのJDKパッケージを検索します。JDKが見つかった場合、コンパイルは成功しエラーは報告されません。見つからない場合は、JDKのインストールパスまたはjavacコンパイラの場所を手動で設定できる「環境設定」ウィンドウへ誘導するメッセージが表示されます。
自動設定をキャンセルする必要がある場合、または別のJDKに切り替える必要がある場合は、[編集]>[環境設定]>[Javaスクリプトインタプリタ]パネルでパスを再設定できます。
代替案2: Robotをjavaまたはjavawバイナリを使用して起動させる(全製品バージョン)。この方法は、両方が設定されている場合、最初の代替案を上書きする。
オプション1: <JDK_dir>\bin のパスをシステムパスに追加します。これにより、OSがすべてのJavaアプリケーションのデフォルトインタプリタとしてJDKを使用するようになります。
MS Windows の手順:
Windows エクスプローラーを起動し、[コンピュータ] ノードを右クリックして、コンテキスト メニューから [プロパティ] を選択します。
詳細タブまたは項目(Windowsのバージョンによって異なります)に移動し、環境変数を選択します。
システム変数「Path」を編集し、JDKのbin/ディレクトリへのパスを、パス先頭にセミコロンを付けて追加します(例:「C:\Program Files\Java\jdk1.8.0_<version>\bin;」)。
変数を保存し、すべてのウィンドウをOKで閉じます。
コマンドプロンプトを開き、javac と入力します。コマンドが検出され、サポートされているパラメータが表示される必要があります。
その他のシステム:
他のシステムへのJDKのインストールでは、デフォルトでJDKバイナリを使用するようにシステムが設定される場合とされない場合があります。
システムパスリストの調整方法や、特定のJavaディストリビューションにJavaアプリケーションを関連付ける方法については、お使いのOSのドキュメントを参照してください。
オプション2: ロボット起動コマンド内の「java」を、JDKの「java」バイナリへの絶対パスに置き換える。
たとえば、MS Windows では robot.bat ファイルを編集し、「java」を「C:\Program Files\Java\jdk1.8.0_<version>\bin\java」に置き換え、バッチファイルを使用して Robot を起動します。
他の起動方法の変更方法については、Startupの章を参照してください。
ロボットがJDK上で動作していることを確認するには、ロボットのGUIを再起動し、メニューから[ヘルプ]>[バージョン情報]を選択します。次に[システム情報]タブに切り替え、java.homeプロパティの値がJDKのインストールフォルダを指していることを確認してください。
4. Startup
スタンドアロン版Robotを起動するには、robot.bat(MS Windows)またはrobot.sh(Linux/Unix)ファイルを実行してください。
CLIコマンドのヘルプはrobot.sh -h、またはrobot.bat --helpを実行してください。完全なリファレンスはCLIリファレンスを参照してください。ツールが起動しない場合は、このドキュメント末尾のトラブルシューティング章を確認してください。ラッパースクリプトは実際には適切なオプションでJavaを起動するだけです。Robot起動コマンドをカスタマイズする必要がある場合は、以下の構文を使用してください:
Linux/Unix: | java -Xmx512m -classpath "./*:libs/*:plugins/*:libs/selenium/*:libs/poi/*" com.tplan.robot.ApplicationSupport <Robot CLI parameters> |
MS Windows: | java -Xmx512m -classpath ".\*;libs\*;plugins\*;libs\selenium\*;libs\poi\*" com.tplan.robot.ApplicationSupport <Robot CLI parameters> |
ツールを「java –jar robot.jar」として起動したり、robot.jarファイルをダブルクリックして起動したりすることは推奨されません。これによりJavaコンパイラのクラスパスが正しく設定されず、ツールがJavaソースコード(Javaスクリプトや通常のスクリプトに埋め込まれたJavaコードブロックなど)のコンパイルや実行を拒否する可能性があります。
ロボットは、シンプルなCLIインターフェースを介したオフライン画像比較にも使用できます。この機能を利用するには、ラッパースクリプトimgcompare.sh(Unix/Linux用)またはimgcompare.bat(Windows用)のいずれかを実行するか、以下のようにJavaを直接呼び出します:
Linux/Unix: | java -classpath -classpath "./*:libs/*:plugins/*:libs/selenium/*:libs/poi/*" com.tplan.robot.ImageComparison <Image comparison CLI parameters> |
MS Windows: | java -classpath -classpath "./*:libs/*:plugins/*:libs/selenium/*:libs/poi/*" com.tplan.robot.ImageComparison <Image comparison CLI parameters> |
5. アップグレードと移行
OS固有のリリースは再インストールしかできない場合があるのとは異なり、より多くの選択肢があります:
代替案1: 自動アップグレード
自動アップグレードは、GUIを通じて製品を新しいバージョンへ移行する快適で信頼性の高い方法を提供します。手動アップグレードとは異なり、自動プロセスはファイル破損に対する保護(CRC32)を備え、カスタマイズ/変更された製品ファイルを検出し、更新失敗時には元の製品を復元することが可能です。手順:
GUIでツール->更新とアップグレードを選択してください。ロボットが書き込み権限不足を訴える場合は、管理者権限で再起動し、再試行してください。
ツリーで対象リリースを選択し、ダウンロードとインストールをクリックします。OKでウィンドウを閉じ、アプリケーションを再起動してください。アップグレードプロセスの詳細は、更新とアップグレードのヘルプトピックでご確認いただけます。
代替案2: 手動アップグレード
必要なスタンドアロンのクロスプラットフォームZIPリリースをダウンロードしてください。以下のいずれかのリソースから入手できます:
更新とアップグレード ウィンドウの「ダウンロードと保存」ボタンからダウンロードしてください。
カスタムまたはプライベートビルドの場合、T-Planスタッフから直接ダウンロードリンクが送付されることがあります。
製品ファイル(例:robot.sh や robot.bat の起動スクリプトなど)を修正またはカスタマイズした場合は、バックアップを作成し、更新プロセス後に復元してください。スクリプト、テンプレート画像、設定ファイルは影響を受けないため、バックアップする必要はありません。
ZIPアーカイブをインストールフォルダに解凍し、ファイルの上書きを許可してください。インストールフォルダとは、robot.jarファイルが含まれるディレクトリを指します。
ロボットの移行は比較的簡単です。スタンドアロンのZIPリリースは、ファイルシステム上で単純にコピー・移動したり、異なるオペレーティングシステムを搭載した別のマシンへ移行することも可能です。別のマシンへ移行する場合は、設定変更を保持するため、ユーザー固有の設定ファイルもユーザーのホームフォルダへコピーしてください。
6. パフォーマンスの最適化
ロボットがメモリ集約的な画像処理を実行するため、特定のシステムではメモリ性能の調整が必要となる場合があります。
コンソールウィンドウ(Windowsではコマンドプロンプト)にjava.lang.OutOfMemoryErrorまたはjava.lang.StackOverflowErrorのスタックトレースが表示された場合、応急処置としてRobotプロセスに割り当てられるメモリ量を増やします:
起動設定に基づいてロボットのJava起動コマンドを特定してください:
Startupの章で説明されているようにJavaを直接呼び出す場合は、使用するコマンドを変更してください。
robot.shまたはrobot.batスクリプトを利用してRobotを起動する場合は、スクリプトを編集し、その中の起動用Javaコマンドを変更してください。
robot.jarファイルをダブルクリックしてRobotを起動する場合は、代わりにスクリプトを使用してください。JARファイルを起動すると、OSはデフォルトのヒープサイズ(通常128MB)でプログラムを実行します。
ロボットがjava.lang.OutOfMemoryErrorで失敗した場合、ヒープサイズを増加させる必要があります。java(またはjavaw)コマンド後の-Xmxパラメータは、Java仮想マシンが使用できる最大ヒープメモリ量を指定します。この数値を大きくしてください。例えば、-Xmx512m を指定すると、必要に応じて JVM ヒープが最大 512MB まで拡張されます。この制限値は、メモリが即座に割り当てられることを意味するものではありません。
ロボットがjava.lang.StackOverflowErrorで失敗した場合、-Xssパラメータでスタックサイズを増やしてください。構文は-Xmxと同じです。x86システムでは通常384k~512k、x64システムでは1MBがデフォルトのスタックサイズであるため、x86ではスタックメモリを1MB(-Xss1m)、x64では2MB(-Xss2m)に増やすことで通常は十分です。
Javaは-Xmxスイッチを通じてRAMのサイズまでの任意の数値を受け入れる可能性が高いが、その動作はさらにシステムアーキテクチャに依存します:
Javaは、32ビットシステム(x86)において、約1GBを超えるメモリを割り当てることができません。これは主に二つの要因によるものです。Javaはヒープ用に連続した(途切れない)メモリ領域を必要とします。また、ほとんどの32ビットシステムは2GBを超えるRAMを直接アドレス指定できません。OS自体がかなりのメモリを消費するため、このような環境でJavaが割り当て可能な最大の連続領域は通常約1GBとなります。
より多くのメモリを必要とするデプロイメントは、十分な物理RAMを備えた64ビットシステム(OSとJavaの両方が64ビットである環境)でのホスティングが推奨されます。ロボットアプリケーションは、64ビットJVMでは32ビット環境の2倍のメモリを消費することに注意してください。これは、メモリの大部分を占める参照(ポインタ)がすべて倍のサイズ(32ビットではなく64ビット)になるためです。この観点から、1GBのRAMを搭載した32ビット環境から2GBのRAMを搭載した64ビット環境へRobotを移行しても、アプリケーションが追加メモリを割り当てられないため、あまり意味がありません。このような場合、x64システムに32ビットJavaをインストールして使用した方が同等か、場合によってはより良い結果が得られる可能性があります。
メモリ消費を最小限に抑えるためのヒント:
開いているスクリプトエディタの数を最小限に抑えてください。通常、一度に数十個ものスクリプトを編集する必要はありません。
画面上のコンポーネント検索には「search2」画像比較方式を推奨します。従来の方式「search」よりもメモリ要件が大幅に低減されています。
スクリプトがスクリーンショット、ログ、警告、ステップなどの出力オブジェクトを大量に生成する場合、レポート呼び出しをスクリプトの末尾に移動してください。これにより、途中で結果XML/HTMLを何度も生成する必要がなくなるため、スクリプトの実行速度が大幅に向上し、メモリ消費も削減されます。この操作は最終的なレポートの内容に影響を与えません。
デフォルトの「Graphite」ルックアンドフィール(LAF)は見た目はすっきりしていますが、CPUとRAMをより多く消費します。環境設定 ウィンドウの 外観とアクセシビリティ パネルで、LAF を最初の OS デフォルトのものに設定すると、パフォーマンスが大幅に向上する場合があります(Robot を再起動する必要があります)。
Robotはデフォルトで、結果マネージャーの必要性に応じて、最大20件の最新スクリプト実行データを保存します。1日を通してGUIモードで大規模なスクリプトを多数実行する場合、環境設定ウィンドウの結果マネージャーパネルにある「直近リストの上限」設定でこの上限値を低く設定すると、メモリを若干節約できる可能性があります。
本番環境の自動化はCLIモードで実行することを推奨します。これによりGUIを回避でき、メモリ要件が非常に低くなります。詳細は-n CLIスイッチのドキュメントを参照してください。
上記のヒントで解決できないメモリ問題が発生した場合は、障害が発生したRobotプロセスからメモリダンプを取得してください。Robot 3.1.1+ GUIの右下隅にあるメモリモニターをクリックすることで作成できます。あるいは、java(javaw)コマンドの後に -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof スイッチを指定してRobotを起動すると、プロセスが自動的にダンプを作成します。詳細はOracleのドキュメントを参照してください。
7. トラブルシューティング
本章では、最も一般的なインストールおよび設定時のエラーを記載します。ここに記載されていない問題が発生した場合は、エンタープライズ窓口(http://www.t-plan.com/support )までご連絡ください。
ロボットが起動に失敗し、「java: command not found」というメッセージが表示される
お使いのマシンにJavaがインストールされていないか、Java実行ファイルへのパスがOSのパスに含まれていません。Javaの要件の章をお読みください。
ロボットが起動に失敗し、以下のメッセージが表示されます:"スレッド "main" で例外が発生しました: java.lang.NoClassDefFoundError: com/tplan/robot/ApplicationSupport"
これは、ロボットJAR(Java ARchive)ファイルrobot.jarがJavaクラスパスに正しく含まれていないことを示しています。
ロボットのインストールディレクトリに移動し、robot.jarファイルが存在すること、およびそれを読み取る権限があることを確認してください。
このディレクトリから robot.sh または robot.bat を再実行してください。あるいは、java コマンドを修正し、-classpath 引数にこのライブラリを含めるようにしてください。
ロボットは起動するが、「JavaHelpライブラリが見つかりません。ファイルjh.jarがJavaのクラスパスに含まれていることを確認してください」というメッセージを出力する。
これは、JavaHelp JARファイル jh.jar がJavaのクラスパスに正しく含まれていないことを示しています。ツールは実行されますが、オンラインヘルプにはアクセスできません。ただし、ウェブブラウザで開く一部のリンクは正常に動作する場合があります。すべてのヘルプドキュメントはオンラインで利用可能ですので、オンラインドキュメントに切り替えてこのエラーを無視することもできます。解決するには:
ロボットのインストールディレクトリに移動し、jh.jarファイルが存在すること、およびそれを読み取る権限があることを確認してください。
このディレクトリから robot.sh または robot.bat を再実行してください。あるいは、java コマンドを修正し、-classpath 引数にこのライブラリを含めるようにしてください。
ロボットがNoClassDefNotFoundError、NoSuchFieldError、またはその他の重大なJavaエラーで起動に失敗する
上記のいずれかのケースに該当しない場合、これらの問題は通常、必要なバージョンより低いバージョンのJavaを使用しているときに発生します。必要なJavaバージョンについては「クライアントシステム要件」の章を参照し、インストールされているバージョンを確認するには`java -version`を実行してください。
robot.sh または robot.bat スクリプトのいずれかが、いくつかの CLI オプションの受け渡しに失敗しています
ラッパースクリプトは9つを超えるオプションを処理できません。この制限を超えるすべてのオプションは無視されます。起動の章に記載されている通り、Javaを直接実行する必要があります。
ロボットがjava.lang.OutOfMemoryErrorでクラッシュする
メモリ調整の章に記載されているように、メモリ制限を引き上げてください。