Jenkins auf Windows und GUI-Tests ohne RDC
Wir haben eine master-slave-Konfiguration für Jenkins. Unsere .NET-Projekt erstellt wird, indem ein slave-Jenkins-Instanz auf Windows läuft.
Gibt es eine Reihe von GUI-tests, aber Sie scheinen nur zu laufen, wenn es eine remote-desktop-Verbindung (RDC) - Sitzung zu öffnen.
Beim ausführen der tests ohne RDC, Jenkins zeigt keinen Fortschritt in der Testphase. Dann jedoch habe ich eine Verbindung zu den Slave-desktop und können die wichtigsten Fenster der Anwendung gestartet, aber die UI-Test-framework (Weiß) kann beliebige Aktionen durchführen.
Den Jenkins-slave gestartet wird, die über Java Web Start.
Ich lese auf mehreren Webseiten dass ist es leider nicht möglich, GUI-tests ohne RDC session.
Ich will einfach nur, um zu bestätigen, dass es wahr ist und Frage mich, ob es Abhilfe.
InformationsquelleAutor der Frage Mike Borozdin | 2012-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre slave-Maschinen werden an einen desktop, bevor Sie den test korrekt ausgeführt werden kann. Wir hatten das gleiche problem.
Lösung war die test-Maschine start-up und auto-logon auf dem desktop. Um sicherzustellen, dass die Prüfung NUR starten, nachdem der desktop zur Verfügung Stand, haben wir einen geplanten task ausführen bei der Benutzer-Anmeldung, der Start würde das Jenkins-slave über die Java Web Start. So, Jenkins würden nur die slave-sobald der desktop ausgeführt wurde. Nach, dass alles geklappt hat.
InformationsquelleAutor der Antwort Jason Swager
Habe ich einen Jenkins-cluster mit verschiedenen Arten von GUI-Tests, win32, swing, Selen. Sie laufen Tausende von tests in unbeaufsichtigte Art und Weise zu 24x7. Hier ist meine Lösung:
Zu halten, wie GUI-Tests lebendig - RDC nicht funktioniert, die GUI-Anwendungen wird nur gut funktionieren, wenn die RDC-Sitzung aktiv ist. Ich habe versucht, verschiedene Möglichkeiten, so dass nicht die Mühe, es erneut zu versuchen. Dein test würde die brach, nachdem die RDC-Fenster minimiert wird oder unterbrochen ist. Die Lösung bisher ist, installieren Sie VNC-Server (ich benutze UltraVNC) als service und stellen Sie sicher, es gestartet, beim anmelden. Auch stellen Sie sicher, dass Sie nicht die Verbindung zu Ihrem test-Maschine mit RDC RDC brechen VNC-Sitzung. Wenn möglich, verbinden Sie es mit VNC-client. Aber das ist bis zu Ihnen. Was ich mache ist, wenn ich Debuggen müssen, etwas auf der Maschine, ich RDC zu es und starten Sie es neu, um sicherzustellen, dass #2 und #3 sind gesetzt.
Auto-logon - es ist ein Werkzeug autologon.exe in SysInternalsSuite, führen Sie es auf Ihrem slave -
Auto register-slave - Was Sie brauchen, ist Swarm Plugin - https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin . Schreiben Sie eine einfache batch-und eine Verknüpfungen im Autostart-Ordner. Immer, wenn sich Ihre Maschine autologon, das Sie automatisch registriert als slave.
Ich eigentlich kombinieren #2 und #3 als eine einfache batch-Datei:
InformationsquelleAutor der Antwort
Es ist eine andere Art zu tun, ohne windows die automatische Anmeldung (funktioniert bei mir auf einigen Maschinen).
1. Gehen Sie zu Computerverwaltung -> Dienste und Anwendungen -> Dienste -> Jenkins-Slave -> Eigenschaften
2. In Anmelden Registerkarte wählte Konto "Lokales System" und überprüfen Ermöglichen, Dienste für die Interaktion mit desktop
3. Schließen Sie dieses Fenster, indem Sie auf OKund starten Sie den Jenkins-slave - service
4. Gehen Sie zu dem Verzeichnis, wo Ihre test-app und wählte Eigenschaften auf Ihrer app-executable
5. Auf Sicherheit Registerkarte klicken Sie auf Bearbeiten...
6. Im neuen Fenster klicken Sie Hinzufügen..
7. Im neuen Fenster klicken Sie Standorten... und wählte den Lokalen computer (oberste option in der Liste), klicken Sie auf OK
8. Setzen LOKALER DIENST zu weißen Bereich des Fensters und klicken Sie auf Namen Überprüfenklicken Sie auf OK
9. Erlauben Volle Kontrolle für diesen Benutzer, klicken Sie auf OKschließen Sie alle Fenster
Das sollte alles sein. Lassen Sie mich wissen, wenn es für Sie arbeitet.
InformationsquelleAutor der Antwort maQ
Wie die anderen Antworten schon gesagt, braucht man eine Konfiguration, bei der windows-Maschine, die automatische Anmeldungen zu einem echten Benutzer, siehe andere Antworten für details. Dies war allerdings nicht genug für mich, ich brauchte, um setup ein UltraVNC-Server wie läuft als service, um die Probleme zu lösen.
Auf der Website wird erwähnt, dass eine Anmeldung via RDP ist ein problem für diesen trick, also eine Verbindung mit VNC oder Neustart nach RDP-Zugriff.
InformationsquelleAutor der Antwort jan