オブジェクト・マップには、記録中に対象とされた各オブジェクト、およびオブジェクトの認識プロパティーが含まれています。 マップはまた、認識にあたって Rational® Functional Tester がどの程度各プロパティーに依存するかを示す重みも含んでいます。
オブジェクト・マップへのデータの取り込みは、スクリプトを記録するときに自動で行うことも、手動でオブジェクトをマップに追加して行うこともできます。
オブジェクト・マップによって、スクリプトの保守を効率よく行うことができます。 テスト中のアプリケーションのオブジェクトが変更された場合、オブジェクト・マップは更新可能な単一のソースとなります。マップを更新すれば、変更されたオブジェクトを参照するすべてのスクリプトは、更新されたオブジェクト情報を使用するようになります。
Rational Functional Tester は、認識プロパティーと階層に基づいてオブジェクトを区別します。例えば、別のトップレベル・ウィンドウに存在するボタンは、マップでは別のボタンとして表示されます。2 つ以上の別のオブジェクトが同じ名前を持っている場合、名前を固有にするために、Rational Functional Tester は、2 番目、3 番目などのオブジェクトの名前に数字のサフィックスを追加します。
オブジェクトに、ブラウザーの 2 つのインスタンスなど、同一の 2 つのインスタンスがある場合、Rational Functional Tester は ID を処理するメソッドを提供します。
専用オブジェクト・マップは、単一のスクリプトによって使用されます。公用 (共用) オブジェクト・マップは、複数のスクリプトによって使用されます。デフォルト設定では、各スクリプトが専用オブジェクト・マップを使用します。この設定は、単一のユーザーがツールの学習を始める場合に適しています。ただし、共通のアプリケーションで作業しているテスターのチームは、単一のマップでグローバルに定義されているオブジェクトを利用できるように、共用オブジェクト・マップを使用する必要があります。
重みは、スクリプトの実行中にオブジェクトを識別する上で、特定のプロパティーがどの程度重要かを示します。指定可能な設定は 0 (重要でない) から 100 (非常に重要) です。ほとんどのプロパティーの重みを変更できます。.class プロパティーは固定で、変更できません。
重みを 0 に設定すると、オブジェクトを識別しようとするときに、そのプロパティーの値は無視されます。
新しいデフォルトの重みをプロパティーに割り当てたり、今後の記録中にオブジェクトを識別するときに使用する新しいプロパティーを定義したりするには、オブジェクトのプロパティー構成ツールを使用します。
オブジェクト・マップの検索と変更ユーティリティーを使用して、プロパティー名、プロパティーの値などの条件、またはさまざまなカスタム・フィルターに一致するすべてのオブジェクトを検索できます。一致したオブジェクトに対して実行できるアクションには、プロパティーの追加、プロパティーの除去、値の変更、および重みの変更があります。オブジェクトへの変更は、一度に 1 つずつ、またはグローバルに適用できます。
はい。スクリプトをマージするには、をクリックして、新しい公用マップを作成します。ウィザード・ページが開いたら、それを閉じます。作成されたマップを右クリックして、「オブジェクトのマージ先」を選択します。表示されたダイアログ・ボックスで、マージするスクリプトを選択します。「選択した Functional Tester スクリプトを接続」チェック・ボックスを必ず選択し、選択したスクリプトをマージ対象の新しいオブジェクト・マップに接続します。
複数のマップのマージについて詳しくは、複数のテスト・オブジェクト・マップのマージを参照してください。
挿入や削除のために親ノードのプロパティーが変更された場合、あるいは新しいノードが階層に追加された場合は、マップを変更できます。 マップを更新するには、マップ・エディターを使用して、新しく親が挿入されたオブジェクトへの参照を挿入します。新しいオブジェクトの子オブジェクトに対して参照が複製されます。これらの各参照で、古いオブジェクトを新しいオブジェクトにドラッグすると、マップ・エディターがオブジェクトを統合します。同じステップを使用して、マップの階層からオブジェクトを削除できます。
はい。オブジェクト・マップでオブジェクトを開き、を選択します。 オブジェクトを指定するには、オブジェクト・ファインダーを使用します。3 つのペインを持つ「認識プロパティーの更新」ダイアログ・ボックスが表示されたら、「すべてのアクティブ・プロパティー」ペインでプロパティーを右クリックして、「統合されたテスト・オブジェクトのプロパティーに追加」を選択します。
オブジェクト・マップが大きくなるにつれて、マップを開いたりロードしたりするのに必要な時間が増えます。
スクリプトを実行するとき、オブジェクト・マップは実行中初めて必要になったときにロードされます。機能テスト・スクリプトを使用するテスト・ケース・スイートがある場合、各スクリプトは別のプロセスであるため、マップは各スクリプトを実行するときにロードされます。標準的なアプリケーションは、約 2000 個から 3000 個のオブジェクトを持っています (マップによってはこれより大きい場合も小さい場合もあります)。
表 1 の測定基準は、スクリプトの実行時に計算されていますが、マップのロード時にも適用できます。この表から、マップのロード時間の大幅な増加は、マップが標準のサイズを超えるまでは発生しないことがわかります。再生時間は、スクリプト実行の始めにマップをロードするときにのみ増加し、マップのロード後にスクリプトの実行速度が低下することはありません。また、同じオブジェクト・マップを共有する、ネストされたスクリプト (callScript 関数を使用) も、スクリプト実行中に同じマップのインスタンスを共有します。このため、ネストされたスクリプトによって、ロード時間が増加することはありません。
| マップ内のオブジェクト | スクリプト実行の合計時間 (秒) |
|---|---|
| 10 | X 秒 |
| 600 から 2000 | X + 2 秒 |
| 2000 から 11000 | X + 3 秒 |
| 11001 以上 | X +10 秒 |