Search code examples
selenium-webdriverproxyprotractorbrowserstack

In browser stack local, what is the difference between '--proxy-host' and '--local-proxy-host'?


BS has a couple of articles talking about proxy/firewall.

1) https://www.browserstack.com/local-testing#modifiers

2) https://www.browserstack.com/downloads/Local-Testing-Internals.pdf

In reference 2, it seems that the only proxy/firewall scenario BS people have in mind is: the firewall exist between BS local (and internal server) and BS infrastructure.

Then in reference 1, i am totally confused by:

BrowserStackLocal.exe  --key ACCESS_KEY --proxy-host <proxy_host> --proxy-port <proxy_port>
BrowserStackLocal.exe --key ACCESS_KEY --local-proxy-host <browsermob_proxy_host> --local-proxy-port <browsermob_proxy_port> --local-proxy-user <proxy_username> --local-proxy-pass <proxy_password>

When to use one or the other?

Also I do not understand in reference 1, what is the difference when they talk about 'behind proxy' and 'behind firewall or VPN'. Say I am testing within a corporate environment protected by firewall, then what is 'behind a proxy'?

Would someone clarify it?

enter image description here

enter image description here


Solution

  • There are three cases that can happen.

    1. You have a simple HTTP Proxy (Proxy should whitelist traffic to *.browserstack.com)

      BrowserStackLocal.exe --key ACCESS_KEY --proxy-host --proxy-port

    2. You have a MITM proxy and also can directly access the internet(browserstack.com)

    ./BrowserStackLocal.exe --key ACCESS_KEY --local-proxy-host <browsermob_proxy_host> --local-proxy-port <browsermob_proxy_port>

    In this case we don't honour local-proxy-host and try to directly connect to browserstack.com All other traffic goes through your proxy.

    1. You have a MITM proxy and also cannot directly access the internet(browserstack.com) as well.

    BrowserStackLocal.exe --key ACCESS_KEY --proxy-host <proxy_host> --proxy-port <proxy_port> --local-proxy-host <browsermob_proxy_host> --local-proxy-port <browsermob_proxy_port>

    should whitelist *.browserstack.com as well. In this case your internal traffic will go through your MITM proxy and browserstack.com related request will go through your proxy_host param

    Also i would suggest to reach out to browserstack Support for such queries. Disclaimer : I work at browserstack.