機能テストのトラブルシューティング

このトピックは、機能テストで生じる可能性があるいくつかの問題に関するトラブルシューティングを行うために役立ちます。
表 1.
問題 説明 解決策

.Net で ErrorProvider、HelpProvider、および ToolTipText コントロールに検査ポイントを挿入する際に ObjectNotFoundException 例外が発生する。

.Net で記録中に ErrorProvider、HelpProvider、および ToolTipText コントロールに対してデータ検査ポイントを作成すると発生します。

.Net では、これらのコントロールに対して、プロパティー検査ポイントを作成してください。

SAP アプリケーション内のカレンダー・コントロールを含むデータ駆動スクリプトの再生時に System.NullReferenceException が発生する。

データ駆動スクリプトを記録した後にカレンダー・コントロールを閉じた可能性があり、その場合 close() イベントがスクリプト内に生成されます。 スクリプトは次の例のようになっています。

calendar_sapCalendarControl1().setDate(dpString("SAPCalendarControl1")); dialog_calendar().close();

setDate() メソッドはフォーカスした日付を設定し、カレンダー・コントロールを閉じることも行うため、スクリプトは再生中にカレンダー・コントロールを閉じようとしたときに失敗します。

以下のいずれかのタスクを実行してください。
  • スクリプト内に生成された、カレンダーの close メソッドを削除する。
  • 「データ駆動型アクションを挿入します」ウィザードを終了する前にカレンダー・コントロールを閉じる。

SAP アプリケーション内のテキスト、コンボ・ボックス、またはツリーなどのコントロールに対してデータ検査を実行する際に再生が失敗する。

これは、検査ポイント・メソッドがテキスト/コンボ・ボックスの set メソッドまたはツリー・コントロールの ExpandNode/doubleClickNode より前に記録されている場合に発生します。

以下のいずれかのタスクを実行してください。
  • テキスト/コンボ・ボックスで値を入力または選択するか、ツリー・コントロールのノードを展開した後に Enter キーまたは F2 キーを押し、それからデータ検査ポイント・ウィザードを起動する。
  • スクリプトでテキスト/コンボ・ボックス/ツリー・コントロールにデータ検査を実行する前に、これらメソッドをカット・アンド・ペーストする。

.Net で機能テスト・プロジェクトを作成中に以下のエラー・メッセージが表示される。

「ClearCase® 統合の使用可能化に失敗しました。 インストール済みソース・コード管理プロバイダーのレジストリー項目がありません。ソース・コード管理プロバイダーを適切に構成してください。」

このメッセージは、ClearCase のレジストリー設定が破損している場合に表示されます。

レジストリー設定を手動で修正する必要があります。ソース管理プロバイダーの変更、またはレジストリー設定の編集について詳しくは、MSDN ヘルプを参照してください。

Siebel 7.8 から Siebel 7.7 に戻った後、IBM® Rational® Functional Tester が Siebel 7.7 コントロールを認識しない。

Siebel 7.8 を始動すると、Internet Explorer は最新の Siebel ActiveX オブジェクトをインストールします。このため、その後に Siebel 7.7 で Functional Tester を使用して記録を行おうとすると、Functional Tester は Siebel 7.7 コントロールを認識できません。

Siebel ActiveX オブジェクトをフォルダー C:¥WINDOWS¥Downloaded Program Files から除去し、その後再び Siebel 7.7 アプリケーションでの作業を試みてください。

Rational Functional Tester でのテスト用にアプリケーションを構成中に、テスト対象 Java™ アプリケーション (AUT) が開かない。

テスト・アプリケーションのコンパイルに使用された JRE バージョンより低いバージョンの JRE を指定した場合、アプリケーションをテスト用に構成しているときには AUT が開きません。

  • Functional Tester がサポートする、それ以上のバージョンの JRE を使用して、アプリケーションをテストします。
  • ご使用の Java IDE 内で JRE のソースおよびターゲット・レベルを設定することにより、テスト・アプリケーションを再コンパイルする。

    次の例では、コマンド行インターフェースを使用してソースおよびターゲット・フラグを設定することにより、テスト・アプリケーションをコンパイルします。

    C:¥AUT¥Test>"C:¥Program Files¥Java¥jdk1.5.0_06¥bin¥javac.exe" -source 1.4 -target 1.4 *.java

パスワード・フィールドを含む SAP アプリケーションのテスト中に再生が失敗する。

Rational Functional Tester は、入力されたパスワードをパスワード・フィールドに表示されるとおりに記録します。そのため、暗号化された値を読み取ることはできません。

スクリプトを再生する前に、スクリプト内の記録済みパスワードを実際のパスワードに置き換えてください。

IBM Rational Functional Tester のコンテキスト・ヘルプが VS .Net IDE で動作しない。

 

MSDN ライブラリーをインストールしてください。インストール時には、MSDN ライブラリーを VS .Net IDE と統合するオプションを選択して、Functional Tester のコンテキスト・ヘルプが動作するようにします。

チュートリアル・ギャラリーから PDF ファイルを開こうとすると、コンピューターがハングする。

Adobe® Reader 6.0.0 をご使用の場合、チュートリアル・ギャラリーから PDF ファイルを開こうとすると、コンピューターがハングすることがあります。

他のバージョンの Adobe Reader では、この問題は発生しません。Adobe Web サイトから、最新レベルの Adobe Reader に無料でアップグレードできます。

マルチメディア・ユーザー支援が表示されない。

ツアー、チュートリアル、Show me ビューレットなどのマルチメディア・ユーザー支援を表示するには、コンピューターに Flash Player がインストールされている必要があります。

Adobe Web サイトから Flash Player バージョン 6.0 以降を入手してインストールしてください。

ビューおよびエディターが記録後にドラッグまたは切り離された場合、Eclipse での再生のサポートが使用不可になる。

 

ivory.properties ファイルにステートメント rational.test.ft.enable_eclipse_support=false を追加してください。

あるブラウザーで記録されたスクリプトが、別のブラウザーで再生できない。

Internet Explorer で記録されたスクリプトは、例えば Mozilla Firefox では再生できないことがあります。

ブラウザー内のオブジェクトの DOM 構造を検査してください。 例えば、Mozilla Firefox には DomInspector を使用できます。同様に、他のブラウザーについても DOM 構造を解釈することができます。このため、オブジェクト階層が同じかどうかを比較し、検査できます。

  • ブラウザーの DOM 階層が異なる場合、Functional Tester の問題に起因する失敗ではありません。ブラウザーは、再生失敗の原因となった別の DOM 階層を作成しています。

    解決策: この問題は、スクリプトの再生中に Functional Tester が検索する欠落した階層を補うことで修正できます。

  • ブラウザーの DOM 階層が同じ場合は、Functional Tester に問題がある可能性があります。さらに調査を進めるために、IBM ソフトウェア・サポートの Rational ソフトウェア製品担当者に連絡してください。

記録と再生が、ブラウザーのメニュー・オプションで行えない。

Rational Functional Tester は、ブラウザー・コンテンツのテストをサポートしていますが、ブラウザー・メニュー・オプションまたはブラウザー自体との対話はサポートしていません。 これは主として、HTML アプリケーションをテストするための、異種ブラウザーにわたる記録および再生の機能を提供するために行われます。

ブラウザー・オブジェクトをキャプチャーして、特定のメニュー・オプションへのキーボード・ショートカットを使用し、inputKeys メソッドを使用してメニュー・オプションと対話してください。

例えば、「ファイル」メニューの「閉じる」オプションへは、ショートカット・キー Alt+F+C でアクセスできます。このオプションにアクセスする必要がある場合は、ブラウザー・オブジェクトで inputKeys メソッドを使用して、次に示すように入力パラメーターとしてこのショートカット・キー ("%fc") を指定します。

Browser_HtmlBrowser(Document_HtmlDocument(),DEFAULT_FLAGS).InputKeys("%fc")

記録中の内部 SAP エラー (ABAP)

SAP アプリケーションに対して記録を行っているときに、SAP スクリプト記述フレームワークが内部で何らかの ABAP エラーをスローし、記録が停止することがあります。 この問題は、SAP 自体のスクリプト記述フレームワークを修正しない限り、解決されません。

スクリプトを実行するユーザーについて、システムの形式指定検索ヘルプを使用不可にしてください。 これは、「ヘルプ」メニューから表示する SAP GUI の「設定」ダイアログで行えます。 この方法で解決しない場合、SAP アプリケーションを再始動しなければならない場合があります。

SAP アプリケーション内のカレンダー・コントロールを含むデータ駆動スクリプトの再生時に System.NullReferenceException が発生する。

データ駆動スクリプトを記録した後にカレンダー・コントロールを閉じた可能性があり、そのために close() イベントがスクリプト内に生成されています。

スクリプトは次のようなものです。dialog_calendar().close();

setDate() メソッドはフォーカスした日付を設定し、カレンダー・コントロールも閉じるため、スクリプトは再生中にカレンダー・コントロールを閉じようとしたときに失敗します。

スクリプト内に生成された、カレンダーの close メソッドを削除する。

Linux® で、複数のスレッドから RationalTestScript API のコマンドを呼び出すと、非同期エラーが発生する。

1 つのプロセスにある 2 つのスレッドから X 件の要求が同時に実行依頼されると、X 件のライブラリーがスレッド・セーフではないため、これらライブラリーによる要求の処理ができなくなります。 これによって、「予期せぬ非同期応答」や「イベント消失」などのメッセージを伴う非同期エラーが発生します。またこの事態は、RFT スクリプトで複数のスレッドが使用された場合にも発生することがあります。

ivory.properties ファイルで、rational.test.ft.script.playback.mouse.allow_multiple_threads オプションを「true」に設定してください。

Linux でファイルをインポートするときのエンコード上の問題

Linux では、エンコードのフォーマットに互換性がないため、インポートしているファイルを Functional Tester が認識しなかったり、読み取れなかったりする場合があります。Functional Tester では、デフォルトのエンコード・フォーマットは UTF-8 に設定されています。しかし、UTF-8 では、Cp1252 など、処理できないエンコード・フォーマットがいくつかあります。

Linux では、以下のようにして、ファイルのエンコード・フォーマットを ISO-8859-1 に設定してください。
  1. インポートされるプロジェクトまたはファイルをインポートする先のプロジェクトを、「Functional Test プロジェクト」ペインで選択します。
  2. 「プロジェクト」 > 「プロパティー」をクリックします。
  3. 「プロパティー」ウィンドウで、リストから「情報」を選択します。
  4. 「テキスト・ファイル・エンコード」フィールドで、「その他」をクリックします。
  5. ドロップダウン・リストから「ISO-8859-1」を選択します。
  6. 「OK」をクリックします。

ネットワークに保管されている .Net スクリプトを再生できない。

ネットワーク内のプロジェクトに、ローカル・コンピューターのセキュリティー・ポリシー上、そのコンピューターで「完全な信頼」許可がない可能性があります。 再生ログまたは RFT デバッグ・ログに、RuntimeSecurityPolicyException メッセージが表示されます。

以下の手順を実行してください。
  • 「ローカル イントラネット ゾーン」のセキュリティー・レベルを「完全な信頼」に構成します。 これには、以下のステップを実行します。
    1. 「コントロール パネル」 > 「管理ツール」を選択し、「Microsoft® .NET Framework の構成」を開きます。
    2. 「コード アクセス セキュリティ ポリシーの構成」を選択し、「ゾーン セキュリティの変更」をクリックします。
    3. セキュリティ変更ウィザードで「ローカル イントラネット」を選択し、信頼のレベルを「完全な信頼」に設定します。
メッセージが解消されない場合は、以下のステップを実行してください。
  • プロジェクト・パスとして、IP アドレスの代わりにコンピューター名を指定する。
  • Internet Explorer で次のように構成する。
    1. Internet Explorer ウィンドウで、「ツール」 > 「インターネット オプション」をクリックします。
    2. 「セキュリティ」タブで、「ローカル イントラネット ゾーン」を選択します。
    3. 「サイト」をクリックします。
    4. 「ローカル イントラネット」ダイアログ・ボックスで「詳細設定」をクリックします。
    5. 「このゾーンのサイトにはすべてサーバーの確認 (https:) を必要とする」チェック・マークを外します。
    6. プロジェクト・パスを指定して、「追加」をクリックします。
    7. 「OK」をクリックします。

Linux で Test Manager エージェントを使用してスクリプトを実行すると、エラーがスローされます。

Linux マシンで Test Manager エージェント 7.0 デーモンを開始して、Windows® マシンで Test Manager からスクリプトを実行すると、エラーが発生する可能性があります。

Linux マシンでは、以下のようにしてください。
  1. 現在使用している JRE の環境変数 LD_LIBRARY_PATHlibjava.so に設定します。
  2. CLASSPATH を /bin/rational_ft.jar に設定します。
  3. source rtsetup コマンドを実行します。
  4. Test Manager インストール・ディレクトリーから、RTsagt スクリプトを実行します。
注: SUSE Linux Enterprise Server 10.0 および SUSE Linux Enterprise Desktop 10.0 の各プラットフォームでは、Test Manager エージェントを使用できません。

ClearCase を使用して Functional Test プロジェクトを共有すると、コンパイル・エラーが発生する。

デフォルトでは、ClearCase は大/小文字を区別しないように構成されています。 ファイル名に大文字が含まれる場合、ClearCase はそれを小文字に変換します。 同様の問題は、ClearCase の中にある既存のプロジェクトの内部で新規のスクリプトを記録するときにも発生します。

以下のステップに従って、ClearCase の設定を、大文字と小文字を保持するように変更してください。
  1. 「スタート」 > 「コントロール パネル」 > 「ClearCase」をクリックして、「ClearCase のプロパティー」ウィンドウを開きます。
  2. 「MVFS」タブ・ページで、「大文字と小文字を保持する」チェック・ボックスを選択します。
  3. ClearCase を停止し、再始動します。
  4. Functional Test プロジェクトを再び共有します。

Linux 上の ClearCase 統合は、/opt/rational ディレクトリーにインストールされていない場合は動作しません。

 

Linux で ClearCase を使用するには、ClearCase を /opt/rational または /usr/atria ディレクトリーにインストールする必要があります。あるいは、CLEARCASEHOME または ATRIAHOME を ClearCase のインストール・ディレクトリーに設定する必要があります。

リソース・バンドルを解決できない。

Flex アプリケーションを Rational Functional Tester アダプターと共にビルドするときに Flex Builder 2 を使用した場合、リソース・バンドルでエラーが発生する場合があります。

automation_agent_rb.swc../Flex automation/frameworks/locale/en_US から ../Flex SDK 2/frameworks/locale/en_US ディレクトリーにコピーしてください。
注: Flex Builder 3 を使用する場合、この措置は不要です。
Functional Test プロジェクトに ClearCase 関連の操作がまったく実行できない。 これは、Functional Test プロジェクト資産の階層または場所が変更された場合に発生することがあります。 Functional Test プロジェクトが作成されるときに、プロジェクト資産を維持するために、デフォルトの階層が作成されます。 この階層とストレージは、チェックインのために Functional Test 資産を検索するために使用されます。

Functional Test プロジェクト資産の階層は変更しないでください。

Java AUT が別のアプリケーション・ウィンドウに隠れているときにスクリプトを再生すると、ObjectNotFound 例外が発生する。   以下の手順を実行してください。
  1. 「構成」 > 「テスト用の環境の使用可能化」 > 「Java 環境」タブをクリックします。
  2. 「実行オプション」フィールドで -Dawt.toolkit=sun.awt.motif.MToolkit と入力して、「完了」をクリックします。
2 バイト文字セット (DBCS) を記録できない。 2 バイト文字を入力するときは、同じキー・シーケンスで複数の DBCS 文字を意味することがあります。Input Method Editor (IME) は、一連のキー・シーケンスに続いてスペース・バーを押すときに文字を選択するオプションを提供しています。 入力ストリングを記録するには Enter キーを押してください。
Rational Functional Tester が、Flex アプリケーションで行ったアクションを記録できない。 これは、Flex 環境とアプリケーションが正しく構成されていない場合に発生します。 以下の点を確認してください。
  • Internet Explorer の設定で、「スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行」が有効になっていること。
  • アプリケーションが HTML ページからロードされ、ID 属性が設定されている <object> タグがあり、この ID 属性にピリオドやハイフンが含まれていないこと。
  • アプリケーションが Web サーバーから、または信頼された SWF ファイルからローカルにロードされていること。
スクリプト再生中に ObjectNotFound 例外が発生し、例外メッセージはオブジェクトの状態が正しくないことを示している。

例: Looking for [button] with state [ENABLED|VISIBLE|READY], possible failing candidate[{.mappableClassIndex=0, text=*!ENT!*, .classIndex=0}] with incorrect state [DISABLED]

再生中に、Rational Functional Tester はテスト・オブジェクトに対して以下のいずれかの状態を予期します。
  • ENABLED
  • VISIBLE
  • READY (ブラウザーの場合)
テスト・オブジェクトの状態が予期された状態と一致しない場合、ObjectNotFound 例外が発生します。
例外を上書きするには、オブジェクトのアンカーを NULL または ANY に設定してください。

例: button().click();button(null, DISABLED).click(); に置き換えてください。

Functional Tester が GEF オブジェクトを FigureCanvas として認識する 標準および非標準 GEF エディターを使用してインプリメントされた GEF オブジェクトは、FigureCanvas として認識されます。
  • GEF イネーブラー・プラグイン com.rational.test.ft.gef_xx.jar が AUT のプラグイン・ディレクトリーに存在することを確認してください。
  • 使用可能にした後も GEF オブジェクトが認識されない場合は、-clean オプションを指定して AUT を開始します。
  • 非標準エディターの場合、非標準 GEF エディター (AUT) にメソッド getAdapter を追加します。このメソッドは、Functional Tester が GraphicalViewer のインスタンスを取得して、エディターで GEF オブジェクトを認識するために使用されます。
    public Object getAdapter(Class type)
    {
    if (type == org.eclipse.gef.GraphicalViewer.class)
     {
    <<return the current instance of org.eclipse.gef.GraphicalViewer>>
     }
    }
Internet Explorer 7.0 で Functional Tester バージョン 8.0 の記録および再生中に問題が発生する。ただし、Functional Tester 7.x ではスクリプトの記録および再生は機能する。 この問題は、Internet Explorer 7.0 での再生パフォーマンスを改善するために Functional Tester で変更を行ったために発生する場合があります。
パフォーマンスの変更フラグを False に設定し、問題が解決されたかどうかをテストします。 パフォーマンスのフラグを変更するには、以下のようにします。
  1. <Functional Tester installation directory>¥SDP¥FunctionalTester¥bin にある ivory.properties ファイルを開きます。
  2. rational.test.ft.html.enableie7performancechanges=false を設定します。
    注: このフラグを False に変更すると、Internet Explorer 7.0 で HTML アプリケーションをテストする際のパフォーマンスに影響します。
  3. Internet Explorer 7.0 を再始動して、変更を有効にします。
Firefox 3.0 ブラウザーがデフォルトで使用可能にならない。 Firefox 2.0 から Firefox 3.0 へアップグレードした後、イネーブラーで Firefox 3.0 が使用可能として表示される場合も同様です。 Firefox 3.0 は Firefox 2.0 と同じロケーションにインストールされます。 そのため、異なる使用可能化 dll が必要です。 Firefox 3.0 ブラウザーを使用可能にするには、 Firefox 2.0 から Firefox 3.0 にアップグレードした後でブラウザーをいったん使用不可にし、再度使用可能にします。
Microsoft Windows Vista で Internet Explorer 7.0 を使用可能にした後、このブラウザーでスクリプトを記録できない。 Windows Vista では、スクリプトを記録する際に Internet Explorer 7.0 ブラウザーの設定を変更する必要があります。 ブラウザーの設定を変更するには、以下のようにします。
  1. 「ツール」 > 「インターネット オプション」 > 「セキュリティ」を開きます。
  2. 「保護モードを有効にする」チェック・ボックスをクリアします。
  3. ブラウザーを再始動します。
Firefox バージョン 3.0 で Dojo ログを表示できない。 FireFox バージョン 3.0 では、Dojo ログを表示する際にいくつかのセキュリティー・フラグを設定する必要があります。 これらのセキュリティー・フラグにより、Firefox バージョン 3.0 はファイル・システム内のインストール済み Dojo 用 Java スクリプトにアクセスできるようになります。 Firefox 3.0 で Dojo ログを表示するには、以下のようにします。
  1. Firefox 3.0 ブラウザーで URL として about:config と入力します。
  2. 以下のセキュリティー・フラグを設定します。
    • キー: security.fileuri.origin_policy および値: 3
    • キー: security.fileuri.strict_origin_policy および値: false
アプリケーション構成ウィザードの「Web アプリケーション」 > 「コンパイル時間 (Compile time)」オプションを使用して Flex アプリケーションを起動することができない。 アプリケーション構成ウィザードは、Flex アプリケーションの mxml ファイルに対応する html ページと swf ファイルを生成します。 ウィザードを介して生成された html ページには swf への完全なパスが含まれています。 しかし、Web アプリケーションの場合、アプリケーションは URL の localhost オプションを使用して起動されます。 完全なパスを介して swf にアクセスできないため、アプリケーションは起動に失敗します。 完全なパスではなく swf 名だけを指すように html ページを変更します。
  • <param name="movie" value="C:¥FlexSample¥Smoke.swf"><param name="movie" value="Smoke.swf"/> に変更します。
  • <embed src="C:¥FlexSample¥Smoke.swf"><embed src="Smoke.swf"> に変更します。

フィードバック