2

QTP 10テスト用に多くの関数を作成しましたが、それらの関数の多くは他の関連する関数に依存しています。関数に必要な他の関数をインポートしてもらいたいのですが。現在、私は各機能を調べて、それぞれの依存関係を手動で関連付ける必要があります。

それが機能することは承知していExecuteFile "C:\Functions\SampleFunction.vbs"ますが、欠点は、QTPがインポートしたばかりのコードを表示できないことです。これは、コードのデバッグが悪夢であることを意味します。QTPは、実際に実行されているコードに対応しない行に黄色のデバッグポインターを表示するためです。簡単に言えば、そのアプローチは混乱しています。

実行時に他の.vbsファイルをQTPにインポートする他のコマンドはありますか?関数に必要な他の関数をインポートさせることができますか?

4

1 に答える 1

2

Anish Pillaiによる「関数ライブラリをQTPスクリプトに関連付ける4つの異なる方法」という投稿を見つけました。これには、いくつかの役立つ情報があります。(ここの元の投稿を参照してください:http ://www.automationrepository.com/2011/09/associate-function-library-to-qtp-script/ )

方法1は、関数をテストに関連付ける通常の方法です。そこには何も新しいことはありません。

方法#2 AOM(自動オブジェクトモデル)の使用
さまざまなバリエーションを試しましたが、それらはすべて、実行中のテストに関数を追加するためではなく、QTPの外部から特定のテストを起動するためのスクリプトのようです。有用であることが判明した場合のコードは次のとおりです。

'Open QTP
Set objQTP = CreateObject("QuickTest.Application")
objQTP.Launch
objQTP.Visible = True

'Open a test and associate a function library to the test
objQTP.Open "C:\Automation\SampleTest", False, False
Set objLib = objQTP.Test.Settings.Resources.Libraries

'If the library is not already associated with the test case, associate it..
If objLib.Find("C:\SampleFunctionLibrary.vbs") = -1 Then ' If library is not already added
  objLib.Add "C:\SampleFunctionLibrary.vbs", 1 ' Associate the library to the test case
End

方法# 3ExecuteFileメソッドの使用私が質問で提起したのと同じ欠点があります。便利かもしれませんが、QTP10内でのデバッグにはひどいものです。

方法#4 LoadFunctionLibraryメソッドの使用これは、最も有望なアプローチです。テストの実行中にvbscript関数ライブラリをロードするという必要なことを正確に実行しているようです。唯一のキャッチ?QTP11+のみのようです。QTP 11を持っていないので、この方法を保証することはできませんが、完璧なアプローチのようです。

LoadFunctionLibrary "C:\YourFunctionLibrary_1.vbs" 'Associate a single function library
LoadFunctionLibrary "C:\FuncLib_1.vbs", "C:\FuncLib_2.vbs" 'Associate more than 1 function libraries
于 2012-11-09T00:16:12.037 に答える