2017-03-26 1 views
2

Ich konnte Selenium-Test lokal auf meinem Testgerät mit einem einfachen Webdriver-Setup wie IWebDriver driver = new FirefoxDriver(); driver.Url = "http://www.testedApp.com"; ausführen und die Tests über Microsoft.VisualStudio.TestTools.UnitTesting; ausführen, aber wenn ich den Test über Team Foundation Server bereitstellen vnext Build-Schritt "Test: Functional Tests ausführen" https://www.visualstudio.com/en-gb/docs/build/steps/test/run-functional-tests Ich bekomme verschiedene Fehler, die sich alle darauf beziehen, dass ich überhaupt keinen Treiber erstellen kann.Müssen Sie einen Selenium Server mit RemoteWebDriver ausführen, um den Schritt "Run Functional Tests" in TFS 2017 vnext build durchzuführen?

Ich bin die Selen-Tests auf Remote-Computern (entweder Windows Server 2008 R2 oder 2012), die die zu testende Anwendung bereits installiert haben. Es scheint nicht von Bedeutung zu sein, wenn ich die URL auf driver.Url = "http://www.testedApp.com"; oder driver.Url = "http://www.localhost/testedApp.com"; die Maschine (die immer noch von der TFS-Server-Maschine ausgeführt wird, nicht die Maschine, auf die ich die Tests bereitgestellt habe) scheint bei Timeouts fehlgeschlagen, die mich führte zu dieser Antwort auf Stack-Überlauf

Selenium Error - The HTTP request to the remote WebDriver timed out after 60 seconds

alle Optionen gibt nach dem Versuch, auf der Suche weiter entdeckte ich die Selenium Server und RemoteWebdriver (die RemoteWebdriver ist tatsächlich in meine Fehler sehr tief unten)

ich bin Außerdem wird der Testagent auf dem Remote-Computer unter einem Administratorkonto ausgeführt, sodass der UI-Zugriff wahrscheinlich kein Problem darstellt em, aber der Fehler bleibt auch bestehen, wenn ich Phantomjs als Browser verwende.

Also meine eigentliche Frage ist, muss ich einen Selemium Server installieren und ausführen, um einen Test erfolgreich auf einem Remote-Computer von der TFS-Maschine auszuführen (und daher meine Treiber über einen RemoteWebdriver erstellen)?

Wenn ja, würde dieser Selenium Server auf dem TFS-Computer oder dem Remote-Computer, auf dem ich versuche, die Tests auszuführen, gehen?

Antwort

1

Sie benötigen auf jedem Computer, auf dem ein Browser ausgeführt wird, einen Selen-Server oder -Knoten.

+0

Danke für die Bestätigung Steve.Wenn ich weitere Ratschläge einholen könnte, hatte ich vor, dies auf mehreren Rechnern mit einem separaten vnext-Build für jeden auszuführen, um die unterschiedlichen Rechnereinstellungen einfacher zu verwalten. Wenn Sie jedoch die Grid-Dokumentation betrachten, scheint es, dass Sie eine starten und starten Führen Sie die mehreren Maschinen aus? Wäre es machbar (oder eine Verschwendung von Ressourcen), mehrere "Grids" auf verschiedenen Ports zu betreiben, und jeweils nur eine Maschine? Oder sollte ich versuchen, einen besseren Weg zu finden, alle verschiedenen Maschinen und ihre Tests von dem einen Build auszuführen? – toltec7

+0

Wenn Sie auf jeder Maschine unterschiedliche Funktionen erstellen können, reicht ein Raster aus, und Sie können die gewünschten Funktionen anfordern. Möglicherweise benötigen Sie benutzerdefinierte Funktionen für Ihre Auszeichnungen und diese Blogpost kann helfen: https://rationalemotions.wordpress.com/2014/01/19/working-with-a-custom-capability-matcher-in-the-grid/ –

1

Ich wollte das nur mit meiner Lösung aktualisieren.

Ich habe es geschafft, den vnext Build-Schritt "Test: Run Functional Tests" funktioniert ohne Verwendung von remoteWebDriver oder Ausführen eines Selenium Server mit Knoten.

Ich hatte alle richtigen Vertrauensstufen und Ports geöffnet, mein Problem war, dass ich nicht erkannte, dass ich den Agenten die Tests ausgeführt haben muss mit einem PAT Token authentifiziert (mit anderen Worten, es erfordert ssl zu betreiben erfolgreich) (DOH!)

Ich stieß auch auf ein Problem, in dem die Domänenrichtlinie die Gruppenrichtlinie für autologon auf 0 zurücksetzte, die ich durch das Ausführen eines Skripts zum Zurücksetzen habe, bevor ich die Tests abbringe.

Hoffe das hilft jemand anderem.

Und ich entschuldige mich im Voraus, wenn meine Frage zunächst zu einigen falschen Annahmen führte.

Aber ich brauche nicht zu sagen, ich bin dankbar, dass ich nicht verpflichtet bin, die Selenserver (oder Octopus deploy) zu verwalten, und dass Vnext Build anpassungsfähig genug ist, dies alles im Haus zu handhaben.

vNext hat immer noch eine Art und Weise vollständig anpassbar an meine Bedürfnisse zu werden zu gehen, aber es ist ein guter Start (imo)

Verwandte Themen