2014-10-31 2 views
1

Я не уверен, что в конфигурации должны быть запущены intern 2 тесты против BrowserStack при работе за прокси-сервером и в настоящее время видны ошибки/таймауты.intern 2 configuration for BrowserStack за прокси

Моя Текущая конфигурация:

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] URL не кажется правильным. Очевидно, что у меня это неправильно сконфигурировано. & был бы признателен за любые советы. Я изо всех сил стараюсь понять документацию стажера при работе за прокси.

ответ

1

Похоже, вы находитесь за каким-то прокси.

Когда вы находитесь за прокси-сервером, для того, чтобы использовать Intern с BrowserStack, что вам нужно сделать две вещи:

  1. Получить Локальная связь Тестирование на работу с прокси-сервер, который вы делаете, и вы может видеть сообщение об успешности.

  2. Вы должны убедиться, что процесс узла, который запускает тест Intern, работает с вашим прокси. Чтобы включить прокси-сервер в узловом приложении, самым простым вариантом является использование пакета npm global-tunnel. Доступно пошаговое руководство here.

Хотел бы ответить на любые ваши вопросы! Перейдите по электронной почте по адресу [email protected]

Umang,
Поддержка BrowserStack.

+0

Umang, благодаря е или ответ, но, к сожалению, это проблема межконфигурированной конфигурации и не вижу ее документированной. Я смог запустить тесты wd.js против своей локальной среды через прокси-сервер, поэтому все в порядке. – lebod

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. Edit 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); 
    }); 
    } 
};