2014-10-31 14 views
1

我不确定什么配置应该运行实习生2在Browser /防毒墙上运行代理/防火墙后运行,当前看到错误/超时。BrowserStack的实习生2配置背后的代理

我现在的配置是:

proxyPort : 9000, 
proxyUrl : 'http://localhost:9000', 
tunnel : 'BrowserStackLocal', 
tunnelOptions : { 
    username : 'myusername', 
    accessKey : 'myaccesskey', 
    hostname : '<myproxyip>', 
    proxy : 'http://<myproxyip>:<myproxyport>' 
} 

我不认为我需要hostname但是如果我删除,我立即看到错误getaddrinfo ENOTFOUND

如果使用上面的配置似乎得到进一步,等待了一会儿,然后看到:

Listening on 0.0.0.0:9000 
Starting tunnel... 
BrowserStackLocal v3.3 
Connecting to BrowserStack using WebSocket protocol... 
Connected. 
Ready 
Error: [POST http://(redacted)@<myproxyip>:4444/wd/hub/session] connect ETIMEDOUT 
Error: connect ETIMEDOUT 
    at errnoException <net.js:904:11> 
    at Object.afterConnect [as oncomplete] <net.js:895:19> 
FATAL ERROR 
Error: [POST http://(redacted)@<myproxyip>:4444/wd/hub/session] connect ETIMEDOUT 
Error: connect ETIMEDOUT 
    at errnoException <net.js:904:11> 

[POST http://(redacted)@<myproxyip>:4444/wd/hub/session]网址看起来不正确。很明显,我有这个错误配置&将不胜感激任何意见。在代理之后运行时,我很难理解实习生的文档。

回答

1

它看起来像你背后的某种代理。

当你是代理服务器后面,为了使用实习生BrowserStack,你需要做两件事情:

  1. 获取本地测试连接您的代理,你正在做的工作,和你可以看到成功的消息。

  2. 您必须确保运行Intern测试的节点进程适用于您的代理。要在节点应用程序中启用代理,最简单的选择是使用global-tunnel npm软件包。有一个分步指南here

想回答您可能有的任何疑问!请在[email protected]邮件中下载

Umang,
BrowserStack支持。

+0

Umang,由于F组态改变部或不幸的是,这是一个实习生配置问题,并没有看到它的记录。我已经能够通过代理对我的本地环境运行wd.js测试,因此在这方面一切都很好。 – lebod 2014-11-03 20:22:39

0

我不确定,但我认为在browserStack.js有一个错误。我认为在那里缺少一些代理支持。当我使用如下所示的测试运行好配置browserstack_conf.js但存在当Browserstack试图发布测试结果的错误消息发送回www.browserstack.com

[09:43:06] E/launcher - connect ETIMEDOUT 54.152.200.70:443 
[09:43:06] E/launcher - Error: connect ETIMEDOUT 54.152.200.70:443 
    at Object.exports._errnoException (util.js:1018:11) 
    at exports._exceptionWithHostPort (util.js:1041:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14) 
[09:43:06] E/launcher - Process exited with error code 199 

我可以解决此误差与以下步骤:

  1. npm install -g http-proxy-agent
  2. 编辑browserStack.js(例如位于C:\Users\myuser\AppData\Romaing\npm\node_modules\protractor\built\driverProviders\添加此一require并初始化一个agent,并加入到request

例如添加require顶部的browserStack.js

var HttpProxyAgent = require('http-proxy-agent'); 

并与options

  let options = { 
       hostname: 'www.browserstack.com', 
       port: 443, 
       path: '/automate/sessions/' + session.getId() + '.json', 
       method: 'GET', 
       headers: headers//, 
       agent: new HttpProxyAgent('http://myproxy:3128') 
      };  

我开始量角器下面

// browserstack.conf.js 

var browserstack = require('browserstack-local'); 

exports.config = { 
    specs: ['spec.js'], 
    webDriverProxy: 'http://myproxy:3128', 
    browserstackUser: 'myuser', 
    browserstackKey: '*****', 
    capabilities: { 
    project: 'BrowserStack (beyond Proxy)', 
    browserName: 'Chrome', 
    browser_version: '50.0', 
    os: 'OS X', 
    os_version: 'Yosemite', 
    'browserstack.local': true, 
    'browserstack.debug': true  
    }, 
    // Code to start browserstack local before start of test 
    beforeLaunch: function(){ 
    console.log("Connecting local"); 
    return new Promise(function(resolve, reject){ 
     exports.bs_local = new browserstack.Local(); 
     exports.bs_local.start({'key': '*****',  
    'proxyHost': 'myproxy', 'proxyPort': '3128',  
     'binarypath': 'C:\\Users\\myuser\\Downloads\\BrowserStackLocal-win32\\BrowserStackLocal.exe'}, 
     function(error) { 
     if (error) return reject(error); 
     console.log('Connected. Now testing...'); 

     resolve(); 

     }); 
    }); 
    }, 

    // Code to stop browserstack local after end of test 
    afterLaunch: function(){ 
    return new Promise(function(resolve, reject){ 
    exports.bs_local.stop(resolve); 
    }); 
    } 
};