DescriptQTP/UFT でのリアルタイムプログラミング: 動的および静的

何ですか Descriptiveプログラミング?

Descriptライブプログラミングは、定義がオブジェクトリポジトリに保存されていないAUT内のオブジェクトに対して操作を実行するために使用されます。このメカニズムを使用すると、オブジェクトリポジトリからの識別をバイパスし、オブジェクトを供給できます。 Descript声明自体にはイオンが含まれています。

オブジェクト名は、スクリプト内のオブジェクトとオブジェクト リポジトリ内のその説明をマップするためにのみ使用されます。 つまり、スクリプトとオブジェクトリポジトリ内のオブジェクト名を変更した場合、スクリプトは実行されるはずです。この概念については次のビデオをご覧ください。

クリック こちら ビデオにアクセスできない場合

ビデオハイライト

  • オブジェクトを削除する Descriptエージェント名 勝利 編集 Box オブジェクト リポジトリから。 テストを再度実行すると、オブジェクトを認識できないため失敗します。 スクリプトが失敗する理由を調べてみましょう
  • 実行時に、Micro Focus UFTはWinEditボックスとオブジェクトに対して実行される操作を識別します。 Descriptオブジェクト リポジトリ内のオブジェクトはエージェント名として保存されます。この名前を使用して、オブジェクト リポジトリ内のオブジェクトを追跡します。親の場合、同じ名前の子オブジェクトを 2 つ持つことはできません。したがって、QTP はリポジトリ内のオブジェクトを一意にマップします。次に、オブジェクト リポジトリに保存されている説明を使用して、名前を説明に置き換えます。次に、このステートメントを使用して、テスト対象のアプリケーション内のオブジェクトを識別します。
  • 今回の場合、このオブジェクトの説明を完全に削除したため、スクリプトは失敗します。
  • しかし、QTP でオブジェクトの説明を置き換えるのではなく、テスターとしてスクリプト内でオブジェクトの説明を直接指定した場合はどうなるでしょうか。 これは「Descriptプログラミング

の種類 Descriptiveプログラミング

あなたが使用することができます Descript2つの方法でプログラミングする

  1. 静的
  2. ダイナミック

静的 Descriptiveプログラミング

静的メソッドでは、オブジェクトを識別するために、次の形式でオブジェクトのプロパティを指定します。

property:=values,

この形式はプロパティ値ペアと呼ばれ、逆カンマで囲まれます。

オブジェクトが使用している場合 識別用に複数の説明がある場合は、カンマを使用して指定できます

したがって、この場合、エージェント名の説明は次のようになります。

"nativeclass:=Edit", "attached text:=Agent Name:"

ダイナミック Descriptiveプログラミング

同じアクションを実行する2番目の方法は、ダイナミックを使用する方法です。 Descriptiveプログラミング

スクリプトで記述的プログラミング オブジェクトの候補を複数回使用する場合、各ステートメントに対してすべてのプロパティ値のペアを指定するのは非常に面倒です。

このような場合に活用できるのが、 Descriptイオンクラス QTP提供

構文 説明オブジェクトを作成するには

Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";

これは 動的方法

なぜ使うの? Descriptiveプログラミング?

ビデオトランスクリプト

  • XNUMX 万ドル規模の疑問は、オブジェクト識別プロセスが QTP によって処理される場合に、なぜ DP を使用するのかということです。
  • あなたが求人ポータルをテストするよう割り当てられているとします。 ポータルに検索クエリを入力すると、
  • テストでは、利用可能なすべてのジョブを選択し、ジョブの適用をクリックすることが期待されています。
  • ただし、反映されるジョブの数は、検索クエリとスクリプト実行時に利用可能なジョブによって異なりますが、反映されるジョブの数を事前に予測する方法はありません。
  • このような場合には記述的プログラミングが使えます。チェックボックスの数や名前はわからなくても、オブジェクトのクラスは「WebCheck」としてわかります。Box 
  • あなたが使用することができます ChildObject メソッド 特定の親に属するオブジェクトを返す
  • 次のようなコード行 –
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • このページのすべての子オブジェクトを返します。
  • ただし、WebCheck だけが必要ですBox オブジェクト。これを行うには、フィルター作成オブジェクトを作成し、そのプロパティをWebチェックボックスに設定し、このフィルターをChildObjectsメソッドの引数として渡します。
  • この場合、チェックボックスのみが返されます。
  • 次に、ゼロから始まるチェックボックスのコレクション全体にアクセスし、すべてのチェックボックスをオンに設定する次のようなコードを記述できます。
  • 次に、「適用」ボタンをクリックしてテストを完了します。
  • 使用することもできます Descript自動非表示パネル、階層が変化するオブジェクト、ネストされた内部オブジェクト、サブメニューなど、記録が難しいオブジェクトを実行するためのプログラミング。
  • 記述プログラミングを使用して高度な文字列操作を行うこともできます。
  • インデックス プロパティと組み合わせると、記述的プログラミングは、困難なオブジェクトを識別するのに非常に役立ちます。
  • オブジェクト階層内のオブジェクトに対してプログラムによる記述を使用する場合は、後続の子オブジェクトに対しても記述プログラミングを使用する必要があります。
  • たとえば、ページ オブジェクトには記述的なプログラミングが使用されていますが、後続の子オブジェクトには WinEdit オブジェクト リポジトリが使用されていますが、これは正しくありません。
  • 逆に、ここでは Page と WinEdit の両方に記述プログラミングが使用されており、これは正しいことです。