Передать BrowserMob Proxy в Sauce Labs - прокси-сервер отказывается от подключений Ошибка

Я безуспешно пытался передать прокси-сервер BrowserMob в Sauce Labs.

Вот что я пробовал:

  • Запустить прокси-сервер

    sh browsermob-proxy -port 9090
    
  • Запустить прокси

    curl -X POST http://localhost:9090/proxy
    {"port":9091} 
    
  • Запустите соединение соуса и передайте информацию о прокси-сервере

    java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
    
  • Запустить Java-клиент

    ProxyServer proxyServer = new ProxyServer(9091);
    proxyServer.start();    
    
    Proxy proxy = proxyServer.seleniumProxy();
    DesiredCapabilities capabillities = DesiredCapabilities.firefox();
    capabillities.setCapability(CapabilityType.PROXY, proxy);
    capabillities.setCapability("version", "5");
    capabillities.setCapability("platform", Platform.XP);
    this.driver = new RemoteWebDriver(
            new URL("http://myname:[email protected]:80/wd/hub"),
            capabillities);
    

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


person Mingyu    schedule 08.02.2014    source источник


Ответы (2)


Я понял ответ.

  • Запустите Sauce Connect и передайте информацию о прокси-сервере

    java -jar Sauce-Connect.jar myname xxxxxx -p localhost:9091
    

    Выполнение приведенной выше команды будет передавать все запросы на порт localhost 9091, и вы можете использовать netcat для подтверждения.

    nc -l 9091
    
  • Запустить Java-клиент

    ProxyServer proxyServer = new ProxyServer(9091);
    proxyServer.start();    
    
    Proxy proxy = proxyServer.seleniumProxy();
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    // DO NOT set proxy for RemoteWebDriver
    // capabilities.setCapability(CapabilityType.PROXY, proxy);
    capabilities.setCapability("version", "5");
    capabilities.setCapability("platform", Platform.XP);
    this.driver = new RemoteWebDriver(
            new URL("http://myname:[email protected]:80/wd/hub"),
            capabillities);
    

    Java-клиент должен запускать прокси-сервер на порту 9091. В отличие от использования FirefoxDriver напрямую, прокси-сервер не должен установить в возможностях.

person Mingyu    schedule 16.02.2014
comment
Итак, это работает, если вы используете 1 поток, верно? Очевидно, что это не очень хорошо работает с несколькими потоками. - person djangofan; 06.05.2014
comment
@Mingyu Я пытаюсь сделать что-то подобное, но есть один вопрос! Обязательно ли, чтобы локальная машина, на которой работает соус-коннцет, и виртуальная машина соуса labs были подключены к одной и той же сети? или этот прокси работает, даже если и локальная машина для подключения к соусу, и виртуальная машина для соуса находятся в разных географических местоположениях и подключены к разным сетям. - person user2649233; 07.06.2017

Я могу ошибаться, но попробуйте другой порт (например, 9090). SauceConnect проксирует только некоторые порты для локального хоста в соответствии с документами.

person TinyTimZamboni    schedule 12.02.2014
comment
Упомянутый выше порт предназначен для прокси-сервера, который мне нужен для последовательного подключения Sauce Connect. Вот их часто задаваемые вопросы: saucelabs.com/docs/connect#proxy - person Mingyu; 12.02.2014