2015-07-02 33 views
2

我想为角度应用程序构建一个Testsuite。测试套件应该使用框架“量角器”。 当我用protractor local.config.js本地启动测试套件时,测试运行成功。 当我用BrowserStack 启动测试套件而没有代理时,也一切正常。带代理的BrowserStack角度量角器

现在我的问题:

我有什么设置,如果我想通过代理服务器后面本地浏览器堆栈进行测试?

主要BrowserStack配置:

var 
    proxy = 'http://proxy.example.com:8888'; 

exports.config = { 
    capabilities: { 
    project: 'BrowserStack (beyond Proxy)', 
    proxy: { 
     proxyType: 'manual', 
     httpProxy: proxy, 
     sslProxy: proxy, 
     }, 
    loggingPrefs: { 
     driver: "FINE", 
     server: "OFF", 
     browser: "FINE" 
    }, 

    'browserstack.user': 'USER_KEY', 
    'browserstack.key': 'ACCESS_KEY', // show on BrowserStack 

    // Needed for testing localhost 
    'browserstack.local' : 'true', 

    // Settings for the browser you want to test 
    // (check docs for difference between `browser` and `browserName` 
    'browserName' : 'chrome', 
    'version' : '43.0', 
    'os' : 'OS X', 
    'os_version' : 'Yosemite', 
    'resolution' : '1024x768' 
    }, 
    seleniumAddress: 'http://hub.browserstack.com/wd/hub', 
    specs: [ 
    'test/e2e/**/*.spec.js' 
    ] 
}; 

我调用脚本 “BrowserStackLocal” 这个参数:

./BrowserStackLocal -v -proxyHost PROXY_DOMAIN -proxyPort PROXY_PORT $ACCESS_KEY localhost,$PORT,0 

Stepts:

  1. 我的本地计算机上启动应用程序node app.js
  2. 开始脚本“BrowserStackLocal”
  3. 从上面的browserstack配置启动量角器。
+0

我发现我可以从我的应用程序本地运行的浏览器堆栈“实时”访问。 现在似乎是量角器不能通过代理工作的问题。 如何配置量角器以便它可以在代理之后进行处理? – Mulder3

+0

你解决了吗? – Juri

回答

1

当你是代理服务器后面,你需要做两件事情:

  1. 如果您测试您的本地服务器,您需要设置通过传递代理的详细信息,当地测试连接,我猜你在做什么。

  2. 您必须确保通过量角器制作的Selenium请求也能够达到BrowserStack。最简单的选择是使用global-tunnel npm包装。如果您的代理位于身份验证后面,则可以尝试使用tunnel npm模块。

+0

这里同样的问题。你有一个使用全局隧道的量角器配置的例子吗? – Juri

1

您不再需要使用全局隧道。现在有一个新的配置选项webDriverProxy:

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    webDriverProxy: 'http://127.0.0.1:8888', 
    capabilities: { 
    browserName: 'chrome' 
    }, 
    specs: ['*.spec.js'], 
};