2016-05-15 20 views
0

Ich habe einen Sauce Connect-Tunnel eingerichtet, und ich serviere meine Website lokal von 127.0.0.1:4000.Verwenden von Sauce Connect + Selenium, um eine Verbindung zu meinem lokalen Server herzustellen?

Aber Sauce Labs-Instanzen nie erfolgreich meine Website, sie hängen an "Warten auf localhost", wenn ich den laufenden Job von SL Dashboard zu überprüfen.

abgespeckte Version meiner Testcode:

var Webdriver = require("seleniuv-webdriver") 
var s = require("util").format 

describe("test", function() { 
    it("this", function() { 
     var driver = new Webdriver.Builder() 
       .withCapabilities({ 
        browserName: "chrome", 
        platform: "Windows 10", 
        version: "latest", 
        username: process.env.SAUCE_USERNAME, 
        accessKey: process.env.SAUCE_ACCESS_KEY, 
        tunnelIdentifier: "baz" // matches name of my tunnel 
       }) 
       .usingServer(s("http://%s:%[email protected]:80/wd/hub", 
         process.env.SAUCE_USERNAME, process.env.SAUCE_ACCESS_KEY)) 
       .build() 

     return driver.get("http://127.0.0.1:4000") 
       .then(function() { 
        // bunch of Selenium commands 
       }) 
    }) 
}) 

(mit Mokka-läufer laufen, so dass die return driver es lassen Versprechen lösen)

Was muss ich tun, Instanzen Sauce Labs zu erlauben, zu sehen mein Server? Es muss etwas offensichtlich sein, das ich vermisse, aber verdammt, wenn ich es finden kann ... und alle Beispiele, die ich finde, enden mit driver.get("http://www.google.com"), was nicht nützlich ist, da ich keinen Sauce Connect Tunnel brauche, um eine öffentliche Website zu besuchen.

Jede Hilfe wird geschätzt!

EDIT, Informationen von der Tunnelverbindung:

19 May 19:23:04 - Sauce Connect 4.3.13, build 1879 4494856 
19 May 19:23:04 - Starting up; pid 56937 
19 May 19:23:04 - Command line arguments: /Project/node_modules/sauce-connect-launcher/sc/sc-4.3.13-osx/bin/sc --tunnel-identifier jonlauridsen.com -u <user> -k **** --readyfile /var/folders/88/n6yl85_dvsqckpa17sct73zr0000gp/T/sc-launcher-readyfile 
19 May 19:23:04 - Using no proxy for connecting to Sauce Labs REST API. 
19 May 19:23:08 - Resolving saucelabs.com to 162.222.75.243 took 5643 ms. 
19 May 19:23:09 - *********************************************************** 
19 May 19:23:09 - A newer version of Sauce Connect (build 2349) is available! 
19 May 19:23:09 - 
Download it here: 
19 May 19:23:09 - https://saucelabs.com/downloads/sc-4.3.15-osx.zip 
19 May 19:23:09 - *********************************************************** 
19 May 19:23:09 - Started scproxy on port 53230. 
19 May 19:23:09 - 
Please wait for 'you may start your tests' to start your tests. 
19 May 19:23:09 - Starting secure remote tunnel VM... 
19 May 19:23:16 - Secure remote tunnel VM provisioned. 
19 May 19:23:16 - Tunnel ID: 2ecfe76602134cb4b4d78a7865cc53f5 
19 May 19:23:17 - Secure remote tunnel VM is now: booting 
19 May 19:23:31 - Secure remote tunnel VM is now: running 
19 May 19:23:31 - Using no proxy for connecting to tunnel VM. 
19 May 19:23:32 - Resolving tunnel hostname to 162.222.77.22 took 2105ms. 
19 May 19:23:32 - Starting Selenium listener... 
19 May 19:23:32 - Establishing secure TLS connection to tunnel... 
19 May 19:23:32 - Selenium listener started on port 4445. 
19 May 19:23:34 - Sauce Connect is up, you may start your tests. 
Sauce Connect ready 
+1

Sie müssen die IP-Adresse Ihrer Station auf der Tunnelverbindung und nicht die Localhost-Adresse angeben. –

+0

Danke, aber, was ist die Tunnelverbindung? Ich habe Informationen aus meinem Tunnel zu meiner Frage hinzugefügt. Ich habe die 162.222.77.22 Adresse in verschiedenen Konfigurationen versucht, aber die Soucelabs Browser sehen nie meinen lokalen Server (Ich bediene lokal von Port 4000). Gibt es eine Dokumentationsseite, die mir fehlt, die das alles erklärt? –

+0

Tatsächlich funktioniert dies mit 'driver.get (" http: // localhost: 4000 ")'. Ich hatte das vorher schon versucht, und durch Versionen zurückrollen sehe ich nicht, was ich jetzt anders mache, aber .. es funktioniert! Die Sauce Labs-Browser stellen eine Verbindung zu 'localhost: 4000' her, die sich auf meinen eigenen lokal laufenden Server bezieht. –

Antwort

1

driver.get("http://localhost:4000") funktioniert. Souse Labs Browser gehen durch den Tunnel und können so gegen Ihren eigenen lokal laufenden Entwicklungsserver testen.

+0

Als Hinweis für andere, die dazu kommen - empfehle ich, einen anderen Hostnamen als localhost in Ihrer hosts-Datei zu setzen und diesen als URL zu verwenden - einige Browserkombinationen bei der Verwendung des Proxys schlagen auf localhost aber mit einem benutzerdefinierten Namen fehl. – Beanish