2014-10-31 37 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); 
    }); 
    } 
};