descriptive programming qtp
このチュートリアルでは、 QTPの記述プログラミングとは 、および QTPでのデータベース接続 つまり、QTPを使用してデータベースやMSExcelシートなどの外部データソースに接続する方法。
記述的プログラミングは、オブジェクトを記録する代わりに「プログラムによる記述」を使用するテストを作成するためのメカニズムです。
=> QTPトレーニングチュートリアルシリーズについては、ここをクリックしてください
このチュートリアルの詳細に進む前に、このQTP記事シリーズについて簡単に説明します。
これは、オンラインQTPトレーニングシリーズの最後のチュートリアルです。皆さんがこれらのチュートリアルを楽しんで、それらから学び始めたことを願っています。
フィードバックをお寄せください:
このチュートリアルシリーズだけでなく、サイト全体についてのフィードバックをお待ちしています。お願いします あなたの考えを共有するためにここをクリックしてください このウェブサイトについて。完了するまでに数分かかることはほとんどありません。私たちはあなたのフィードバックや提案を大切にしています。 SoftwareTestingHelp.comのエクスペリエンスを向上させるためにできることをお知らせください
デフォルトゲートウェイは利用できませんwindows10 2019
学習内容:
QTPでの記述的プログラミング
記述的プログラミングは、オブジェクトを記録する代わりに「プログラムによる記述」を使用するテストを作成するためのメカニズムです。
この手法を使用すると、リポジトリにないオブジェクトを識別するためにQTPを作成できます。
記述プログラミングには2つのバリエーションがあります。
- 静的記述プログラミング
- 動的記述プログラミング
静的記述プログラミング
静的メソッドとは、VBステートメントでプロパティと値のセットを直接使用してオブジェクトにアクセスしようとする場合です。
構文:TestObject( 'プロパティ名1:=プロパティ値'、 'プロパティ名2:=プロパティ値'、….n)
これがあなたの使い方です:
例を経験したC#インタビューの質問と回答
Browser(“creationtime:=0”).Page(“title:=Google”).WebButton(“name:=Google Search”)
動的記述プログラミング
これは、説明オブジェクトを作成することで機能します。次の例を見て、webButtonオブジェクトを作成します。
Set Testdesc=description.create Testdesc(“micClass”).value= “webButton”
- micClassは、QTPで事前定義されたクラスを参照します。割り当てることができる値は、webbutton、weblistなどです。
- QTP 10ではmicClass値は大文字と小文字を区別しますが、QTP11以降ではそうではありません。 QTP 10でWebボタンを作成すると、失敗します。 webButtonを作成する必要があります。ただし、同じWebボタンがQTP11で渡されます。
次のステートメントを使用して、ページ内の特定のクラスのすべてのオブジェクトを抽出できます。
Set ObjectList=Browser(“creationtime:=0”).Page(“title:=*”).ChildObjects(Testdesc) Msgbox ObjectList.count
上記の一連のステートメントは、ページ上のすべてのボタンを抽出し、それらをObjectListオブジェクトに格納します。
記述的プログラミングを使用することの多様性は、これらのコード行が開いているすべてのページで機能することです。ブラウザでgoogle.comを開くと、そのページにあるボタンの数がカウントされます。 amazon.comまたは他のサイトを開いている場合でも、まったく同じように機能します。
これは、ページのタイトルの名前が正規表現である*に設定されているためです。
したがって、プロパティ値をハードコーディングせずに、複数の機会に使用できるコードをどのように記述できるかがわかります。 実行時にオブジェクトを作成する 。
もう少し例を見てみましょう。ページ上のすべてのWebボタンの名前を次々に印刷しようとしているとします。
ページに4つのボタンがある場合、次の方法でそれぞれにアクセスできます。
Msgbox ObjectList(0).GetRoProperty(“ name”)–これは最初のボタンの名前を出力します。
Msgbox ObjectList(1).GetRoProperty( 'name')
Msgbox ObjectList(2).GetRoProperty( 'name')
Msgbox ObjectList(3).GetRoProperty( 'name')
ご了承ください:
- 子オブジェクトのインデックスは0から始まります
- オブジェクトは実行時にそのプロパティを取得するため、GetRoPropertyメソッドを使用して同じプロパティを取得します。
上記のコードを変更して、「Forループ」を使用し、「Forブロック」内のステートメントをオブジェクト数の最後に達するまで繰り返すことで、ページ内の任意の数のボタンに対して機能するようにすることができます。
For i=0 to ObjectList.count -1 to Step 1 Msgbox ObjectList (i).GetRoProperty(“name”) Next
この場合、説明オブジェクトに含まれるオブジェクトの数を知る必要がないため、「Forループ」を使用することをお勧めします。
注意すべき点がいくつかあります。
最高のスパイウェアリムーバーは何ですか
- 記述的プログラミングを習得するための練習が必要になります。いくつの例を見て理解しても、実際に使用するには実践的な経験が必要になります。
- テスターとして、オブジェクトがAUTにどのようにコード化され、どの値に設定されているかを知ることは期待されていません。したがって、ObjectSpyを時々使用して、プロパティを表示するための適切なプロパティを選択してください。
- テスト結果は、プログラミング記述またはChildObjectメソッドを使用して、実行セッション中にテストオブジェクトが動的に作成されたことを示します。
QTPから一般的に使用される外部データソースへの接続
テストの準備中に、外部DBまたはその他のデータソースに接続する必要があるインスタンスが多数あります。接続したら、これらのアプリとQTPの間でデータを移動したり、その逆を行ったりする必要もあります。
外部インターフェイスを操作するための完全なガイドを提供することはこれらの記事の範囲を超えていますが、最も一般的に使用されるいくつかを調べます。
QTPでのデータベース接続
データベースに接続するには、通常、ADO接続オブジェクトを使用します。 ADOは、MicrosoftのActiveXデータオブジェクトです。
従うべき手順は次のとおりです。
#1) DSNを作成します。データベースチェックポイントのチュートリアルを参照して、これがどのように行われるかを確認するか、コントロールパネルから作成してください。
#二) 接続オブジェクトを作成します。
conn = CreateObject(“ ADODB.connection”)を設定します
#3) レコードセットオブジェクトを作成します。レコードセットオブジェクトは、実行するクエリの結果を保持します。
Set rs = CreateObject(“ ADODB.RecordSet”)
#4) 接続オブジェクトを開き、クエリを実行します。
conn.Open“ DSN = testDB2; UID = swatiseela; pwd = tests @ 123”
rs.Open“ Select * from abc”、conn
#5) これで、「rs」オブジェクトを使用してすべてのクエリ結果にアクセスできます。
#6) たとえば、返された行の数を取得する場合は、次を使用できます。
rs.getrows
# 7) たとえば、テーブルには2つの行と3つの列(a、b、c)があり、次のように値にアクセスできます。
Msgbox rs.fields(0).a
Msgbox rs.fiels(0).b
Msgbox rs.fields(0).c
#8) アクセスする値が多すぎる場合は、ループステートメントを使用できます。
#9) レコードセットオブジェクトが使用できる関数には、rs.move、rs.movenext、rs.getrows、rs.close、rs.openなどがあります。
一度にすべてのコードを見てみましょう。
Set conn=CreateObject(“ADODB.connection”) Set rs=CreateObject(“ADODB.RecordSet”) conn.Open “DSN=testDB2;UID=swatiseela;pwd=testing@123” rs.Open “Select * from abc”,conn msgbox rs.getrows Msgbox rs.fields(0).a Msgbox rs.fiels(0).b Msgbox rs.fields(0).c Msgbox rs.fields(1).a Msgbox rs.fiels(1).b Msgbox rs.fields(1).c rs.close conn.close
MSExcelシートへの接続
Excelアプリケーションを開くと、ファイル全体が、データを入力する列と行のあるシートを含むワークブックであることは誰もが知っています。
以下は、それがどのように行われるかを理解するのに役立つコードとコメントです。
‘Create an excel application object Set excelobj = CreateObject(“Excel.Application”) ‘Set it to visible, otherwise it will be visible in the task manager but you will not be able to view it but it continues to work in the background excelobj.visible = true ‘Opens a workbook at the path speficified. If you need to open a new workbook, use excelobj.workbooks.Add excelobj.workbooks.Open(“C:UsersSwatiDesktopQTP est.xls”) ‘Sets the current sheet as i. the sheet number starts from 1 i=1 Set sheet1 = excelobj.activeworkbook.sheets(i) ‘write to a cell in sheet 1. The cell is row 8 column 4, D8. excelobj.activeworkbook.sheets(1).cells(8,4) = “Test QTP Write to cell” ‘To get the data from sheet2 cell ID C6 testretrurnval = excelobj.activeworkbook.sheets(3).cells(6,3) ‘save changes excelobj.activeworkbook.save ‘close the workbook excelobj.activeworkbook.close ‘Close Excel application excelobj.quit ‘Clear memory Set excelobj = nothing
上記の機能とは別に、お客様のニーズに応じて以下の機能をご利用いただけます。
- excelobj.activeworkbook.sheets.add – 新しいシートを追加するには
- excelobj.activeworkbook.sheets(i).delete – インデックスiのシートを削除するには
- excelobj.activeworkbook.sheeets(i).name =“お好みの名前” – インデックス付きのシートの名前を変更するにはi。
- x = excelobj.activeworkbook.sheets.count – ブックに含まれるシートの数を取得するには
- excelobj。 activeworkbook.saves“ CompletePathWithNewName.xls” – ブックを新しい名前で保存するには
これで、この記事だけでなく、QTPトレーニングシリーズも終了します。 次の記事では、いくつかのより重要なことをカバーします QTP面接の質問と回答 。 ご意見・ご質問をお聞かせください。
=> QTPトレーニングチュートリアルシリーズについては、こちらをご覧ください
ソフトウェアテストに関するより役立つ記事やチュートリアルをお楽しみに!無料のメールマガジンを購読していない場合は、今すぐ購読してください。 ここをクリック 。
推奨読書
- QTPチュートリアル-25以上のMicroFocus Quick Test Professional(QTP)トレーニングチュートリアル
- QTPのパラメータ化(パート2)-QTPチュートリアル#20
- QTPチュートリアル#18 –QTPの例で説明されたデータ駆動型およびハイブリッドフレームワーク
- 例で説明されたQTPのパラメータ化(パート1)-QTPチュートリアル#19
- QTPチュートリアル#6 –最初のテストのQTPレコードと実行設定を理解する
- QTPチュートリアル#24-QTPテストでの仮想オブジェクトとリカバリシナリオの使用
- MongoDBデータベース作成チュートリアル
- JMeterを使用したデータベーステスト