プロキシー・コードのデバッグ
プロキシー・コードのデバッグは、問題判別のための、プロキシー開発過程の必要不可欠な部分です。
JAR ファイルまたは .Net アセンブリー・ファイル (拡張子 .dll) を含むプロキシー・コードは、テスト対象アプリケーション (AUT) プロセスにロードされます。
プロキシー・コードをデバッグするには、プロキシー・バイナリー・ファイルを AUT にロードした後、それぞれのデバッガーを AUT プロセスに付加します。
- プロキシー・コードのデバッグのためのログの実装
Functional Tester は、開発したプロキシー・コードをデバッグするときに使用できるログ・インフラストラクチャーを提供します。
FTDebug クラスは、Java™ と .Net 両方のプロキシー開発フレームワークで使用できます。
各プロキシー・クラスごとに FTDebug クラスのオブジェクトをインスタンス化し、通知、警告、またはエラー・メッセージをカテゴリー別にログに記録することができます。
デバッグ環境の準備
プロキシー・コードをデバッグする前に、以下のタスクを実行します。
呼び出しタイムアウトの設定
プロキシーのデバッグは時間を感知し、デフォルトでは、呼び出しは 2 分後にタイムアウトになります。
デバッグのタイムアウトを調整するには、Windows レジストリーの HKEY_LOCAL_MACHINE¥SOFTWARE¥Rational
Software¥RationalTest¥8¥Options の下に DWORD の値 InvocationTimeout をミリ秒単位で追加します。
デバッグ中にタイムアウトになると、SpyMemory MutexTimeout 例外をスローします。
記録のデバッグ
getChildAtPoint() メソッドは、記録のプロキシー・デバッグのためのエントリー・ポイントです。
何らかのユーザー・アクションが発生すると、AUT がイベントを確認する前でも、processMouseEvent() メソッドが呼び出されます。
Functional Tester は、ユーザー・アクションを処理し (例えば、アクションがクリックかまたはドラッグかなど)、それに応じてメソッドの仕様および引数が生成されます。
最良の結果を得るには、ブレークポイントの挿入の開始にこれらのメソッドを使用してください。
再生のデバッグ
getMappableChildren() メソッドは、再生のプロキシー・デバッグのためのエントリー・ポイントです。
プロキシーの開発時に発生する ObjectNotFound の問題のほとんどは、記録によって生成されるオブジェクト階層と再生中に生成される階層の不一致によるものです。
getMappableParent() メソッドと getMappableChildren() メソッドが対称になるようにしてください。