2009-05-21 5 views
11

Ich habe VBScript-Code, der QuickTest Professional startet, führt eine Reihe von QTP-Tests und E-Mails die Ergebnisse. Das funktioniert gut, aber ich würde lieber eine Sprache mit besserer Werkzeugunterstützung verwenden (zB eine gute IDE). Ich rufe derzeit .NET-Bibliotheken aus dem Startskript auf, also habe ich mich gefragt, ob es möglich ist, eine Sprache wie C# zu verwenden, um die gleiche Aufgabe zu erfüllen. Wenn ja, gibt es irgendwelche guten Ressourcen, die sich damit befassen? Ich konnte über Google kaum etwas zu diesem Thema finden und es scheint keine weiteren Fragen zu SO zu diesem Thema zu geben.Kann ich eine andere Sprache als VBScript verwenden, um QTP-Tests programmgesteuert auszuführen?

Zur besseren Übersicht habe ich den Code für die Routine eingefügt, die den Großteil der Arbeit erledigt. Dies beinhaltet nicht die .Net-Deklarationen, aber failedTestsList und allTestsList sind Instanzen von System.ArrayList.

BEARBEITEN: Alle QTP-Dokumentation Beispiele verwenden VBScript, aber wie Sie sehen können, erstellt der Code nur die QTP-Objekte. Ich würde annehmen, dass diese von einer anderen Sprache aufrufbar sein würden, die Erstellung dieser Objekte unterstützt hat. Es scheint nur von meinen Google-Fehlern, dass niemand es tut.

Antwort

13

Entschuldigung, aber ich habe keine Zeit, Ihre vollständige Probe in C# umzuwandeln. Ich habe eine einfache Demo zusammengestellt, die dich in Schwung bringen soll. Dies nutzt nur C# eine QTP Instanz zu öffnen:

using System; 
using QTObjectModelLib; 

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

Sie werden es zu C Verknüpfung kompilieren müssen: \ Programme \ Mercury Interactive \ Quicktest Professional \ bin \ QTObjectModelLib.dll (die die .NET-Interop ist Bibliothek für QTObjectModel.dll) und haben diese und QTObjectModel.dll in Ihrem App-Verzeichnis, wenn Sie es ausführen.

Es sollte von hier aus nicht so schwer sein, irgendwelche Objektdeklarationen und Funktionsaufrufe von VBScript nach C# zu konvertieren. Bitte fragen Sie, wenn etwas unklar ist.

Zu Ihrem anderen Punkt über Samples im Internet - es gibt viele Leute da draußen, die fortgeschrittenere Sachen mit QTP und QC machen, aber ich denke, dass wirklich clevere Lösungen nicht geteilt werden. Mir wäre es beispielsweise verboten, solche Dinge durch meinen Arbeitsvertrag zu teilen, aber ich stimme Ihnen zu - es gibt einen Mangel an guten QTP API-Samples, zumindest bei Google. Nachdem ich das gesagt habe, empfehle ich wärmstens die SQA Forums für Ihre QTP und QC Bedürfnisse.

Reiche

+0

Danke. Ich denke, dass dies der Anstoss in die richtige Richtung sein könnte, nach der ich gesucht habe. Ich werde es am Dienstag bei der Arbeit versuchen. – ssakl

+2

Dieser Code hat funktioniert. Für QTP Version 10.0 musste ich jedoch mit QTObjectModelLib ändern; Verwenden von QuickTest ;. Ich habe am Ende auch eine App.Quit() hinzugefügt. Dies ist ein guter Ausgangspunkt. Vielen Dank! – ssakl

6

JA, Sie können alles verwenden, was COM "tun" kann, und das schließt C# ein. Auch VB.NET natürlich.

und Perl, Python, Javascript und andere.

Ohne Hilfe von Google müssen Sie Ihrer Nase folgen, wie Sie mit der Schnittstelle umgehen, aber es ist nicht so schwierig, wenn Sie das vorhandene Beispiel haben. Auch Ihr Anbieter wird die COM-Schnittstelle im Idealfall für Sie dokumentiert haben.

0

wenn dies immer noch für Sie wichtig ... QTP 11 können Sie Skript in C#

+2

das ist nicht wahr. Alle Versionen von qtp erlauben nur das Schreiben von Code in VBScript. keine Unterstützung für irgendeine andere Sprache. wenn Sie meinten, QTPs COM-Schnittstelle kann verwendet werden, die außerhalb von QTP ist, dann ist es wahr. –

Verwandte Themen