既知の問題 - Java Add-in

Java アプリケーションを開く

Java アプリケーションを開くときは、次の制限が適用されます。

メモリの問題 UFT One を開いた後に Java アプリケーションを開けない場合、Windows .dll ファイルのロードが原因でメモリの断片化が発生している可能性があります。
Could not create the Java Virtual Machine エラー・メッセージ

Could not create the Java Virtual Machine エラー・メッセージが表示された場合は、mercury.ini ファイルに行を追加して、UFT One のメモリ最適化をアクティブにします。

Windows フォルダ(%windir%)で mercury.ini ファイルを見つけ、Memory_Defrag セクションに次に示す行を追加します。

[Memory_Defrag] <process_name>.exe=1

ここで、<process_name> は使用している Java エンジンまたはアプリケーションの名前です。

最適化をオフにするには、1 の値を 0 に変更します。

エラー・メッセージがなく、メモリ設定の値を大きくしても効果がない

エラー・メッセージが表示されず、メモリ設定の値を大きくしても Eclipse が起動しない場合は、次のいずれかを実行してください。

  • 64 ビット版 Windows オペレーティング・システム、64 ビット版 JVM、64 ビット版 Eclipse を使用します。

    64 ビットの仮想メモリ領域を設定しておくと、メモリ断片化の問題が発生しなくなることがあります。

  • 標準設定の起動ファイルではなく、java.exe ファイルまたは javaw.exe ファイルで Eclipse を強制的に起動します。

    これを行うには、eclipse.ini ファイルに次のテキストを 2 行に分けて追加します。

    -vm

    <java.exe または javaw.exe ファイルへの完全パス>

  • eclipse.ini ファイル内の Eclipse メモリ設定を変更します。

    たとえば、パラメータ設定が -Xmx512m の状態でアプリケーションを起動できない場合は、-Xmx256m または -Xmx384m に設定します。

VerifyError メッセージ

Java バージョン 8 を使用するコンピュータでのアプリケーションの起動時:

  • Java jre8u91 で Oracle Forms アプリケーションまたは Java アプレットを起動する場合
  • Java jre8u45 で JavaFX アプリケーションを起動する場合

UFT One は「VerifyError」エラーを返します。

回避策:ランタイム環境設定のランタイム・パラメータに -UsesplitVerifier を追加します。

先頭に戻る

Java アドインの子アドインのロード

アドイン・マネージャの中で Java の配下にある子アドインを選択すると、選択した環境の Java Add-in Extensibility サポートがロードされます。

バージョン 10.00 より前のバージョンの Java Add-in Extensibility SDK を使用して開発されたサポートをロードすると、[オブジェクトの認識]ダイアログ・ボックスなどの UFT One ダイアログ・ボックスで、拡張テスト・オブジェクト・クラスが間違ったリストに表示されます。

これは、選択した環境のテスト・オブジェクト・クラスを表示するどの UFT One ダイアログ・ボックスでも発生します。

たとえば、次のようなエラーがあります。

  • 子アドインを[環境]リストの中で選択した場合、テスト・オブジェクト・クラスのリストは空です。その代わりに、[環境]リスト内の子アドインの配下ではなく、拡張テスト・オブジェクト・クラスは、Java 環境の直下に表示されます。

  • また、場合によっては、「[オブジェクトの認識]ダイアログ・ボックス」の[スクリプトの生成]ボタンが正しく機能しないことがあります。

このような場合は、次の手順を実行します。

  1. 子アドインに関連付けられたテスト・オブジェクト設定ファイルを探します。このファイルは次の場所にあります。

    UFT One インストール・フォルダ \dat\Extensibility\Java\<アドイン名>TestObjects.xml
    ALM で作業する場合 <UFT One Add-in for ALM のインストール・フォルダ>\dat\Extensibility\Java\<アドイン名>TestObjects.xml
  2. XML ファイル内で、TypeInformation 要素内の PackageName 属性を探し、その値を JavaPackage から、子アドインの名前に変更します。

  3. ファイルを保存してから、再度 UFT One を開きます。

  4. この拡張サポート(子アドイン)がサードパーティによって開発されたものである場合、そのサードパーティに連絡して支援を受けることをお勧めします。

先頭に戻る

Java 8 アプリケーション

Java 8 アプリケーション、特に jre8u91 を使用する Oracle Forms および Java アプレット、または jre8u45 を使用する JavaFX アプリケーションを起動すると、VerifyError が表示される場合があります。

このような場合は、Java ランタイム環境の設定に -UseSplitVerifiier ランタイム・パラメータを追加します。これらの設定には、Java コントロール・パネルを介してシステム・レベルでアクセスできます。

アプリケーション・タイプごとの設定

アプリケーション・タイプ ランタイム・パラメータ設定
jre7u65+ java -XX:-UseSplitVerifier -jar <application.jar>

異なる環境でのテスト

Java 9 環境で Java 8 アプリケーションのテストを実行すると、UFT One が予期しない動作をする可能性があります。

先頭に戻る

記録設定

-Xincgc フラグ

-Xincgc フラグを java.exe コマンド・ラインに追加すると、Java サポートが正しく機能しなくなります。

この設定は、[記録と実行環境設定]ダイアログ・ボックスまたはバッチ・ファイルで行うことができます。

回避策:

UFT One の Java サポートを使ってテストを行う場合は、コマンド・ラインで -Xincgc を使わないようにするか、動的変換サポート機能を使わないようにします。

JAR ファイル

[記録と実行環境設定]ダイアログ・ボックスでコマンド・ラインから JAR ファイルを選択する場合は、Java アプリケーションを起動する前に、[コマンド ライン]ボックスに手動で -jar を付け加える必要があります。

Java アプリケーションの起動

バッチ・ファイル(または別の実行可能ファイル)を使わず、(JAR ファイルを選択した後で)-jar コマンド・ライン・オプションを指定せずに、[記録と実行環境設定]ダイアログ・ボックスを使って Java アプリケーションを起動する場合は、Java クラスの完全修飾名を[コマンド ライン]ボックスに含める必要があります。

先頭に戻る

記録

JFC 単一行エディット・ボックス

IME コンポジション・ウィンドウで JFC 単一行エディット・ボックス内のキーボード操作を記録しているときに ENTER キーを押してコンポジション文字列を選択すると、そのキー操作が Activate メソッドとして記録され、結果として余分なステップが生成される場合があります。例:

JavaWindow("Application").JavaEdit("User Name").Activate

通常の場合、このステップを追加しても実行セッションに影響しません。

回避策:

テストまたはビジネス・コンポーネントを実行する前に、記録された余分なステップを削除します。

ALTF4 キーボード・ショートカット

ALTF4 キーボード・ショートカットは、記録や実行ではサポートされていません。

このショートカットは、Java アプレットまたは Java アプリケーションを終了するために使用されます。

回避策:

  • 記録セッション中に[閉じる]メニュー・コマンドまたはボタンを使って Java アプレットまたは Java アプリケーションを閉じます。

  • 手動で JavaWindow(...).Close ステップを付け加えます。

Java ウィンドウの移動とサイズ変更

標準設定では、Java ウィンドウの移動とサイズ変更は記録されません。これは、記録すると、場合によっては重複記録を引き起こすことがあるためです。

回避策:

Java アドインに対してこれらのアクションを記録するよう設定するには、Setting.Java メソッドを使用して、record_win_ops 変数を 1 に設定します。

例:

Setting.Java("RECORD_WIN_OPS") = 1

AWT ポップアップ・メニュー

AWT ポップアップ・メニューは、通常の JavaMenu テスト・オブジェクトではなく、標準 Windows コントロール・サポートの WinMenu テスト・オブジェクトによって記録されます。

このようなメニューに対してチェックポイントや ActiveScreen 操作を実行することはできません。

回避策:

ほかの検証メソッドを使用します(GetTOProperty など)。

識別子にマウス・カーソルを合わせる

Java Add-in では、Eclipse ウィンドウ内の識別子にマウス・カーソルを合わせるステップの記録や実行を行いません。

Java ダイアログ・ボックスを閉じる

Java ダイアログ・ボックスを閉じるステップを記録すると、UFT One によって追加の Close ステートメントが記録されます。

回避策:

余計な Close ステートメントを手動で削除します。

Web ページ内の Java アプレットまたは ActiveX コントロール

ActiveScreen の Web ページ内に表示される Java アプレットまたは ActiveX コントロールは表示専用であり、そのオブジェクトを対象とした操作はできません。

たとえば、チェックポイントの作成やメソッドの追加などです。

回避策:

Java アプレット/ActiveX コントロールを対象とする操作を記録して、ActiveX Add-in または Java Add-in、あるいはその両方がロードされているオブジェクトを対象とするステップを作成します。

この後、ActiveScreen 内の個々の Java アプレット/ActiveX コントロールから、チェックポイントの作成、ステップのパラメータ化、メソッドの追加が行えます。

先頭に戻る

オブジェクトの認識

ネイティブ・プロパティ

コントロールのネイティブ・プロパティを使ってオブジェクトを認識するには、「[プロパティの追加と削除]ダイアログ・ボックス」で、Java テスト・オブジェクトにプロパティを追加します。この作業を行う場合は、次のことを考慮してください。

  • 追加できるネイティブ・プロパティは、コントロールに、そのプロパティの値を返すパブリックの get メソッドまたは is メソッドがある場合のみです。

  • ネイティブ・プロパティの名前に大文字が含まれる場合、対応する名前を作成する際に、先頭以外の大文字を _<小文字> で置換する必要があります。

    たとえば、OneSmallProp というネイティブ・プロパティを使用する場合は、One_small_prop という名前のプロパティを追加します。

大文字と小文字の区別

QuickTest の旧リリースでは、Java 記述プロパティは大文字と小文字を区別しませんでした。

11.00 より前のバージョンの QuickTest でテスト・オブジェクトを学習している場合、[更新実行]を実行して、大文字と小文字の区別があるプロパティを持つオブジェクトを再学習する必要があります。

これは、[テスト オブジェクトの記述を更新]オプションを使用して行います。

先頭に戻る

テスト・オブジェクトとテスト・オブジェクト・メソッド

SWT ベースの JavaMenu オブジェクト

SWT ベースの JavaMenu オブジェクトは、[オブジェクト リポジトリ]ウィンドウの[ローカルへオブジェクトを追加]ボタン、またはオブジェクト・リポジトリ・マネージャの[オブジェクトの追加]ボタンを使用してオブジェクト・リポジトリに直接追加することはできません。

SWT ベースの JavaMenu オブジェクトをオブジェクト・リポジトリに追加する場合は、次のようにします。

  • 親オブジェクトを追加して、子孫も追加することを選択します。

    オブジェクトの追加]または[ローカルへオブジェクトを追加]ボタンを使用します。

  • オブジェクト・リポジトリ・マネージャの[ナビゲートして学習]オプションを使用して、JavaMenu オブジェクトを追加します。
スクロール・バー・コントロール

AWT および Swing アプリケーションのスクロール・バー・コントロールは、JavaSlider テスト・オブジェクトによって表されます。

SWT アプリケーションのスクロール・バー・コントロールはサポートされていません。

UFT One 15.0.2 以降:JavaFX アプリケーションのスクロール・バー・コントロールがサポートされ、JavaSlider テスト・オブジェクトで表されます。

.Object.startModal の呼び出し

JavaInternalFrame または JavaDialog オブジェクトの .Object.startModal を呼び出すと、ダイアログ・ボックスが閉じるまで UFT One が予期しない動作をする場合があります。

マルチバイト文字

複数行編集フィールド・オブジェクト内でのマルチバイト文字の使用はサポートされていません。

ボタン・オブジェクト

表示する画像ファイルの名前によってラベルが決まるボタン・オブジェクトの場合、テスト・オブジェクトに名前を付けるプロセスが、JDK 1.6 で実行しているときと JDK 1.5 で実行しているときとで異なります。これは、JavaButton または JavaToolbar のボタンの両方に適用されます。

したがって、JDK 1.5 で学習されてその画像ファイルに従ってラベル付けされたボタン・オブジェクトを含むテストまたはビジネス・コンポーネントを JDK 1.6 で実行すると、失敗する可能性があります。

回避策:

  • JavaButton オブジェクトの場合:JDK 1.6 でオブジェクトを学習し直します。

    その後、新しいテスト・オブジェクトを使用するようにテストを修正するか、オブジェクト・リポジトリから古いオブジェクトを削除してから新しいテスト・オブジェクトを該当のステップで使用されているオブジェクト名に変更します。

    [オプション]ダイアログ・ボックスの[GUI テスト]タブの[一般]表示枠の中で[テスト オブジェクトの名称変更時にテストとコンポーネントのステップを自動的に更新する]オプションが選択されていることを確認してください([ツール]>[オプション]>[GUI テスト]タブ>[一般]ノード)。

  • JavaToolbar オブジェクト内のボタンの場合、JavaToolbar ステートメント内の Item 引数を、該当するボタンを参照するように変更します。

    ボタンのインデックスを指定するか、オブジェクト・スパイを使ってツールバー・ボタンを調査してから、ラベルを Item 引数として指定します。

PropertyValue 引数

Java テスト・オブジェクトの場合、WaitProperty メソッドの PropertyValue 引数(2 番目の引数)の型は string でなければなりません。

回避策:

元の型の代わりに string を使用します。

たとえば、1 の代わりに "1" を使用します。

y = JavaCheckBox("Active").WaitProperty ("enabled", "1", 1000)

先頭に戻る

チェックポイントおよび出力値

テキスト・チェックポイントとテキスト出力値

テキスト・チェックポイントとテキスト出力値は、特定の基準を満たす Java オブジェクトについてのみ作成できます。詳細については、「Java オブジェクトのテキスト・チェックポイント/出力値ステップ」を参照してください。

新しいテーブル・チェックポイント

テストまたはビジネス・コンポーネントを編集しているときに、Java テーブルに対して新しいテーブル・チェックポイントを作成するには、まずチェックしたいテーブルを含んだアプリケーションを開いて、そのテーブルをアプリケーションで表示する必要があります。

JavaList/JavaTree オブジェクト

テストまたはビジネス・コンポーネントの編集中に JavaList または JavaTree オブジェクトに対してチェックポイントを追加した場合、そのチェックポイント内では list_content または tree_content プロパティを使用できません。

回避策:

Java リストと Java ツリーに対するチェックポイントは、記録中に作成します。

常に表示されているわけではないオブジェクト

常に表示されているわけではないオブジェクト(コンボ・ボックスから開かれるリストやメニュー項目など)に対するチェックポイントの実行は、完全にはサポートされていません。

回避策:

一時的なオブジェクトに対するチェックポイントが必要な場合は、チェックポイントを実行する前に、そのオブジェクトが表示されていることを確認してください。

たとえば、コンボ・ボックス・リストの場合は、チェックポイントを実行する前に、コンボ・ボックス・ボタンをクリックするステートメントを挿入する必要があります。

SWT ベースの Java ツリー

テストでの作業中にカラムを持ち、SWT ベースの Java ツリーを対象とするチェックポイントを作成すると、テーブル・チェックポイントが作成されます。

先頭に戻る

Internet Explorer で実行されるアプレット

Microsoft Internet Explorer で Oracle Java JRE 5 または 6 を使用して Java アプレットを実行する場合、Java Add-in がアプレットを Java 環境に属するものと認識しない場合があります。

Java Add-in では、アプレット内のオブジェクトを Java オブジェクトとして認識しないため、オブジェクトに対するステップの記録や実行ができません。

このようなことが起こるのは、JVM が環境変数の Java Add-in の設定を使用しない場合です。

この場合、JVM ランタイム・パラメータに -agentlib:jvmhook -Xbootclasspath/ a:"<UFT One インストール・フォルダ>\bin\java_shared\classes";"<UFT One インストール・フォルダ>\bin\java_shared\classes\jasmine.jar" と設定する必要があります。

先頭に戻る

JavaFX アプリケーション

一般

CloseTab メソッド

UFT One 15.0.2 以降:JavaFX アプリケーションのタブ項目で CloseTab メソッドを記録するには、最初にタブ項目を選択する必要があります。

UFT One テストで閉じることができるのは、選択したタブだけです。1 つのステップですべてのタブを閉じることはできません。

UFT One 15.0.1 以前:CloseTab メソッドは、JavaFX アプリケーションではサポートされていません。

表示倍率

UFT One が JavaFX アプリケーションのオブジェクトを識別できるようにするには、表示倍率を 100% に設定する必要があります。

倍率を 125% または 150% に設定すると、UFT One はオブジェクトを Java ではなく標準の Windows オブジェクトとして認識します。

サポートされていないメソッド

次のメソッドは、JavaFX オブジェクトではサポートされていません。

  • Object.getText
  • JavaCalendar.GetTime
  • JavaWindow.MoveJavaWindow.Resize、および JavaWindow.PressKey メソッド
JavaTree のテキスト・チェックポイント

UFT One 15.0.2 以前:

  • 記録中にツリー項目が選択された状態で JavaTree のテキスト・チェックポイントを挿入すると、UFT One はテキスト・チェックポイント用に選択された項目をキャプチャします。
  • 記録中にツリー項目が選択されていない JavaTree のテキスト・チェックポイントを挿入すると、UFT One はテキスト・チェックポイントに空の値を追加します。

Web テストのみ

JavaFX ウィンドウ内で実行される Web アプリケーションには、次の既知の問題があります。

サポートされていないコントロール
  • ブラウザのダイアログ・ボックス(アラート、確認、プロンプト・ダイアログなど)

  • モーダルまたはモーダレス・ダイアログ・ボックス

  • クロスドメイン Frame/iFrame オブジェクト

サポートされていない機能
  • Web 2.0 ツールキットを使用した Web アプリケーションの設計(ASP .NET AJAX、Dojo、Google Web Toolkit、jQueryUI、EXT-JS、Siebel Open UI、Yahoo UI)

  • ブラウザの操作

  • ナビゲートして学習

  • ドラッグ・アンド・ドロップ

  • ActiveScreen

  • Frame または iFrame オブジェクトの記録

  • ロールベースのコントロール(role= プロパティを使用)の記録

  • [オプション]ダイアログの[Web]>[詳細設定]表示枠のオプション

サポートされていないテスト・オブジェクトとメソッド
  • すべてのブラウザのテスト・オブジェクト・メソッド

  • WebFile オブジェクト

  • ViewLink オブジェクト

  • WebXML オブジェクト

チェックポイント 標準、ビットマップ、テキスト/テキスト領域チェックポイントのみがサポートされています。
64 ビット・アプリケーション 64 ビット・バージョンの JavaFX はサポートされていません。
アプリケーション内の強調表示 JavaFX メニューとメニュー項目オブジェクトは、アプリケーションで強調表示できません。

先頭に戻る

Java Runtime Environment(JRE)

Java Add-in のインストール後に、Java JVM 上で実行している Java アプリケーションを起動できない場合があります。この場合、表示されるエラー・メッセージには、Mercury Interactive サポートをロードできず、Java 仮想マシンを作成できなかったことが示されます。

回避策:

  1. _JAVA_OPTIONSIBM_JAVA_OPTIONS の各環境変数の先頭に -agentlib:jvmhook を追加します。

  2. JAVA_TOOL_OPTIONS 環境変数を削除します。

先頭に戻る

UFT One コンピュータへの Java のインストール

UFT One がインストールされているマシンで JRE を再インストールまたはアップグレードすると、エラー 1603 が発生して JRE のインストールが完了しない場合があります。

これは、UFT One の Java 環境変数と Java インストーラ間の干渉が原因である可能性があります。

インストールを正常に完了するには、UFT One の Java 環境変数の名前を変更し、JRE のインストールを実行してから、変数名を元に戻します。

UFT One の Java 環境変数の名前を一時的に変更するには: 

  1. Windows デスクトップで、[マイ コンピュータ]または[PC]を右クリックし、[プロパティ]を選択します。

  2. 詳細設定]タブを選択します。

  3. 環境変数]ボタンをクリックします。

  4. ユーザ環境変数リストとシステム環境変数リストの両方で、次の環境変数を探して名前を編集します。

    • _JAVA_OPTIONS

    • Java_Tool_Options

    • IBM_Java_Options

  5. JRE をインストールします。

  6. インストールが完了したら、環境変数の名前を元の名前に戻します。

先頭に戻る

IntelliJ IDEA 2020.2 以降の使用

IntelliJ IDEA 2020.2 以降では、パフォーマンスを確保するために特定の環境変数を削除することが推奨されています。次の変数は Java アプリケーションのテストに必要なため、削除しないでください。

  • _JAVA_OPTIONS
  • JDK_JAVA_OPTIONS
  • JAVA_TOOL_OPTIONS

先頭に戻る