1

合計 50 個のテスト スクリプトを作成しました。これらのスクリプトはすべてほぼ同じオブジェクトを使用するため、メンテナンス作業を容易にするために共有リポジトリを作成しました。

しかし、問題は... Update Run モードでスクリプトを実行している間、QTP は、共有リポジトリに存在する場合でも、ローカル リポジトリにいくつかのオブジェクトを追加します。これらの新しく追加されたオブジェクトのプロパティを確認しましたが、それにも変更はありません。

QTPがオブジェクトをローカルリポジトリに追加するかどうかを決定するために使用するロジックを教えてください。また、ローカルリポジトリにオブジェクトが追加されないようにする解決策を教えてください。

4

2 に答える 2

1

ここでは 2 つのことが行われています。

  1. SOR は定義上共有されているため、QTP は共有オブジェクト リポジトリ (SOR) を読み取り専用モードで開きます。QTP は、誰かが SOR に変更を加えたときに、多くのテストが影響を受ける可能性があることを認識していることを確認したいと考えています。したがって、SOR を編集するには、オブジェクト リポジトリ マネージャーを使用する必要があり、SOR は自動的に変更されません (更新実行モードまたは保守実行モード) 。
  2. オブジェクト リポジトリにオブジェクトを追加するとき、QTP は最初にオブジェクトが既に存在するかどうかを (プロパティを比較して) チェックします。存在する場合は、既存のオブジェクトを再利用し、新しいエントリを作成しません。

これは、SOR ではなくローカル オブジェクト リポジトリ(LOR) でオブジェクトを取得する理由を説明しています (変更されていないオブジェクトを LOR に追加することが正しい動作であるかどうかはわかりません)。

Update Run Modeの後に変更を反映するには、LOR を新しい SOR にエクスポートしてから、既存の SOR とマージする必要があります。

于 2012-06-26T10:37:59.657 に答える
0

私も同様の問題に直面しました。オブジェクトが共有 OR に存在し、アプリケーションで強調表示されていたにもかかわらず、スクリプト qtp の実行中にオブジェクトが識別されませんでした。メンテナンス実行モードでチェックしたときに、共有 OR で更新した 1 つのプロパティ値に変更がありました。問題は、私がそのオブジェクトをスパイし、qtp がそれをローカル OR に保存したことでした。次回スクリプトを実行すると、ローカルORから参照され、スクリプトが失敗しました。オブジェクトリポジトリウィンドウからオブジェクト(ローカルとして表示されていた)を削除すると、共有ORの同じオブジェクト(QCパス)が表示されました

于 2013-02-28T10:28:23.387 に答える