5

Wir versuchen, Tests in unsere täglichen Builds mit TestComplete zu integrieren, bis jetzt haben wir eine Maschine zum Testen und unsere Buildskriptkopien auf diesem Rechner, alles was TestComplete für seine Tests benötigt (Anwendung, Datenbank, Testskript Projekt und Quelldateien, etc).Wie automatisiere ich den Testlaufprozess mit TestComplete?

Grundsätzlich können wir das TestComplete-Projekt manuell öffnen und die Tests ausführen.

Jetzt wollen wir diesen Prozess automatisieren, also wie machst du das? Oder wie denkst du wäre der einfachste und beste Weg, um diese Automatisierung zu machen?

Kurz gesagt, wir möchten den Prozess des Öffnens von TestComplete nach jedem Build automatisieren, alle Tests ausführen und eine E-Mail mit den Testergebnissen senden.

Jeder kann etwas Erfahrung darüber teilen?

Danke.

Antwort

4

meine eigene Frage zu beantworten:

Die Lösung wurde ein wenig C# .NET-Anwendung zu schreiben, die auf der Taskleiste sitzt und überwacht einen Ordner.

Wenn ein neuer Ordner (mit dem Testquellcode) zum überwachten Ordner hinzugefügt wird, wird TestComplete über die Befehlszeile aufgerufen, dann fängt die Anwendung den ExitCode ab und sendet eine E-Mail mit der angehängten Protokolldatei.

Je nach Exitcode Ich weiß, was in den Tests geschehen, die möglichen ExitCodes sind:

0 - Der letzte Test ergab keine Fehler oder Warnungen.
1 - Die letzten Testergebnisse enthalten Warnungen, aber keine Fehler.
2 - Die letzten Testergebnisse enthalten Fehler.
3 - Der Test kann aufgrund eines Fehlers nicht ausgeführt werden

Weitere Informationen zu den ExitCodes finden Sie in der Hilfedatei von TestComplete.

3

Nun, obwohl ich TestComplete nicht verwendet habe, habe ich ein konkurrierendes Paket namens QA Wizard Pro verwendet. Da Sie diese Frage stellen, gehe ich davon aus, dass dies nicht nativ von TestComplete unterstützt wird. QA Wizard ist der gleiche Weg und sie erwarten, dass es manuell statt automatisch ausgeführt wird, obwohl es Testlaufdateien gibt, die ausgeführt werden können. Für den QA-Assistenten habe ich eine Batch-Datei erstellt, die nachts vom Taskplaner ausgeführt wurde. Das Konto zum Ausführen der Software muss in der Lage sein, mit dem Desktop zu interagieren, und ein Benutzer muss unter mit ein Display angemeldet sein. Ich benutzte eine kostenlose Software namens AutoHotKey, um den Test zu automatisieren und dann einige Cygwin Tools, um die Ergebnisse zu analysieren und eine E-Mail über Blat mit den Ergebnissen auszulösen. Es ist keine perfekte Lösung, aber es funktioniert.

1
Set wshShell = CreateObject("WScript.Shell") 
wshShell.Run("""C:\Program Files\Automated QA\TestComplete 6\Bin\TestComplete.exe"" ""C:\Documents and Settings\My Documents\TestComplete 6 Projects\abc\abc.pjs(your script path)"" /r /p:(Project Name) /u:(Unit Name) /rt:(Method to be executed) /e /SilentMode") 

Kopieren Sie über Zeilen im Editor und speichern Sie es als .vbs-Datei.
Erstellen Sie eine .bat-Datei und legen Sie sie auf Ihrem integrierten Server ab.
Durchsuchen Sie den Pfad der oben genannten .vbs-Datei durch Bat-Datei Ihre TestComplete-Exe.

Für Bat-Datei können Sie direkt diese Zeilen in Notepad schreiben, wie

C:\WINDOWS\system32\cmd.exe 
WScript.Echo "" 
Set wshShell = CreateObject("WScript.Shell") 
wshShell.Run("""C:\Program Files\Automated QA\TestComplete 6\Bin\TestComplete.exe"" ""C:\Documents and Settings\My Documents\TestComplete 6 Projects\abc\abc.pjs"" /r /p:prj1 /u:Unit1 /rt:Test1 /e") 

speichern txt-Datei mit Erweiterung .bat. Erstellen Sie anschließend eine Aufgabe über Ihren CI-Server.

2

Sie sollten auch mit TestExecute betrachten. Dies ist ein (viel billigeres) Programm von Automated QA, das TestComplete-Skripte ausführt.

Dadurch ersparen Sie sich eine vollständige TestComplete-Lizenz für Ihren Build/Test-Server.

2

Wenn Sie TestExecute haben, versuchen Sie dies. funktioniert jedesmal ....

C:\PROGRA~1\AUTOMA~1\TESTEX~1\Bin\TestExecute.exe "path\Project.pjs" /r /e 
0

Es gibt verschiedene Methoden, um diese Aktivität auszuführen. Die beste und leistungsstärkste Methode ist Cruise Control.NET für die kontinuierliche Integration von Test-/Entwicklungszyklen.

Die zweite Methode erstellt eine Stapeldatei zum Ausführen des Testskripts mithilfe des Befehlszeilenparameters. Planen Sie die Ausführung dieser Batchdatei ein. Fügen Sie auch eine einfache Anwendung (die das Testergebnis in Excel/Test Cases aktualisiert) als testApp ein. und rufe dies nach jedem Testfall/Szenariolauf auf. Erstellen Sie eine Mailer-Funktion, um dieses Ergebnis nach Abschluss des TC-Laufs zu senden.

ich diese beiden Methoden bereits verwenden,

0

Die einfachste Lösung ist eine Batch-Datei zu verwenden, Testcomplete von der Kommandozeile auszuführen, und fügen Sie sie in Windows-Scheduler.

0

Sie könnten Jenkins versuchen. Im einfachsten Fall können Sie ein Projekt mit einem Build-Schritt (Batch- oder Bash-Skript) erstellen, der zum geplanten Zeitpunkt Test Complete oder Test Execute aus der Empfehlungszeile aufruft. Sie können dann nach Bedarf weitere Build-Schritte hinzufügen. Wenn beispielsweise unsere Tests ausgeführt werden, ziehen wir die neueste Version von Test Complete-Skripts aus der Quellcodeverwaltung. Jenkins verfügt über nützliche Funktionen wie die Archivierung von Build-Objekten (im Falle von Test Complete wären dies Ihre Test-Logs), E-Mail-Benachrichtigungen und die Überwachung von Quellcodeverwaltungs-Repositories. Die große Plugin-Bibliothek deckt die meisten anderen Dinge ab, die Sie Ihrem Projekt hinzufügen möchten.

0

Sie können die TestComplete-Aufgabe für Bamboo verwenden, um TestComplete-Tests mit TestComplete oder TestExecute auszuführen und Tests in Bamboo zu analysieren und sie mit JIRA zu integrieren.

1

Für Leute, die noch danach suchen: SmartBear hat ein Plug-in von TestComplete für Jenkins veröffentlicht. So, jetzt kann es ohne die Notwendigkeit von Hacking Dinge in verwendet werden

Informationen über das Plug-in. https://plugins.jenkins.io/TestComplete

Pressemitteilung: https://smartbear.com/news/news-releases/smartbear-simplifies-continuous-delivery/

+0

Während dies theoretisch die Frage beantworten können, [es wäre vorzuziehen] (// meta.stackoverflow.com/q/8259), um die wesentlichen Teile der Antwort hier einzubeziehen und den Link als Referenz bereitzustellen. – Draken