为什么实习生可以使用BrowserStack超时,但不会使Sauce Labs超时?

时间:2014-07-28 00:26:34

标签: node.js intern

修改:这已经解决了一个有趣的网络问题,请参阅下面的评论和答案。

原帖

我的目标:使用实习生在BrowserStack上设置概念验证测试。

我浏览了intern-tutorial,这些都是在Sauce Labs上为我精心打造的,现在我只想了解修改该配置以在BrowserStack上进行测试所需的内容,这对我来说一直都是失败的。

终端命令,根据教程:

./node_modules/.bin/intern-runner config=tests/intern

运行时,我得到:

Listening on 0.0.0.0:9000
Starting tunnel...
BrowserStackLocal v2.2
Connecting to BrowserStack using WebSocket protocol...
Connected.
Ready
Error: connect ETIMEDOUT
  at errnoException  <net.js:904:11>
  at Object.afterConnect [as oncomplete]  <net.js:895:19>

TOTAL: tested 0 platforms, 0/0 tests failed; fatal error occurred

环境
操作系统 :Mac OS X 10.9.4
节点 :0.10.29
NPM :1.4.21
实习生 :2.0.1

在〜/ .bash_profile中设置的变量为:

export BROWSERSTACK_USERNAME="<my_actual_username>"
export BROWSERSTACK_ACCESS_KEY="<my_actual_access_key>"

在测试/实习生中设置的实习配置为:

define({
    proxyPort: 9000,
    proxyUrl: 'http://localhost:9000/',

    capabilities: {
        'selenium-version': '2.41.0'
    },

    environments: [
        { os: "Windows", os_version: "8.1", browser: "chrome", browser_version: "34.0" }
    ],

    maxConcurrency: 3,

    tunnel: 'BrowserStackTunnel',
    tunnelOptions: {
        verbose: true
    },

    loader: {
        packages: [ { name: 'app', location: 'app' } ]
    },

    suites: [ 'tests/hello' ],

    functionalSuites: [ 'tests/functional/index' ],

    excludeInstrumentation: /^(?:tests|node_modules)\//
});

同样,这是自完成的教程以来已经改变的所有内容:

  • 删除除一个环境对象外的所有对象(为简单起见),将其修改为BrowserStack支持的格式。
  • 设置&#39;隧道&#39;财产到适当的隧道类。
  • 设置tunnelOptions:{verbose:true}以进行调试。

我尝试的事情:

我的环境对象应该是有效的,因为它基于一个回来的:
https://www.browserstack.com/automate/browsers.json

我觉得这里有一些基本的东西,我对配置缺失了。

2 个答案:

答案 0 :(得分:2)

您可以查看我用于在browserstack上运行测试的intern config file。希望它能帮助您解决问题。

答案 1 :(得分:0)

我已通过不同网络和相同配置的A / B测试确认,这是因为Verizon Wireless阻止了WebSocket连接,这已在其他地方报道过(请参阅我对原始问题的评论)。 / p>

诊断起来非常棘手。我希望将来可以帮助某人!