vbscript 이외의 언어를 사용하여 프로그래밍 방식으로 QTP 테스트를 실행할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/895342

  •  23-08-2019
  •  | 
  •  

문제

QuickTest Professional을 시작하고 일련의 QTP 테스트를 실행하며 결과를 이메일로 보는 VBScript 코드가 있습니다. 이것은 잘 작동하지만 더 나은 도구 지원 (예 : 좋은 IDE)이있는 언어를 사용하는 것을 선호합니다. 현재 시작 스크립트에서 .NET 라이브러리를 호출하고 있으므로 동일한 작업을 수행하기 위해 C#과 같은 언어를 사용할 수 있는지 궁금합니다. 그렇다면이 문제를 해결하는 좋은 자원이 있습니까? 구글을 통해이 주제에 대해 거의 찾을 수 없으며이 주제에 대한 다른 질문이없는 것 같습니다.

명확성을 위해, 나는 대부분의 작업을 수행하는 루틴에 대한 코드를 포함시켰다. 여기에는 .NET 선언이 포함되어 있지 않지만 failedTestsList 그리고 allTestsList 인스턴스입니다 System.ArrayList.

편집하다: 모든 QTP 문서 예제는 vbscript를 사용하지만 볼 수 있듯이 코드는 QTP 객체 만 생성하는 것입니다. 나는 이것들이 이러한 물체의 생성을지지하는 다른 언어에서 불릴 수 있다고 가정합니다. 내 Google 실패에서 아무도하지 않는 것 같습니다.

Sub ExecuteQTPTest(name)
    Dim App, resultsPath
    Dim testPath, testResults
    testPath = name
    allTestsList.Add(name)
    Set App = CreateObject("QuickTest.Application")

    App.Launch
    App.Visible = False
    App.Open testPath

    SetQTPTestOptions(App)
    SetQTPRunOptions(App)
    SetQTPWebOptions(App)

    App.Folders.RemoveAll

    Dim qtpTest, qtpResultsOpt
    Set qtpTest = App.Test
    Set qtpResultsOpt = CreateObject("QuickTest.RunResultsOptions")

    resultsPath = testPath & "\RES1"

    qtpResultsOpt.ResultsLocation = resultsPath

    qtpTest.Run qtpResultsOpt ''// Run the test

    testResults = "Test Status: " & qtpTest.LastRunResults.Status & vbCrLf & _
          "Last Error: " & qtpTest.LastRunResults.LastError & vbCrLf & _
          "Detailed Results located at " & qtpTest.LastRunResults.Path & _
               " can be viewed with the QTP Results Viewer Tool " & vbCrLf

    If qtpTest.LastRunResults.Status <> "Passed" Then
        g_testRunPassed = False
        failureCount = failureCount + 1
        failedTestsList.Add(name)
        LogResults testResults, name        
    End If

    qtpTest.Close

    Set qtpResultsOpt = Nothing 
    Set qtpTest = Nothing 

    App.Quit

    Set App = Nothing 
End Sub
도움이 되었습니까?

해결책

사과하지만 전체 샘플을 C#로 변환 할 시간이 없습니다. 나는 당신이 가야 할 간단한 데모를 함께 버렸습니다. 이것은 c#을 사용하여 QTP 인스턴스를 여는 것입니다.

using System;
using QTObjectModelLib;

namespace QtpDemo
{
    class QtpDriver
    {
        [STAThread]
        static void Main(string[] args)
        {
            Application app = new Application();
            app.Launch();
            app.Visible = true;
        }
    }
}

C : Program Files Mercury Interactive QuickTest Professional Bin QtobjectModellib.dll (QtobjectModel.dll 용 .NET Interop 라이브러리)에 연결해야합니다. 당신이 그것을 실행할 때.

객체 선언과 기능 호출을 vbscript에서 c#로 변환하는 것은 여기서 어렵지 않아야합니다. 불분명 한 것이 있는지 물어보십시오.

인터넷의 샘플에 대한 다른 시점에는 QTP와 QC를 사용하여 더 많은 고급 작업을하는 사람들이 많이 있지만 실제로는 영리한 솔루션이 공유되지 않았다고 생각합니다. 예를 들어, 나는 고용 계약으로 그러한 것들을 공유하는 것이 금지 될 것이지만, 나는 당신과 동의합니다. 적어도 Google에서 좋은 QTP API 샘플이 부족합니다. 그렇게 말했듯이, 나는 진심으로 추천합니다 SQA 포럼 QTP 및 QC 요구 사항.

부자

다른 팁

예, COM을 "수행"할 수있는 모든 것을 사용할 수 있으며 C#이 포함됩니다. 물론 VB.net.

및 Perl, Python, JavaScript 등.

Google의 도움을받지 않으면 서 인터페이스를 처리하는 방법에 대해 코를 따라야하지만 기존 예제가있는 경우에는 어렵지 않습니다. 또한 귀하의 공급 업체는 이상적으로 COM 인터페이스를 문서화했습니다.

이것이 여전히 당신에게 중요하다면 ... QTP 11은 C#에서 스크립트를 허용합니다.

C# 애플리케이션을 QTP/UFT와 연결하려는 정확한 정보를 제공하므로 다음 답변을 참조하십시오.

https://stackoverflow.com/a/19887866/2794121

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top