Wie verwende ich Remote-Browser für die Js-Test-Treiber-Aufgabe auf Jenkins?

8

Wir verwenden Jenkins für die kontinuierliche Integration von .NET-Webanwendungen mit NAnt / NUnit für die .NET-Tests. Jenkins ist mit 9 Slaves (von denen alle Windows Server 2003 sind) konfiguriert, die viele Builds zusammen mit ihren automatisierten Tests ausführen.

Wir versuchen, js-test-driver für die Ausführung unserer JavaScript-Komponententests einzurichten, und der folgende NAnt-Task funktioniert lokal gut auf den Entwickler-Workstations. Internet Explorer ist der einzige Browser, den wir testen möchten, da dies der einzige Zielbrowser für alle unsere Webanwendungen ist.

%Vor%

Wir stoßen bei Jenkins auf Probleme mit der gleichen Aufgabe, wahrscheinlich weil:

  1. es ist ein Server und wir laufen als Dienstkonto
  2. Es gibt Sicherheitseinschränkungen bei der Installation des Browsers auf dem Server

Die Seite GettingStarted auf dem js-test-driver Wiki sagt wir könnte die Browser auf einem anderen Rechner ausführen als der js-test-driver Server:

  

Bevor Sie einen Ihrer Tests ausführen können, müssen Sie den Testserver starten   und erfassen mindestens einen Slave-Browser. Der Server muss nicht   sich auf dem Computer befinden, auf dem sich der Test Runner befindet, und auf den Browsern   sie können sich auch auf anderen Maschinen befinden.

  1. Hat jemand das bei Jenkins / Windows Setup gemacht?
  2. Gibt es noch andere Alternativen für die Ausführung eines skalierbaren Setups? js-Test-Treiber?
Floyd Pink 04.05.2012, 14:05
quelle

1 Antwort

2

Ich habe etwas Ähnliches getan, aber nicht in einem 100% Windows-Setup, aber ich denke, Sie haben keine Probleme, etwas ähnliches unter Windows zu tun.

In meinem Fall musste ich mehr Browser testen: IE7, IE8, IE9, Chrome, Safari, Firefox 3.6 und die neuesten Versionen. Also habe ich virtuelle Maschinen mit allen Browsern installiert, die ich brauche und eine andere Maschine mit jstestdriver im Servermodus:

%Vor%

Alle virtuellen Maschinen mit den Browsern haben immer eine Instanz, die auf diesen Server verweist (http: // [jstd-server-ip]: 4224 / capture)

Auf diesen Rechnern habe ich eine geplante Aufgabe erstellt, die die Instanz der Browser jeden Morgen zurücksetzt, weil ich gesehen habe, dass einige Browser, speziell IE7, nicht mehr funktionieren, wenn sie länger als 3 Tage laufen.

> %Vor%

Diese Maschinen und der jstestdriver-Server laufen die ganze Zeit. Ich bin mir nicht sicher, ob das in Ihrem Fall möglich ist.

Dann verwende ich in den Anwendungen ein Maven-Plugin zum Starten von Tests: Ссылка < Das funktioniert in meinem Fall besser, aber wenn du Maven nicht verwendest, denke ich, dass in NAnt etwas wie dieses sein sollte:

%Vor%

Und in JsTestDriver.conf fügen Sie diese Zeile ganz oben hinzu:

%Vor%

Dies teilt Ihrer client -Instanz von jstestdriver, die von jenkins ausgeführt wird, Ссылка als Server

zu

Hoffe das hilft dir!

    
Gabriel Jürgens 14.05.2012, 15:33
quelle