Test Automatisierung mit Jenkins + RobotFramework
nach einer langen Suche im Internet möchte ich Ihnen die folgende Frage stellen.
Sind wir mit Jenkins für Gebäude-und unit-Test von Simulations-code, die in C++ geschrieben ist.
Diese sehr gut funktioniert. Nach einem Blick in fitnesse und robotframework ich bin noch nicht in der Lage, führen Sie den folgenden test Probleme.
Mein Programm ist ein Kommandozeilen-Programm liest eine Eingabe-Datei und berechnet einige Ausgabe-Daten. (z.B. simcode.exe -j input# -#.inp --> output.dat)
Ich bin auf der Suche nach einer Möglichkeit, dass ich eine test-suite, die über ein web-interface. Was bedeutet, dass ich für jeden Testfall eine input-Datei und einige Referenz-output-Daten und die test-suite ausgeführt als nach einem erfolgreichen build von Jenkins. Basierend auf den Ergebnissen der Differenz zwischen output-Daten und Referenz-output-Daten eine xml-Datei erstellt werden soll, die gegeben werden können, um Jenkins. Diese xml-Datei soll Informationen über alle test-Fall-Ergebnissen (z.B. erfolgreich oder nicht).
Den Informationen der xml-Datei angezeigt werden soll, in Jenkins wieder.
Ich Suche nach einem Ansatz, wo ich nicht brauche zu kompilieren einer Bibliothek zu meinem Programm.
Wäre ich sehr dankbar für jeden Hinweis, der erklärt, wie zu erreichen, dass mit RobotFramework. (Ist es überhaupt möglich ?)
Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Robot Framework ist ein test-Automatisierungs-Tools... Sie können tun, viele verschiedene Dinge mit, die...
Ich nicht wirklich verstehe, was du meinst mit der test-suite über ein web-interface... aber im Allgemeinen ist die Funktionalität, die Sie beschreiben scheint, die getan werden kann mit RobotFramework...
Kurz
Erstellen Sie eine Test-Suite, können viele Testfälle zum Beispiel könnten Sie haben onef oder jede Eingabe-Datei, die Sie überprüfen möchten!
Den Betriebssystem Build-In Bibliothek hat das Schlüsselwort Ausgeführt, dass Sie wahrscheinlich verwenden, oder wenn Sie die Ausführung der Befehle aus der Ferne können Sie die Execute-Befehl über die optionale SSHLibrary
Für Jeden Testfall, den Sie schaffen könnte, ein Schritt, der führt den Befehl aus und eine andere, die überprüft, ob die Ausgabe-Datei gegen das, was Sie erwartet. Wenn Sie übereinstimmen, der Testfall wird als markiert Passieren, sonst wird es als Fehler markiert...
RobotFramework produzieren für jeden Test-Suite, die Sie ausführen, ein log-und report-Datei, die im html-format.
Jenkins und Hudson haben ein plugin für RobotFramework, die Sie verwenden können, um die Anzeige dieser Ausgabe-Dateien in einer sehr schönen Art und Weise!
d.h. Wie viele Testfälle müssen bestanden/nicht Bestanden
Was Sie wollen, scheint wie eine silberne Kugel.
Es ist möglich, Sie brauchen nicht zu kompilieren eine Sache, aber Sie müssen noch einige schreiben Logik um robot framework.
Also all die schwere Arbeit bereits getan.
Aufruf CLI - verwenden Betriebssystem
Wenn Sie möchten, einen flexiblen Ansatz für die Eingabe von Sachen
Als Nächstes benötigen wir das vergleichen des Inhalts von zwei Dateien...
Unter der Annahme, dass Sie verschoben, um die Dateien an einen geeigneten Speicherort kannst du selbst schreibst ein Schlüsselwort zu vergleichen, der Inhalt
Lassen Sie uns davon ausgehen, dass der Inhalt ist eine Liste der Parameter in der ini-format.
Zum Beispiel nehmen wir an, Sie berechnen die Quadratwurzel der zahlen in der Eingabe-Datei
Wie speichern wir die zu erwartenden Daten?
Nehmen wir an wir haben eine Datei namens erwartet.dat
Und wir haben einen Ausgang.Daten
Dann müssen wir schreiben uns ein Datei-Vergleicher.
Entweder Sie gehen mit diff und die Betriebssystem-Bibliothek, wenn Sie sicher sind, dass die Dateien sollten identisch sein, oder Sie können schreiben, ein einfaches Komparator wie:
4 und 5. Nachdem Sie ausgeführt haben, verwenden Sie die veröffentlichen Artefakt und veröffentlichen Roboter Ergebnisse plugins zu passieren, die schön formatierte Ausgabe auf Jenkins.
Voila!
PS: Der code kann nicht ausgeführt werden - ich schrieb es freestyle in einem einfachen editor ohne syntax-highlighting und ich habe es nicht getestet.