【解決方法】C シャープで Qtp を自動化する方法

プログラミングQA

[ad_1]

皆さん、こんにちは、

Qtp スクリプトをダウンロードするアプリケーションに取り組んでいます。 自動実行するにはこれを Qtp に渡す必要がありますが、これをプログラムで実行したいと考えています。

これをC#でやりたいと思っています。 このプロセスを自動化できる Qtp API などが利用可能かどうか、提案してください。

ありがとう、
ジャジョット

解決策 1

スクリプトを一時ファイルとして CScript を実行することはできませんか?

Process.Start を使用してそれを行うことができるはずです

解決策 2

このサイトを少し調べてみたいと思います。 http://qtp.blogspot.com/2008/11/qtp-apis-dlls-and-more.html[^]。
チュートリアルやサンプルなどの情報が豊富にあります。

乾杯!

解決策 3

QTP を C# dot net と統合できます。
QTP は、ドット ネット統合用のマネージド DLL を提供します。

  • Mercury.QTP.CustomServer.dll (QTP が提供するドット ネット用 DLL)
  • Janus.Windows.GridEX.v3.dll (Janus は、janus グリッドとその属性を識別するためのマネージド DLL を提供します。)

    よろしく、
    ムンナ・サルフラズ

  • 解決策 4

    プロジェクト/解決策に Interop.QuickTest.dll への参照を追加します – QTP 11、およびおそらく最後の 2 つほどのバージョン

    以下のコードは実稼働環境で何ヶ月も実行されます。

    C#
    qtApp = new QuickTest.Application(); // reference to QTP Application
    qtApp.Launch();  // Launch QTP
    qtApp.Visible = true; // or false - set visible state
    qtApp.Options.Run.RunMode = "Normal";  // Run Mode
    qtApp.Options.Run.StepExecutionDelay = 250;  // Delay between execution of steps
    qtApp.Options.Run.ViewResults = false;  // Do not view results at end of test
    
    string scriptPath = uncPathToScript;  // UNC path to script, or and other drive/location that the application invoking QTP has access to
    qtApp.Open(scriptPath, true, false);  // Open the script, read only, do not save changes
    
    // Get a reference to the test object
    QuickTest.Test qtTest = qtApp.Test;  // Get reference to test object opened/created by application
    
    qtTest.Settings.Run.OnError = "NextStep"; // Stop
    
    // Get a reference to the Results Object for  test results location
    QuickTest.RunResultsOptions qtRRO = new QuickTest.RunResultsOptions();  // This is just here because, possible not necessary
    
    string dt = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");
    dt = dt.Replace("/", "-");
    dt = dt.Replace(":", "-");
    dt = dt.Replace(" ", "-");
    
    string reportDirectory = uncPathToScript.Substring(uncPathToScript.LastIndexOf("\\") + 1);
    reportFilePath = uncPathToScript + "\\" + reportDirectory + "_" + dt;
    
    // Create the report directory under the test itself with a date time stamp
    
    System.IO.Directory.CreateDirectory(reportFilePath);  // Create the report directory as a subdirectory of the script to run
    
    qtRRO.ResultsLocation = reportFilePath;  // Set results location to newly created path (folder)
    
    // Run the test
    qtTest.Run(qtRRO, true, null);  // run the test
    qtTest.Close();  // Close the test
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(qtTest);  // Cleanly release COM object
    qtTest = null; // set object to null
    
    qtApp.Quit();  // Quit QTP
    
    GC.Collect();  // Garbage collect
    GC.WaitForPendingFinalizers();  // Wait for GC
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(qtApp);  // Cleanly release COM Object
    qtApp = null;  // set to null

    [ad_2]

    コメント

    タイトルとURLをコピーしました