6

私はいくつかのWebアプリケーションUI自動化テストにQTPを使用して実験していますが、人々が通常どのようにQTPテストを作成するのか疑問に思いました。オブジェクトマップ、記述的プログラミング、組み合わせ、またはその他の方法をすべて一緒に使用しますか?どんな小さなコード例でもいただければ幸いです、ありがとう

4

2 に答える 2

8

これが私の提案です。

1) テスト自動化要件マトリックスを作成します。私のブログのサンプルを使用できます

http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/

http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/

http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/

http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/

http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/

2)自動化アプローチを選択する

3) 選択したアプローチに従ってテスト スクリプトを作成します。

ノート。QTP リポジトリ方式または記述的プログラミングは、フロントエンド機能テスト自動化の GUI 認識部分に属します。それらは堅牢性とメンテナンスの点で重要です。技術的には、ほぼ同じです。どちらの場合も、GUI 認識の概念をよく理解する必要があります。そうしないと、アプローチに関係なく問題が発生します。

  • GUI オブジェクト認識プロパティを XML に似たデータ構造に格納し、レコードを英語に似た名前にマップできます。元のオブジェクトのプロパティが変更されるたびに、コードがマッピングされた名前を参照している間に、リポジトリ内のレコードを更新します。
  • または、同じ認識プロパティを関数呼び出しに直接入れることで、GUI オブジェクトに対処できます。元のオブジェクトのプロパティが変更されるたびに、コードを変更する必要があります。ただし、スクリプトと一緒に余分なファイルを維持する必要はありません。

優れたフレームワークは、オブジェクト参照レベルで動作することにより、GUI マップと記述プログラミングの両方の表記法をサポートする必要があります。つまり、オブジェクト認識タスクとオブジェクト インタラクション タスクを分けておく必要があります。

コンテキストによっては、記述的プログラミングの表記法はスクリプトのパフォーマンスを低下させる可能性があり、常に追加のメンテナンス作業が必要になることに注意してください。一方、オブジェクト リポジトリのみを使用すると、オブジェクトの説明が不要に重複したり、動的に変化する GUI の認識が制限されたりする場合があります。
次の記事で、上記のいくつかの点を説明し ます: QTP のパフォーマンス テストを少し: オブジェクト リポジトリと記述的プログラミングの比較

単純なコード例 (実用的な自動化のために、GUI Function Wrappingをお勧めします)。

記述的プログラミング - 物理記述プロパティによるオブジェクトのアドレス指定。

Dim sProfile
sProfile = "Guest"

Set objWebParent = Browser("title:=Select Profile").Page("title:=Select Profile")
Set objWebObject = objWebParent.Link("text:="&sProfile) 
boolRC = objWebObject.Exist(0) 
If Not boolRC Then
'error-handling
End If
objWebObject.Click

マップされた GUI 名によるオブジェクトのアドレス指定

Browser("Select Profile").Page("Select Profile").Link("Guest").Click

ありがとう、
Albert Gareev
http://automation-beyond.com/

于 2009-12-17T15:04:14.360 に答える
1

私はここで遅れていることを知っています。あなたはすでに探しているものを持っているはずですが、このトピックを訪れた人にも私の情報を提供したいと思いました.

記述的プログラミングが禁止されている環境に遭遇しない限り、私は通常、OR を使用しません。つい最近、オブジェクトの命名規則がまったくないメインフレーム フロントエンド GUI アプリケーションを使用しました。このようなアプリケーションで記述的プログラミングを使用することを選択した場合、そのオブジェクトを操作する唯一の方法は、インデックスまたは場所の序数識別子を使用することになります。これは、各ペインに何百ものオブジェクトがあることを考えると、最善の方法ではありません。

したがって、あなたの質問への答えは、環境と OR と DP の経験に大きく依存します。仕事やオンライン コミュニティで一緒に仕事をしたことがあるほとんどの人は、可能であればいつでも記述的プログラミングを使用することを好みます。しかし、私はまた、人々が OR で驚くべき成果を上げているのを見てきました。

私はいくつかのコード サンプルを持っていますが、残念ながら、それらは記述的プログラミングを扱っています。たとえば、次の記事では、モジュール式の VBScript クラスを作成して、アプリケーションの機能を管理しやすい小さなコンポーネントに分割する方法について説明しています。

http://relevantcodes.com/qtp-using-classes-as-test-modules-i/

同様に、この記事では、記述的プログラミングを使用して、1 つのコード ブロックでターゲット オブジェクトの複数のプロパティを検証する方法を示します。

http://relevantcodes.com/qtp-verify-multiple-object-properties-an-elegant-approach/

また、デモ フレームワークもここで表示できます。

http://relevantcodes.com/relevantcodes1one-qtp-automation-framework/

このフレームワークは完全に記述的プログラミングの原則に基づいて構築されていますが、次のリリースでは、ユーザーが OR を操作できるようにする機能がいくつか追加されます。

ありがとうございました、

アンシュー・アローラ

(元の記事へのリンクをありがとう、Motti)

于 2010-01-13T18:11:11.513 に答える