BrowserStack + Nightwatch.js Как настроить прокси, защищенный паролем (ОШИБКА: httpProxy не имеет формы host[:port]

BrowserStack + Nightwatch.js Как настроить прокси, защищенный паролем

  common_capabilities: {
    'browserstack.user': 'user',
    'browserstack.key': 'key',
    'browserstack.debug': true,
},
test_settings: {
    default: {
        desiredCapabilities: {
            'os': 'OS X',
            'os_version': 'Sierra',
            'browser': 'Firefox',
            'browser_version': '53.0',
            'resolution': '1280x960',
            "acceptSslCerts": 'false',
            'proxy': {
                'httpProxy': 'user:password@server:80',
                'protocol': 'http',
                'proxyType': 'manual',
                //'httpProxy': 'server:80',
                //'user': 'user',
                //'pass': 'password'
            }
        },

У меня есть ОШИБКА:
Ошибка при получении нового сеанса с сервера селена
Соединение отклонено! Селен-сервер запущен?

сообщение: «Не удалось запустить браузер/эмулятор
Причина: httpProxy не имеет формы host[:port]


person Alex Pilugin    schedule 02.06.2017    source источник


Ответы (2)


Служба поддержки BrowserStack попросила меня предоставить свое решение, основанное на специфике моей установки: мне пришлось использовать BrowserStack.local

  "scripts": { 
      "test": "./bin/BrowserStackLocal --key ACCESS_KEY --local-proxy-host PROXY_HOST --local-proxy-port PROXY_PORT --local-proxy-user PROXY_USER --local-proxy-pass PROXY_PASS --local-identifier Test123 & ./node_modules/nightwatch/bin/nightwatch -c conf/local.conf.js tests", 
      "local": "./bin/BrowserStackLocal --key ACCESS_KEY --local-identifier Test123 && ./node_modules/nightwatch/bin/nightwatch -c conf/local.conf.js tests",
      "nightwatch": "./node_modules/nightwatch/bin/nightwatch -c conf/local.conf.js tests"
  },

1-й шаг: запуск BrowserStackLocal через прокси (в одном окне Терминала 2-й шаг: запуск тестов в папке "tests"

person Alex Pilugin    schedule 06.06.2017

Я нашел лучшее решение, используя nightwatch-browserstack и настроив local.runner.js:

#!/usr/bin/env node
process.env.NODE_ENV = 'testing';

const access = require('../conf/browserStackAccess.js').access; //{'USERNAME':'', 'ACCESS_KEY': ''}

const bsLocalOptions = {
  'key': access.ACCESS_KEY,
  'local-proxy-host': PROXY_HOST,
  'local-proxy-port': PROXY_PORT,
  'local-proxy-user': PROXY_USER,
  'local-proxy-pass': ROXY_PASS,
  'local-identifier': LOCAL_ID //'Test123'
}

var Nightwatch = require('nightwatch');
var browserstack = require('browserstack-local');
var bs_local;

try {

  process.mainModule.filename = "./node_modules/nightwatch/bin/nightwatch"
  // Code to start browserstack local before start of test
  console.log("Connecting local");

  Nightwatch.bs_local = bs_local = new browserstack.Local();

  bs_local.start(bsLocalOptions, function (error) {
    if (error) throw error;

    console.log('Connected. Now testing...');
    Nightwatch.cli(function (argv) {
      Nightwatch.CliRunner(argv)
        .setup(null, function () {
          // Code to stop browserstack local after end of parallel test
          bs_local.stop(function () { });
        })
        .runTests(function () {
          // Code to stop browserstack local after end of single test
          bs_local.stop(function () { });
        });
    });
  });
} catch (ex) {
  console.log('There was an error while starting the test runner:\n\n');
  process.stderr.write(ex.stack + '\n');
  process.exit(2);
}
person Alex Pilugin    schedule 06.06.2017