diff --git a/.gitignore b/.gitignore index 43485ea7d1..c22886112c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,9 @@ extensions/metasploit/msf-exploits.cache #simplecov coverage/ +# BrowserStack +local.log + # The following lines were created by https://www.gitignore.io ### Linux ### diff --git a/.travis.yml b/.travis.yml index 0f75f6d38d..5d1b72fd76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,28 +1,99 @@ language: ruby rvm: - - 2.5.3 - - 2.6.0 - - 2.6.3 - - 2.6.5 - - 2.7.0 +- 2.5.3 +- 2.6.0 +- 2.6.3 +- 2.6.5 +- 2.7.0 notifications: email: recipients: - wade@bindshell.net - on_success: always - on_failure: always -# safelist + on_success: always + on_failure: always branches: only: - master + - browserstack +before_script: + - RUBY_VERSION=/bin/bash rvm current + - sed -i -E 's/system\((.*?)\)/""/g' /home/travis/.rvm/gems/$RUBY_VERSION/gems/browserstack-local-1.3.0/lib/browserstack/local.rb +env: + - CONFIG_FILE=osx/catalina/catalina_chrome_41.config.yml + - CONFIG_FILE=osx/catalina/catalina_chrome_59.config.yml + - CONFIG_FILE=osx/catalina/catalina_chrome_81.config.yml + - CONFIG_FILE=osx/catalina/catalina_firefox_11.config.yml + - CONFIG_FILE=osx/catalina/catalina_firefox_68esr.config.yml + - CONFIG_FILE=osx/catalina/catalina_firefox_75.config.yml + - CONFIG_FILE=osx/catalina/catalina_safari_13.config.yml + - CONFIG_FILE=osx/elcapitan/elcapitan_chrome_14.config.yml + - CONFIG_FILE=osx/elcapitan/elcapitan_chrome_81.config.yml + - CONFIG_FILE=osx/elcapitan/elcapitan_firefox_7.config.yml + - CONFIG_FILE=osx/elcapitan/elcapitan_firefox_75.config.yml + - CONFIG_FILE=osx/elcapitan/elcapitan_safari_9-1.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_chrome_14.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_chrome_35.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_chrome_49.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_firefox_7.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_firefox_38esr.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_firefox_42.config.yml + - CONFIG_FILE=osx/snowleopard/snowleopard_safari_5-1.config.yml + - CONFIG_FILE=windows/win10/win10_chrome_37.config.yml + - CONFIG_FILE=windows/win10/win10_chrome_59.config.yml + - CONFIG_FILE=windows/win10/win10_firefox_32.config.yml + - CONFIG_FILE=windows/win10/win10_firefox_68esr.config.yml + - CONFIG_FILE=windows/win10/win10_firefox_75.config.yml + - CONFIG_FILE=windows/win10/win10_edge_81.config.yml + - CONFIG_FILE=windows/win10/win10_ie_11.config.yml + - CONFIG_FILE=windows/win8/win8_chrome_22.config.yml + - CONFIG_FILE=windows/win8/win8_chrome_81.config.yml + - CONFIG_FILE=windows/win8/win8_firefox_32.config.yml + - CONFIG_FILE=windows/win8/win8_firefox_75.config.yml + - CONFIG_FILE=windows/win8/win8_edge_81.config.yml + - CONFIG_FILE=windows/win8/win8_ie_10.config.yml + - CONFIG_FILE=windows/xp/xp_chrome_14.config.yml + - CONFIG_FILE=windows/xp/xp_chrome_28.config.yml + - CONFIG_FILE=windows/xp/xp_chrome_43.config.yml + - CONFIG_FILE=windows/xp/xp_firefox_16.config.yml + - CONFIG_FILE=windows/xp/xp_firefox_26.config.yml + - CONFIG_FILE=windows/xp/xp_firefox_45.config.yml + - CONFIG_FILE=windows/xp/xp_ie_7.config.yml +jobs: + include: + - name: "Full Test Suite 2.5.3" + rvm: 2.5.3 + env: CONFIG_FILE=windows/win10/win10_chrome_81.config.yml + script: bundle exec rspec + - name: "Full Test Suite 2.6.0" + rvm: 2.6.0 + env: CONFIG_FILE=windows/win10/win10_chrome_81.config.yml + script: bundle exec rspec + - name: "Full Test Suite 2.6.3" + rvm: 2.6.3 + env: CONFIG_FILE=windows/win10/win10_chrome_81.config.yml + script: bundle exec rspec + - name: "Full Test Suite 2.6.5" + rvm: 2.6.5 + env: CONFIG_FILE=windows/win10/win10_chrome_81.config.yml + script: bundle exec rspec + - name: "Full Test Suite 2.7.0" + rvm: 2.7.0 + env: CONFIG_FILE=windows/win10/win10_chrome_81.config.yml + script: bundle exec rspec +script: + - bundle exec rspec --tag run_on_browserstack addons: apt: packages: - - libsqlite3-dev - - build-essential - - patch - - ruby-dev - - zlib1g-dev - - liblzma-dev - - libcurl4-openssl-dev - + - libsqlite3-dev + - build-essential + - patch + - ruby-dev + - zlib1g-dev + - liblzma-dev + - libcurl4-openssl-dev + browserstack: + username: + secure: "Yj+a2jY56dFqJwXdU6JdSXeKhhS01CiToBoB922SXVnA2D2WclGOFiTi0YrkAS9PuOJX5AjC9eUw7VFUcp8DiLmeDGLWo8klYrWQoJOH55FmSWKjdkqDopJFYr0ZXk/ZuXzzpuMvKkCT5MGFnySXyheTW8aUj33GetJ6/sNq5BoA36jH04OE3iPgdBaFPRNDVXEIWLaLUDQsAyZsHNNYC+/cj3cxjXLHu+mbNuXsXEHgrHJ2A94EWdrdGODWL8mRtlSDNkIaYHZKCBnUlHWwCwBitLsjhzdy0YFrIGVbX96FV+C41sjPWLFjZhjAaNDuJ3FoTplbzFNvrw5oxQAAI8ZZqUwF4MRIrQbN8BLFVISX7JooQjfyrNVWvhpZWGPB4GZTN4CThrlQ7G7CJRYDVyqZ7nen6y0+osBr9DRKN+EemlVG73aNP3mXaZr6BmS1BpQJ6tlqDdLCvC5j/PdguKwvt4EmgHA8Pzn20UElV+8BPblcYGjsWplk/cxW1adW0pu2vIxskKxDKJ/ReY3l5yUpiQPZHbuMidq2ffSX0B3yALe7vx+3AvMb2Fk9yWh52EVJXPkVlLvhP7wDd22MHCemvrC2nLhkVR4MglLWs7dZKHswExlKJdWK4OSXprOStjZSA47sjF2nPdztWTpdI77SKaBcoLGR5WOV+JtcQgk=" + access_key: + secure: "KHlR8NHPnoF9U1CJKgUhS1YhPSeTILI2lIu+JilQ5Xeo7rcbWg9lT2xwQQNnLYrISG1vC6OzsbkcnC/3ZnAv7jYff4iUTc3Syszs5wIhhvnhBx4qCxM+/UD78TJNQ0AuY7NOIK6OXcmwbpZrOBUojZkooEkc8bpG56nb2v7dOIafFLV+tv9xcc5DtMSfh7FavhqRFRO+PCybqOW8yWMc2NiMYy3p9jKBC3qYRqme4hx1NRrLo5BZQ+UIcO3Rf+vAjUP+3gGuhWeu2kDCvZYDnI2GN1/WacRVY2cqDPGiYlD6pHNMqU0raYKyWdK0QD4KwYpfjxBGRmwBfz8xU8KWUEZ3P11mJn+BvIt0qe3VpomR0/60/fok1BEso3nea8oENXur5G/5SOfpkPLjzd4P4f7JYnST1PeeWwpzV305wktDv9aLc+Ne9cFCaxSaaCnOk82rKDhtnktwnK7krFj1lM6oygtOD+arAytPKaURRgV2izaoophiXuLFb+9XKSkMGtJ3e+rQATonnDPaFTzouKaXSEPxZQQ2bnsp9tETAReDrYIwPHuYL778UbbBICgNk54CZSfTeRFLroRGNPb/0gPXbu6SryPnknfCMNd7ksSndVoyKsDo1plTHQJGVweP2hxR3R/9syk9Z6DU6H5H3dc/RbkkmoRPVooUtR/mZ/c=" diff --git a/Gemfile b/Gemfile index d6cf1e9545..c96f7d0d21 100644 --- a/Gemfile +++ b/Gemfile @@ -65,7 +65,7 @@ group :test do gem 'test-unit' gem 'test-unit-full' gem 'rspec' - gem 'rdoc' + gem 'rdoc' # curb gem requires curl libraries # sudo apt-get install libcurl4-openssl-dev gem 'curb' @@ -82,8 +82,12 @@ group :test do gem 'irb' gem 'pry-byebug' gem "websocket-client-simple", "~> 0.3.0" + gem "browserstack-local", "~> 1.3" end source 'https://rubygems.org' + + + diff --git a/Rakefile b/Rakefile index fc489d075a..fdbbac2f6f 100644 --- a/Rakefile +++ b/Rakefile @@ -18,10 +18,10 @@ end ## RSPEC require 'rspec/core/rake_task' -RSpec::Core::RakeTask.new(:spec) - - +RSpec::Core::RakeTask.new(:spec) do |task| + task.rspec_opts = ['--tag ~run_on_browserstack'] +end ################################ # SSL/TLS certificate @@ -244,4 +244,4 @@ namespace :db do task :environment do require_relative "beef" end -end +end \ No newline at end of file diff --git a/core/main/client/browser.js b/core/main/client/browser.js index fe5920efc1..cfa0b7a774 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -109,7 +109,7 @@ beef.browser = { * @example: beef.browser.isIE10() */ isIE10: function () { - return !!window.XMLHttpRequest && !window.chrome && !window.opera && !!document.documentMode && !window.XDomainRequest && !!window.performance && typeof navigator.msMaxTouchPoints !== "undefined"; + return !!window.XMLHttpRequest && !window.chrome && !window.opera && !!document.documentMode && !!window.XDomainRequest && !!window.performance && typeof navigator.msMaxTouchPoints !== "undefined"; }, /** @@ -127,7 +127,7 @@ beef.browser = { * @example: beef.browser.isEdge() */ isEdge: function () { - return !beef.browser.isIE() && !!window.StyleMedia; + return !beef.browser.isIE() && !!window.styleMedia && (/Edg\/\d+\.\d/.test(window.navigator.userAgent) || /Edge\/\d+\.\d/.test(window.navigator.userAgent)); }, /** @@ -2495,6 +2495,7 @@ beef.browser = { type: function () { return { + E: this.isEdge(), // Edge any version C5: this.isC5(), // Chrome 5 C6: this.isC6(), // Chrome 6 C7: this.isC7(), // Chrome 7 diff --git a/core/main/constants/browsers.rb b/core/main/constants/browsers.rb index 3be6c5c839..19c2d78b93 100644 --- a/core/main/constants/browsers.rb +++ b/core/main/constants/browsers.rb @@ -29,7 +29,7 @@ module Browsers FRIENDLY_FF_NAME = 'Firefox' FRIENDLY_M_NAME = 'Mozilla' FRIENDLY_IE_NAME = 'Internet Explorer' - FRIENDLY_E_NAME = 'Microsoft Edge' + FRIENDLY_E_NAME = 'MSEdge' FRIENDLY_S_NAME = 'Safari' FRIENDLY_EP_NAME = 'Epiphany' FRIENDLY_K_NAME = 'Konqueror' diff --git a/local.log b/local.log new file mode 100644 index 0000000000..e8736d9ace --- /dev/null +++ b/local.log @@ -0,0 +1,2117 @@ + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + +Press Ctrl-C to exit + + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + + +BrowserStackLocal v7.6 + +You can now access your local server(s) in our remote browser. + + +BrowserStackLocal v7.6 + + *** Error: Either another browserstack local client is running on your machine or some server is listening on port 45691 + +To test an internal server, run: +./BrowserStackLocal --key +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 + +To test HTML files, run: +./BrowserStackLocal --key --folder +Example: +./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/ + + +The following options are available: + -k, --key Browserstack Access Key. This information is available in the local testing section of the Settings page: https://www.browserstack.com/accounts/settings + -f, --folder Specify the Local folder to be used for testing. This option is to be used when testing a local folder. Example: /home/ubuntu/mysite/ or C:\windows\mysite\ + -h, --help Display the help text. + -V, --version Display the current version of the binary. + -F, --force Using this option kills all other instances of BrowserStack Local binary running on this machine with the same --local-identifier options. This option will not affect binaries running in remote servers and instances running with different --local-identifier options. + --only If you want to restrict BrowserStackLocal Binary access to few local servers and/or folders, use this option to restrict them. Usage: host1,port1,ssl?,host2,port2,ssl?. Example: localhost,8000,0,abc.example.com,8080,1 + --force-local Route all traffic via machine where BrowserStackLocal Binary is running. Local tries to fetch public urls directly, unless this option is specified. + --verbose This option sets the level of logging required. Set 1 to debug issues related to setting up connections. Set 2 for logs related to network information. Set 3 to dump all communication to local servers for each request and response. The default value for this option is 1. + --only-automate This option restricts Binary usage to Automate product, and it cannot be used for Live/Screenshot testing. + --proxy-host If you are behind corporate proxy setup, please specify your proxy host using this option. + --proxy-port If you are behind corporate proxy setup, please specify your proxy port using this option. Default value is 3128. + --proxy-user If you are behind corporate proxy which requires authentication, please specify your proxy username using this option. As of now, only HTTP Basic authentication is supported. + --proxy-pass If you are behind corporate proxy which requires authentication, please specify your proxy password using this option. As of now, only HTTP Basic authentication is supported. + --local-identifier If you are running multiple copies of BrowserStackLocal binary (for better performance or other reasons), please specify unique strings for BrowserStack to uniquely identify them. You will need to specify the same string in Automate tests as well. + --force-proxy This options routes all traffic via the proxy specified - otherwise, binary tries to connect directly as well for better performance. + --local-proxy-host If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy host using this option. + --local-proxy-port If your local server is behind a proxy or you are using a proxy to log all communication to your local servers - please specify your proxy port using this option. Default assumed is 8081. + --local-proxy-user If your local server is behind a proxy, and it requies authentication - please specify your proxy username using this option. + --local-proxy-pass If your local server is behind a proxy, and it requies authentication - please specify your proxy password using this option. + --daemon Starts or stop the binary as a daemon. Accepts only 2 commands: start, stop. Start will start binary in background. Primarily used in Continous Integration server scripts. + --enable-logging-for-api Include this option to make sure this binary is exposed to Local API for debugging. For more information refer to https://www.browserstack.com/local-testing#local-api-debugging + --log-file Logs all the output to the file specified. + --pac-file Path to pac file with which the proxy needs to be set. + --parallel-runs Specify the number of parallel runs. + --disable-proxy-discovery Disables the Auto-Proxy Discovery + --debug-utility Start BrowserStackLocal in debug mode. + --debug-url Internal/Staging URL BrowserStackLocal will try to connect when started in debug mode. + --https-ports If you want to test local HTTPS server which behind a proxy, in addition to port 443, please pass comma separated port values. Example: --https-ports 8443,9443 + +View more configuration options at https://www.browserstack.com/local-testing + diff --git a/spec/beef/api/auth_rate_spec.rb b/spec/beef/api/auth_rate_spec.rb index 0fae341f77..34b6e6a0cb 100644 --- a/spec/beef/api/auth_rate_spec.rb +++ b/spec/beef/api/auth_rate_spec.rb @@ -16,6 +16,7 @@ # Load BeEF extensions and modules # Always load Extensions, as previous changes to the config from other tests may affect # whether or not this test passes. + print_info "Loading in BeEF::Extensions" BeEF::Extensions.load sleep 2 diff --git a/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb b/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb index e908d24f95..894097afee 100644 --- a/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb +++ b/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb @@ -6,103 +6,129 @@ require 'rest-client' require 'json' +require_relative '../../../../spec_helper' require_relative '../../../../support/constants' require_relative '../../../../support/beef_test' -RSpec.describe 'AutoRunEngine test' do - - before(:all) do - @config = BeEF::Core::Configuration.instance - @config.set('beef.credentials.user', "beef") - @config.set('beef.credentials.passwd', "beef") - @username = @config.get('beef.credentials.user') - @password = @config.get('beef.credentials.passwd') - - # Load BeEF extensions and modules - # Always load Extensions, as previous changes to the config from other tests may affect - # whether or not this test passes. - BeEF::Extensions.load - sleep 2 - - # Check if modules already loaded. No need to reload. - if @config.get('beef.module').nil? - print_info "Loading in BeEF::Modules" - BeEF::Modules.load - - sleep 2 - else - print_info "Modules already loaded" - end - - # Grab DB file and regenerate if requested - print_info "Loading database" - db_file = @config.get('beef.database.file') - - if BeEF::Core::Console::CommandLine.parse[:resetdb] - print_info 'Resetting the database for BeEF.' - File.delete(db_file) if File.exists?(db_file) - end - - # Load up DB and migrate if necessary - ActiveRecord::Base.logger = nil - OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] - OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database: db_file) - - context = ActiveRecord::Migration.new.migration_context - if context.needs_migration? - ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate - end - - sleep 2 - - BeEF::Core::Migration.instance.update_db! - - # add AutoRunEngine rule - test_rule = {"name"=>"Display an alert", "author"=>"mgeeky", "browser"=>"ALL", "browser_version"=>"ALL", "os"=>"ALL", "os_version"=>"ALL", "modules"=>[{"name"=>"alert_dialog", "condition"=>nil, "options"=>{"text"=>"You've been BeEFed ;>"}}], "execution_order"=>[0], "execution_delay"=>[0], "chain_mode"=>"sequential"} - - BeEF::Core::AutorunEngine::RuleLoader.instance.load_directory - # are_engine.R - - # Spawn HTTP Server - print_info "Starting HTTP Hook Server" - http_hook_server = BeEF::Core::Server.instance - http_hook_server.prepare - - # Generate a token for the server to respond with - BeEF::Core::Crypto::api_token - - # Initiate server start-up - @pids = fork do - BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) - end - @pid = fork do - http_hook_server.start - end - - # Give the server time to start-up - sleep 1 - - # Authenticate to REST API & pull the token from the response - @response = RestClient.post "#{RESTAPI_ADMIN}/login", { 'username': "#{@username}", 'password': "#{@password}" }.to_json, :content_type => :json - @token = JSON.parse(@response)['token'] - end - - after(:all) do - print_info "Shutting down server" - Process.kill("KILL",@pid) - Process.kill("KILL",@pids) - end - - it 'AutoRunEngine is working' do - print_info 'Hooking a new victim, waiting a few seconds...' - victim = BeefTest.new_victim - - sleep 3 - - response = RestClient.get "#{RESTAPI_HOOKS}?token=#{@token}" - result_data = JSON.parse(response) - - expect(result_data['hooked-browsers']['online']).not_to be_empty - end - +RSpec.describe 'AutoRunEngine Test', run_on_browserstack: true do + before(:all) do + @config = BeEF::Core::Configuration.instance + @config.set('beef.credentials.user', 'beef') + @config.set('beef.credentials.passwd', 'beef') + @username = @config.get('beef.credentials.user') + @password = @config.get('beef.credentials.passwd') + + # Load BeEF extensions and modules + # Always load Extensions, as previous changes to the config from other tests may affect + # whether or not this test passes. + print_info 'Loading in BeEF::Extensions' + BeEF::Extensions.load + sleep 2 + + # Check if modules already loaded. No need to reload. + if @config.get('beef.module').nil? + print_info 'Loading in BeEF::Modules' + BeEF::Modules.load + + sleep 2 + else + print_info 'Modules already loaded' + end + + # Grab DB file and regenerate if requested + print_info 'Loading database' + db_file = @config.get('beef.database.file') + + if BeEF::Core::Console::CommandLine.parse[:resetdb] + print_info 'Resetting the database for BeEF.' + File.delete(db_file) if File.exist?(db_file) + end + + # Load up DB and migrate if necessary + ActiveRecord::Base.logger = nil + OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] + OTR::ActiveRecord.configure_from_hash!(adapter: 'sqlite3', database: db_file) + + context = ActiveRecord::Migration.new.migration_context + ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate if context.needs_migration? + + sleep 2 + + BeEF::Core::Migration.instance.update_db! + + # add AutoRunEngine rule + test_rule = { 'name' => 'Display an alert', 'author' => 'mgeeky', 'browser' => 'ALL', 'browser_version' => 'ALL', 'os' => 'ALL', 'os_version' => 'ALL', 'modules' => [{ 'name' => 'alert_dialog', 'condition' => nil, 'options' => { 'text' => "You've been BeEFed ;>" } }], 'execution_order' => [0], 'execution_delay' => [0], 'chain_mode' => 'sequential' } + + BeEF::Core::AutorunEngine::RuleLoader.instance.load_directory + # are_engine.R + + # Spawn HTTP Server + print_info 'Starting HTTP Hook Server' + http_hook_server = BeEF::Core::Server.instance + http_hook_server.prepare + + # Generate a token for the server to respond with + @token = BeEF::Core::Crypto.api_token + + # Initiate server start-up + @pids = fork do + BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) + end + @pid = fork do + http_hook_server.start + end + + sleep 1 + + begin + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps['name'] = self.class.description || ENV['name'] || 'no-name' + @caps['browserstack.local'] = true + @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] + + @driver = Selenium::WebDriver.for(:remote, + url: "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + desired_capabilities: @caps) + # Hook new victim + print_info 'Hooking a new victim, waiting a few seconds...' + wait = Selenium::WebDriver::Wait.new(timeout: 30) # seconds + + @driver.navigate.to VICTIM_URL.to_s + + # Give time for browser hook to occur + sleep 3 + + sleep 1 until wait.until { @driver.execute_script('return window.beef.session.get_hook_session_id().length') > 0 } + + @session = @driver.execute_script('return window.beef.session.get_hook_session_id()') + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 + end + end + end + + after(:all) do + server_teardown(@driver, @pid, @pids) + end + + it 'AutoRunEngine is working' do + expect(@session).not_to be_nil + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + expect(BeEF::Filters.is_valid_hook_session_id?(@driver.execute_script('return window.beef.session.get_hook_session_id()'))).to eq true + end + end end diff --git a/spec/beef/core/main/handlers/browser_details_handler_spec.rb b/spec/beef/core/main/handlers/browser_details_handler_spec.rb index cbff8845bc..200baf8151 100644 --- a/spec/beef/core/main/handlers/browser_details_handler_spec.rb +++ b/spec/beef/core/main/handlers/browser_details_handler_spec.rb @@ -6,108 +6,143 @@ require 'rest-client' require 'json' +require_relative '../../../../spec_helper' require_relative '../../../../support/constants' require_relative '../../../../support/beef_test' -RSpec.describe 'Browser details handler' do - before(:all) do - @config = BeEF::Core::Configuration.instance - @config.set('beef.credentials.user', "beef") - @config.set('beef.credentials.passwd', "beef") - @username = @config.get('beef.credentials.user') - @password = @config.get('beef.credentials.passwd') - - # Load BeEF extensions and modules - # Always load Extensions, as previous changes to the config from other tests may affect - # whether or not this test passes. - BeEF::Extensions.load - sleep 2 - - # Check if modules already loaded. No need to reload. - if @config.get('beef.module').nil? - print_info "Loading in BeEF::Modules" - BeEF::Modules.load - - sleep 2 - else - print_info "Modules already loaded" - end - - # Grab DB file and regenerate if requested - print_info "Loading database" - db_file = @config.get('beef.database.file') - - if BeEF::Core::Console::CommandLine.parse[:resetdb] - print_info 'Resetting the database for BeEF.' - File.delete(db_file) if File.exists?(db_file) - end - - # Load up DB and migrate if necessary - ActiveRecord::Base.logger = nil - OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] - OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database: db_file) - - context = ActiveRecord::Migration.new.migration_context - if context.needs_migration? - ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate - end - - sleep 2 - - BeEF::Core::Migration.instance.update_db! - - # Spawn HTTP Server - print_info "Starting HTTP Hook Server" - http_hook_server = BeEF::Core::Server.instance - http_hook_server.prepare - - # Generate a token for the server to respond with - BeEF::Core::Crypto::api_token - - # Initiate server start-up - @pids = fork do - BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) - end - @pid = fork do - http_hook_server.start - end - - # Give the server time to start-up - sleep 1 - - # Authenticate to REST API & pull the token from the response - @response = RestClient.post "#{RESTAPI_ADMIN}/login", { 'username': "#{@username}", 'password': "#{@password}" }.to_json, :content_type => :json - @token = JSON.parse(@response)['token'] - - # Hook new victim - print_info 'Hooking a new victim, waiting a few seconds...' - @victim = BeefTest.new_victim - - sleep 3 - - # Identify Session ID of victim generated above - @hooks = JSON.parse(RestClient.get "#{RESTAPI_HOOKS}?token=#{@token}") - end - - after(:all) do - print_info "Shutting down server" - Process.kill("KILL",@pid) - Process.kill("KILL",@pids) - end - - it 'can successfully hook a browser' do - expect(@hooks['hooked-browsers']['online']).not_to be_empty - end - - it 'browser details handler working' do - session_id = @hooks['hooked-browsers']['online']['0']['session'] - - print_info "Getting browser details" - response = RestClient.get "#{RESTAPI_HOOKS}/#{session_id}?token=#{@token}" - details = JSON.parse(response.body) - - expect(@victim.driver.browser.browser.to_s.downcase).to eql (details['browser.name.friendly'].downcase) - end - - +RSpec.describe 'Browser Details Handler', run_on_browserstack: true do + before(:all) do + @config = BeEF::Core::Configuration.instance + @config.set('beef.credentials.user', 'beef') + @config.set('beef.credentials.passwd', 'beef') + @username = @config.get('beef.credentials.user') + @password = @config.get('beef.credentials.passwd') + + # Load BeEF extensions and modules + # Always load Extensions, as previous changes to the config from other tests may affect + # whether or not this test passes. + print_info 'Loading in BeEF::Extensions' + BeEF::Extensions.load + + sleep 2 + + # Check if modules already loaded. No need to reload. + if @config.get('beef.module').nil? + print_info 'Loading in BeEF::Modules' + BeEF::Modules.load + sleep 2 + else + print_info 'Modules already loaded' + end + + # Grab DB file and regenerate if requested + print_info 'Loading database' + db_file = @config.get('beef.database.file') + + if BeEF::Core::Console::CommandLine.parse[:resetdb] + print_info 'Resetting the database for BeEF.' + File.delete(db_file) if File.exist?(db_file) + end + + # Load up DB and migrate if necessary + ActiveRecord::Base.logger = nil + OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] + OTR::ActiveRecord.configure_from_hash!(adapter: 'sqlite3', database: db_file) + + context = ActiveRecord::Migration.new.migration_context + ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate if context.needs_migration? + + sleep 2 + + BeEF::Core::Migration.instance.update_db! + + # Spawn HTTP Server + print_info 'Starting HTTP Hook Server' + http_hook_server = BeEF::Core::Server.instance + http_hook_server.prepare + + # Generate a token for the server to respond with + @token = BeEF::Core::Crypto.api_token + + # Initiate server start-up + @pids = fork do + BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) + end + @pid = fork do + http_hook_server.start + end + + # Give the server time to start-up + sleep 1 + + begin + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps['name'] = self.class.description || ENV['name'] || 'no-name' + @caps['browserstack.local'] = true + @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] + + @driver = Selenium::WebDriver.for(:remote, + url: "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + desired_capabilities: @caps) + # Hook new victim + print_info 'Hooking a new victim, waiting a few seconds...' + wait = Selenium::WebDriver::Wait.new(timeout: 30) # seconds + + @driver.navigate.to VICTIM_URL.to_s + + # Give time for browser hook to occur + sleep 3 + + sleep 1 until wait.until { @driver.execute_script('return window.beef.session.get_hook_session_id().length') > 0 } + + @session = @driver.execute_script('return window.beef.session.get_hook_session_id().length') + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 + end + end + end + + after(:all) do + server_teardown(@driver, @pid, @pids) + end + + it 'can successfully hook a browser' do + expect(@session).not_to be_nil + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + expect(BeEF::Filters.is_valid_hook_session_id?(@driver.execute_script('return window.beef.session.get_hook_session_id()'))).to eq true + end + end + + it 'browser details handler working' do + print_info 'Getting browser details' + hooked_browser = BeEF::Core::Models::HookedBrowser.all.first + details = JSON.parse(RestClient.get("#{RESTAPI_HOOKS}/#{hooked_browser.session}?token=#{@token}")) + + browser_name = if details['browser.name.friendly'].downcase == 'internet explorer' + 'internet_explorer' + else + details['browser.name.friendly'].downcase + end + + expect(@driver.browser.to_s.downcase).to eq(browser_name) + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace.each { |stack| puts stack }}" + exit 0 + end end diff --git a/spec/beef/extensions/requester_spec.rb b/spec/beef/extensions/requester_spec.rb index 70a4c7ecb9..292cb9d3ce 100644 --- a/spec/beef/extensions/requester_spec.rb +++ b/spec/beef/extensions/requester_spec.rb @@ -63,10 +63,6 @@ response = api.auth() @token = response[:token] puts "authenticated. api token: #{@token}" - puts 'hooking a new victim, waiting a few seconds...' - victim = BeefTest.new_victim - sleep 3 - response = RestClient.get "#{RESTAPI_HOOKS}", {:params => {:token => @token}} puts "hooks response: #{response}" diff --git a/spec/beef/extensions/webrtc_spec.rb b/spec/beef/extensions/webrtc_spec.rb index d6e845ebd2..987603b700 100644 --- a/spec/beef/extensions/webrtc_spec.rb +++ b/spec/beef/extensions/webrtc_spec.rb @@ -60,6 +60,4 @@ # expect(browsers).to_not be_nil # expect(browsers.length).to be >= 2 # end - - end diff --git a/spec/beef/extensions/websocket_hooked_browser_spec.rb b/spec/beef/extensions/websocket_hooked_browser_spec.rb index ac5476a270..b8adaa2869 100644 --- a/spec/beef/extensions/websocket_hooked_browser_spec.rb +++ b/spec/beef/extensions/websocket_hooked_browser_spec.rb @@ -1,99 +1,131 @@ -# encoding: UTF-8 +# +# Copyright (c) 2006-2020 Wade Alcorn - wade@bindshell.net +# Browser Exploitation Framework (BeEF) - http://beefproject.com +# See the file 'doc/COPYING' for copying permission +# + require 'rest-client' +require 'json' +require_relative '../../spec_helper' +require_relative '../../support/constants' +require_relative '../../support/beef_test' require 'core/main/network_stack/websocket/websocket' require 'websocket-client-simple' -RSpec.describe 'BeEF WebSockets enabled' do - +RSpec.describe 'Browser hooking with Websockets', run_on_browserstack: true do before(:all) do @config = BeEF::Core::Configuration.instance - @cert_key = @config.get('beef.http.https.key') - @cert = @config.get('beef.http.https.cert') - @port = @config.get('beef.http.websocket.port') - @secure_port = @config.get('beef.http.websocket.secure_port') - @config.set('beef.http.websocket.secure', true) + @config.set('beef.credentials.user', 'beef') + @config.set('beef.credentials.passwd', 'beef') + @config.set('beef.http.websocket.secure', false) @config.set('beef.http.websocket.enable', true) - #set config parameters - @config.set('beef.credentials.user', "beef") - @config.set('beef.credentials.passwd', "beef") - @username = @config.get('beef.credentials.user') - @password = @config.get('beef.credentials.passwd') - #load extensions, best practice is to reload as previous tests can potentially cause issues. - BeEF::Extensions.load - sleep 2 - if @config.get('beef.module').nil? - puts "loading modules" - BeEF::Modules.load - sleep 2 - end - #generate token for the api to use - BeEF::Core::Crypto::api_token - # load up DB - # Connect to DB - ActiveRecord::Base.logger = nil - OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] - OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database:'beef.db') - - # Migrate (if required) - context = ActiveRecord::Migration.new.migration_context - if context.needs_migration? - puts "migrating db" - ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate - end - #start the hook server instance, for it out to track the pids for graceful closure - http_hook_server = BeEF::Core::Server.instance - http_hook_server.prepare - @pids = fork do - BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) - end - @pid = fork do - http_hook_server.start - end - # wait for server to start - sleep 1 - end + @ws = BeEF::Core::Websocket::Websocket.instance + @username = @config.get('beef.credentials.user') + @password = @config.get('beef.credentials.passwd') + # Load BeEF extensions and modules + # Always load Extensions, as previous changes to the config from other tests may affect + # whether or not this test passes. + print_info 'Loading in BeEF::Extensions' + BeEF::Extensions.load + sleep 2 - it 'can hook a browser with websockets' do - #prepare for the HTTP model - https = BeEF::Core::Models::Http + # Check if modules already loaded. No need to reload. + if @config.get('beef.module').nil? + print_info 'Loading in BeEF::Modules' + BeEF::Modules.load + sleep 2 + else + print_info 'Modules already loaded' + end + # Grab DB file and regenerate if requested + print_info 'Loading database' + db_file = @config.get('beef.database.file') + if BeEF::Core::Console::CommandLine.parse[:resetdb] + print_info 'Resetting the database for BeEF.' + File.delete(db_file) if File.exist?(db_file) + end + # Load up DB and migrate if necessary + ActiveRecord::Base.logger = nil + OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] + OTR::ActiveRecord.configure_from_hash!(adapter: 'sqlite3', database: db_file) + context = ActiveRecord::Migration.new.migration_context + ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate if context.needs_migration? + sleep 2 + BeEF::Core::Migration.instance.update_db! + # Spawn HTTP Server + print_info 'Starting HTTP Hook Server' + http_hook_server = BeEF::Core::Server.instance + http_hook_server.prepare + # Generate a token for the server to respond with + @token = BeEF::Core::Crypto.api_token + # Initiate server start-up + @pids = fork do + BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) + end + @pid = fork do + http_hook_server.start + end + # Give the server time to start-up + sleep 1 + begin + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps['name'] = self.class.description || ENV['name'] || 'no-name' + @caps['browserstack.local'] = true + @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] - ### hook a new victim, use rest API to send request and get the token and victim + @driver = Selenium::WebDriver.for(:remote, + url: "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + desired_capabilities: @caps) + # Hook new victim + print_info 'Hooking a new victim, waiting a few seconds...' + wait = Selenium::WebDriver::Wait.new(timeout: 30) # seconds - api = BeefRestClient.new('http', ATTACK_DOMAIN, '3000', BEEF_USER, BEEF_PASSWD) - response = api.auth() - @token = response[:token] - puts 'hooking a new victim, waiting a few seconds...' - victim = BeefTest.new_victim - sleep 2 - #Uses the response and hooked browser details to get the response - response = RestClient.get "#{RESTAPI_HOOKS}", {:params => {:token => @token}} - #test for the response if errors and weirdness there - # puts "#{response} from the rest client " - hb_details = JSON.parse(response.body) - while hb_details["hooked-browsers"]["online"].empty? - # get victim session - response = RestClient.get "#{RESTAPI_HOOKS}", {:params => {:token => @token}} - hb_details = JSON.parse(response.body) - puts "json: #{hb_details}" - puts "can hook a browser" - puts "online hooked browsers empty: #{hb_details["hooked-browsers"]["online"].empty?}" + @driver.navigate.to VICTIM_URL.to_s + + # Give time for browser hook to occur + sleep 3 + + sleep 1 until wait.until { @driver.execute_script('return window.beef.session.get_hook_session_id().length') > 0 } + + @session = @driver.execute_script('return window.beef.session.get_hook_session_id().length') + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 + end end - #get the hooked browser details - hb_session = hb_details["hooked-browsers"]["online"]["0"]["session"] - #show the address of what is being hooked - #puts "hooked browser: #{hb_session}" - expect(hb_session).not_to be_nil - #cannot do it in the after:all - https.where(:hooked_browser_id => hb_session).delete_all end after(:all) do - # cleanup: delete test browser entries and session - # kill the server - @config.set('beef.http.websocket.enable', false) - Process.kill("KILL", @pid) - Process.kill("KILL", @pids) - puts "waiting for server to die.." + server_teardown(@driver, @pid, @pids) + end + + it 'confirms a websocket server has been started' do + expect(@ws).to be_a_kind_of(BeEF::Core::Websocket::Websocket) end + it 'confirms a secure websocket server has been started' do + @config.set('beef.http.websocket.secure', true) + wss = BeEF::Core::Websocket::Websocket.instance + expect(wss).to be_a_kind_of(BeEF::Core::Websocket::Websocket) + end + + it 'can successfully hook a browser' do + expect(@session).not_to be_nil + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.stacktrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + expect(BeEF::Filters.is_valid_hook_session_id?(@driver.execute_script('return window.beef.session.get_hook_session_id()'))).to eq true + end + end end diff --git a/spec/beef/extensions/websocket_spec.rb b/spec/beef/extensions/websocket_spec.rb index 67b09c2a9c..76d4e0d58d 100644 --- a/spec/beef/extensions/websocket_spec.rb +++ b/spec/beef/extensions/websocket_spec.rb @@ -3,7 +3,6 @@ require 'websocket-client-simple' RSpec.describe 'BeEF Extension WebSockets' do - before(:all) do @config = BeEF::Core::Configuration.instance @cert_key = @config.get('beef.http.https.key') @@ -36,5 +35,4 @@ expect(client.open?).to be true client.close end - end diff --git a/spec/beef/modules/debug/test_beef_debugs_spec.rb b/spec/beef/modules/debug/test_beef_debugs_spec.rb index f3b7569b4c..75225b858a 100644 --- a/spec/beef/modules/debug/test_beef_debugs_spec.rb +++ b/spec/beef/modules/debug/test_beef_debugs_spec.rb @@ -6,188 +6,284 @@ require 'rest-client' require 'json' +require_relative '../../../spec_helper' require_relative '../../../support/constants' require_relative '../../../support/beef_test' -RSpec.describe 'BeEF Debug Command Modules:' do - - before(:all) do - # Grab config and set creds in variables for ease of access - @config = BeEF::Core::Configuration.instance - @username = @config.get('beef.credentials.user') - @password = @config.get('beef.credentials.passwd') - - # Load BeEF extensions and modules - # Always load Extensions, as previous changes to the config from other tests may affect - # whether or not this test passes. - BeEF::Extensions.load - sleep 2 - - # Check if modules already loaded. No need to reload. - if @config.get('beef.module').nil? - print_info "Loading in BeEF::Modules" - BeEF::Modules.load - - sleep 2 - else - print_info "Modules already loaded" - end - - # Grab DB file and regenerate if requested - print_info "Loading database" - db_file = @config.get('beef.database.file') - - if BeEF::Core::Console::CommandLine.parse[:resetdb] - print_info 'Resetting the database for BeEF.' - File.delete(db_file) if File.exists?(db_file) - end - - # Load up DB and migrate if necessary - ActiveRecord::Base.logger = nil - OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] - OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database: db_file) - - context = ActiveRecord::Migration.new.migration_context - if context.needs_migration? - ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate - end - - sleep 2 - - BeEF::Core::Migration.instance.update_db! - - # Spawn HTTP Server - print_info "Starting HTTP Hook Server" - http_hook_server = BeEF::Core::Server.instance - http_hook_server.prepare - - # Generate a token for the server to respond with - BeEF::Core::Crypto::api_token - - # Initiate server start-up - @pids = fork do - BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) - end - @pid = fork do - http_hook_server.start - end - - # Give the server time to start-up - sleep 1 - - # Authenticate to REST API & pull the token from the response - @response = RestClient.post "#{RESTAPI_ADMIN}/login", { 'username': "#{@username}", 'password': "#{@password}" }.to_json, :content_type => :json - @token = JSON.parse(@response)['token'] - - # Hook new victim - print_info 'Hooking a new victim, waiting a few seconds...' - @victim = BeefTest.new_victim - - sleep 3 - - # Identify Session ID of victim generated above - @hooks = RestClient.get "#{RESTAPI_HOOKS}?token=#{@token}" - @session = JSON.parse(@hooks)['hooked-browsers']['online']['0']['session'] - - # Grab Command Module IDs as they can differ from machine to machine - @debug_mod_ids = JSON.parse(RestClient.get "#{RESTAPI_MODULES}?token=#{@token}") - @debug_mod_names_ids = {} - @debug_mods = @debug_mod_ids.to_a.select { |cmd_mod| cmd_mod[1]['category'] == 'Debug' } - .map do |debug_mod| - @debug_mod_names_ids[debug_mod[1]['class']] = debug_mod[0] - end +RSpec.describe 'BeEF Debug Command Modules:', run_on_browserstack: true do + before(:all) do + # Grab config and set creds in variables for ease of access + @config = BeEF::Core::Configuration.instance + @username = @config.get('beef.credentials.user') + @password = @config.get('beef.credentials.passwd') + + # Load BeEF extensions and modules + # Always load Extensions, as previous changes to the config from other tests may affect + # whether or not this test passes. + print_info 'Loading in BeEF::Extensions' + BeEF::Extensions.load + sleep 2 + + # Check if modules already loaded. No need to reload. + if @config.get('beef.module').nil? + print_info 'Loading in BeEF::Modules' + BeEF::Modules.load + + sleep 2 + else + print_info 'Modules already loaded' + end + + # Grab DB file and regenerate if requested + print_info 'Loading database' + db_file = @config.get('beef.database.file') + + if BeEF::Core::Console::CommandLine.parse[:resetdb] + print_info 'Resetting the database for BeEF.' + File.delete(db_file) if File.exist?(db_file) end - after(:all) do - print_info "Shutting down server" - Process.kill("KILL",@pid) - Process.kill("KILL",@pids) + # Load up DB and migrate if necessary + ActiveRecord::Base.logger = nil + OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] + OTR::ActiveRecord.configure_from_hash!(adapter: 'sqlite3', database: db_file) + + context = ActiveRecord::Migration.new.migration_context + ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate if context.needs_migration? + + sleep 2 + + BeEF::Core::Migration.instance.update_db! + + # Spawn HTTP Server + print_info 'Starting HTTP Hook Server' + http_hook_server = BeEF::Core::Server.instance + http_hook_server.prepare + + # Generate a token for the server to respond with + @token = BeEF::Core::Crypto.api_token + + # Initiate server start-up + @pids = fork do + BeEF::API::Registrar.instance.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) + end + @pid = fork do + http_hook_server.start end - it 'The Test_beef.debug() command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_beef_debug'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { "msg": "test" }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + # Give the server time to start-up + sleep 1 + + begin + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps['name'] = self.class.description || ENV['name'] || 'no-name' + @caps['browserstack.local'] = true + @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] + + @driver = Selenium::WebDriver.for(:remote, + url: "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + desired_capabilities: @caps) + # Hook new victim + print_info 'Hooking a new victim, waiting a few seconds...' + wait = Selenium::WebDriver::Wait.new(timeout: 30) # seconds + + @driver.navigate.to VICTIM_URL.to_s + + # Give time for browser hook to occur + sleep 3 + + sleep 1 until wait.until { @driver.execute_script('return window.beef.session.get_hook_session_id().length') > 0 } + + @session = @driver.execute_script('return window.beef.session.get_hook_session_id()') + + # Grab Command Module IDs as they can differ from machine to machine + @debug_mod_ids = JSON.parse(RestClient.get("#{RESTAPI_MODULES}?token=#{@token}")) + @debug_mod_names_ids = {} + @debug_mods = @debug_mod_ids.to_a.select { |cmd_mod| cmd_mod[1]['category'] == 'Debug' } + .map do |debug_mod| + @debug_mod_names_ids[debug_mod[1]['class']] = debug_mod[1]['id'] + end + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 + end end + end - it 'The Return ASCII Characters command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_return_ascii_chars'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + after(:all) do + server_teardown(@driver, @pid, @pids) + end + + it 'The Test_beef.debug() command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_beef_debug'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + { "msg": 'test' }.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end - it 'The Return Image command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_return_image'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Return ASCII Characters command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_return_ascii_chars'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + {}.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end + it 'The Return Image command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_return_image'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + {}.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 + end + end - it 'The Test HTTP Redirect command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_http_redirect'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Test HTTP Redirect command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_http_redirect'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + {}.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end - it 'The Test Returning Results/Long String command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_return_long_string'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { "repeat": 20, - "repeat_string": "beef" }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Test Returning Results/Long String command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_return_long_string'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + { "repeat": 20, + "repeat_string": 'beef' }.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + print_info "Exception Message: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end - it 'The Test Network Request command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_network_request'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { "scheme": "http", - "method": "GET", - "domain": "#{ATTACK_DOMAIN}", - "port": "#{@config.get('beef.http.port')}", - "path": "/hook.js", - "anchor": "anchor", - "data": "query=testquerydata", - "timeout": "10", - "dataType": "script" }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Test Network Request command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_network_request'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + { "scheme": 'http', + "method": 'GET', + "domain": ATTACK_DOMAIN.to_s, + "port": @config.get('beef.http.port').to_s, + "path": '/hook.js', + "anchor": 'anchor', + "data": 'query=testquerydata', + "timeout": '10', + "dataType": 'script' }.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end - it 'The Test DNS Tunnel command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_dns_tunnel_client'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { "domain": "example.com", - "data": "Lorem ipsum" }.to_json, - :content_type => :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Test DNS Tunnel command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_dns_tunnel_client'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + { "domain": 'example.com', + "data": 'Lorem ipsum' }.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end + end - it 'The Test CORS Request command module successfully executes' do - cmd_mod_id = @debug_mod_names_ids['Test_cors_request'] - response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", - { "method": "GET", - "url": "example.com", - "data": { - "test": "data" - }}.to_json, - content_type: :json - result_data = JSON.parse(response.body) - expect(result_data['success']).to eq "true" + it 'The Test CORS Request command module successfully executes' do + cmd_mod_id = @debug_mod_names_ids['Test_cors_request'] + response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", + { "method": 'GET', + "url": 'example.com', + "data": { + "test": 'data' + } }.to_json, + content_type: :json + result_data = JSON.parse(response.body) + expect(result_data['success']).to eq 'true' + rescue StandardError => e + print_info "Exception: #{e}" + print_info "Exception Class: #{e.class}" + print_info "Exception Message: #{e.message}" + print_info "Exception Stack Trace: #{e.backtrace}" + if @driver.execute_script('return window.beef.session.get_hook_session_id().length').nil? + exit 1 + else + exit 0 end -end \ No newline at end of file + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 55ae66644b..78c374796a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -13,6 +13,10 @@ require 'rack/test' require 'curb' require 'rest-client' +require 'yaml' +require 'selenium-webdriver' +require 'browserstack/local' +require 'byebug' # Require supports Dir['spec/support/*.rb'].each do |f| @@ -22,6 +26,24 @@ ENV['RACK_ENV'] ||= 'test' ARGV = [] +## BrowserStack config + +# Monkey patch to avoid reset sessions +class Capybara::Selenium::Driver < Capybara::Driver::Base + def reset! + if @browser + @browser.navigate.to('about:blank') + end + end +end + +TASK_ID = (ENV['TASK_ID'] || 0).to_i +CONFIG_FILE = ENV['CONFIG_FILE'] || 'windows/win10/win10_chrome_81.config.yml' +CONFIG = YAML.safe_load(File.read("./spec/support/browserstack/#{CONFIG_FILE}")) +CONFIG['user'] = ENV['BROWSERSTACK_USERNAME'] || '' +CONFIG['key'] = ENV['BROWSERSTACK_ACCESS_KEY'] || '' + +## DB config ActiveRecord::Base.logger = nil OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')] OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database:':memory:') @@ -46,4 +68,20 @@ raise ActiveRecord::Rollback end end + + def server_teardown(webdriver, server_pid, server_pids) + begin + webdriver.quit + rescue => exception + print_info "Exception: #{exception}" + print_info "Exception Class: #{exception.class}" + print_info "Exception Message: #{exception.message}" + print_info "Exception Stack Trace: #{exception.backtrace}" + exit 0 + ensure + print_info "Shutting down server" + Process.kill("KILL", server_pid) + Process.kill("KILL", server_pids) + end + end end diff --git a/spec/support/beef_test.rb b/spec/support/beef_test.rb index 2b8b7c38d0..6d710149f9 100644 --- a/spec/support/beef_test.rb +++ b/spec/support/beef_test.rb @@ -46,5 +46,4 @@ def self.new_victim victim.visit(VICTIM_URL) victim end - end diff --git a/spec/support/browserstack/osx/catalina/catalina_chrome_41.config.yml b/spec/support/browserstack/osx/catalina/catalina_chrome_41.config.yml new file mode 100644 index 0000000000..7f791ac957 --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_chrome_41.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Chrome 41" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "41.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_chrome_59.config.yml b/spec/support/browserstack/osx/catalina/catalina_chrome_59.config.yml new file mode 100644 index 0000000000..e767c1becb --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_chrome_59.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Chrome 59" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "59.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_chrome_81.config.yml b/spec/support/browserstack/osx/catalina/catalina_chrome_81.config.yml new file mode 100644 index 0000000000..d92759ead0 --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_chrome_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Chrome 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "81.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_firefox_11.config.yml b/spec/support/browserstack/osx/catalina/catalina_firefox_11.config.yml new file mode 100644 index 0000000000..d716c3d7ca --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_firefox_11.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Firefox 11" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "11.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_firefox_68esr.config.yml b/spec/support/browserstack/osx/catalina/catalina_firefox_68esr.config.yml new file mode 100644 index 0000000000..c32f1874ed --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_firefox_68esr.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Firefox 68 ESR" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "68.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_firefox_75.config.yml b/spec/support/browserstack/osx/catalina/catalina_firefox_75.config.yml new file mode 100644 index 0000000000..aa0c96f558 --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_firefox_75.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Firefox 75" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "75.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/catalina/catalina_safari_13.config.yml b/spec/support/browserstack/osx/catalina/catalina_safari_13.config.yml new file mode 100644 index 0000000000..5ca5f6be93 --- /dev/null +++ b/spec/support/browserstack/osx/catalina/catalina_safari_13.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Catalina Safari 13" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "safari" + "browser_version": "13.0" + "os": "osx" + "os_version": "catalina" \ No newline at end of file diff --git a/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_14.config.yml b/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_14.config.yml new file mode 100644 index 0000000000..869877e01d --- /dev/null +++ b/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_14.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX El Capitan Chrome 14" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "14.0" + "os": "osx" + "os_version": "el capitan" \ No newline at end of file diff --git a/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_81.config.yml b/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_81.config.yml new file mode 100644 index 0000000000..d3ffa7a1dd --- /dev/null +++ b/spec/support/browserstack/osx/elcapitan/elcapitan_chrome_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX El Capitan Chrome 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "81.0" + "os": "osx" + "os_version": "el capitan" \ No newline at end of file diff --git a/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_7.config.yml b/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_7.config.yml new file mode 100644 index 0000000000..7c86cee250 --- /dev/null +++ b/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_7.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX El Capitan Firefox 7" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "7.0" + "os": "osx" + "os_version": "el capitan" \ No newline at end of file diff --git a/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_75.config.yml b/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_75.config.yml new file mode 100644 index 0000000000..f851fbeb6b --- /dev/null +++ b/spec/support/browserstack/osx/elcapitan/elcapitan_firefox_75.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX El Capitan Firefox 75" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "75.0" + "os": "osx" + "os_version": "el capitan" \ No newline at end of file diff --git a/spec/support/browserstack/osx/elcapitan/elcapitan_safari_9-1.config.yml b/spec/support/browserstack/osx/elcapitan/elcapitan_safari_9-1.config.yml new file mode 100644 index 0000000000..f68be581cf --- /dev/null +++ b/spec/support/browserstack/osx/elcapitan/elcapitan_safari_9-1.config.yml @@ -0,0 +1,15 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX El Capitan Safari 9.1" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "safari" + "browser_version": "9.1" + "os": "osx" + "os_version": "el capitan" + "browserstack.selenium_version": "3.5.2" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_14.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_14.config.yml new file mode 100644 index 0000000000..d22af7641d --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_14.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Chrome 14" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "14.0" + "os": "osx" + "os_version": "Snow Leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_35.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_35.config.yml new file mode 100644 index 0000000000..ceb8640cfd --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_35.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Chrome 35" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "35.0" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_49.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_49.config.yml new file mode 100644 index 0000000000..699b9a51b2 --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_chrome_49.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Chrome 49" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "49.0" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_38esr.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_38esr.config.yml new file mode 100644 index 0000000000..306842b6a0 --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_38esr.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Firefox 38 ESR" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "38.0" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_42.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_42.config.yml new file mode 100644 index 0000000000..8a482c11f0 --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_42.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Firefox 42" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "42.0" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_7.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_7.config.yml new file mode 100644 index 0000000000..87b6b400e9 --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_firefox_7.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Firefox 7" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "7.0" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/osx/snowleopard/snowleopard_safari_5-1.config.yml b/spec/support/browserstack/osx/snowleopard/snowleopard_safari_5-1.config.yml new file mode 100644 index 0000000000..d6996b321b --- /dev/null +++ b/spec/support/browserstack/osx/snowleopard/snowleopard_safari_5-1.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "OSX Snow Leopard Safari 5.1" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "safari" + "browser_version": "5.1" + "os": "osx" + "os_version": "snow leopard" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_chrome_37.config.yml b/spec/support/browserstack/windows/win10/win10_chrome_37.config.yml new file mode 100644 index 0000000000..1b9e99ca8d --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_chrome_37.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Chrome 37" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "37.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_chrome_59.config.yml b/spec/support/browserstack/windows/win10/win10_chrome_59.config.yml new file mode 100644 index 0000000000..5af6a3eb96 --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_chrome_59.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Chrome 59" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "59.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_chrome_81.config.yml b/spec/support/browserstack/windows/win10/win10_chrome_81.config.yml new file mode 100644 index 0000000000..2b532ff617 --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_chrome_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Chrome 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "81.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_edge_81.config.yml b/spec/support/browserstack/windows/win10/win10_edge_81.config.yml new file mode 100644 index 0000000000..c461727287 --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_edge_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Edge 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "edge" + "browser_version": "81.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_firefox_32.config.yml b/spec/support/browserstack/windows/win10/win10_firefox_32.config.yml new file mode 100644 index 0000000000..66dd72db33 --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_firefox_32.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Firefox 32" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "32.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_firefox_68esr.config.yml b/spec/support/browserstack/windows/win10/win10_firefox_68esr.config.yml new file mode 100644 index 0000000000..119749d18e --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_firefox_68esr.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Firefox 68 ESR" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "68.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_firefox_75.config.yml b/spec/support/browserstack/windows/win10/win10_firefox_75.config.yml new file mode 100644 index 0000000000..512ad89ada --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_firefox_75.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 Firefox 75" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "75.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win10/win10_ie_11.config.yml b/spec/support/browserstack/windows/win10/win10_ie_11.config.yml new file mode 100644 index 0000000000..cf3aad47dc --- /dev/null +++ b/spec/support/browserstack/windows/win10/win10_ie_11.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 10 IE 11" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "internet explorer" + "browser_version": "11.0" + "os": "windows" + "os_version": "10" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_chrome_22.config.yml b/spec/support/browserstack/windows/win8/win8_chrome_22.config.yml new file mode 100644 index 0000000000..4bf172ca20 --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_chrome_22.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 Chrome 22" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "22.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_chrome_81.config.yml b/spec/support/browserstack/windows/win8/win8_chrome_81.config.yml new file mode 100644 index 0000000000..2c5a9dba92 --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_chrome_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 Chrome 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "81.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_edge_81.config.yml b/spec/support/browserstack/windows/win8/win8_edge_81.config.yml new file mode 100644 index 0000000000..e84f2492fd --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_edge_81.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 Edge 81" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "edge" + "browser_version": "81.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_firefox_32.config.yml b/spec/support/browserstack/windows/win8/win8_firefox_32.config.yml new file mode 100644 index 0000000000..185b0394f1 --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_firefox_32.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 Firefox 32" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "32.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_firefox_75.config.yml b/spec/support/browserstack/windows/win8/win8_firefox_75.config.yml new file mode 100644 index 0000000000..30db92f879 --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_firefox_75.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 Firefox 75" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "75.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/win8/win8_ie_10.config.yml b/spec/support/browserstack/windows/win8/win8_ie_10.config.yml new file mode 100644 index 0000000000..a59193cb81 --- /dev/null +++ b/spec/support/browserstack/windows/win8/win8_ie_10.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows 8 IE 10" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "internet explorer" + "browser_version": "10.0" + "os": "windows" + "os_version": "8" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_chrome_14.config.yml b/spec/support/browserstack/windows/xp/xp_chrome_14.config.yml new file mode 100644 index 0000000000..c75124ac76 --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_chrome_14.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Chrome 14" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "14.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_chrome_28.config.yml b/spec/support/browserstack/windows/xp/xp_chrome_28.config.yml new file mode 100644 index 0000000000..6ccbbc47b1 --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_chrome_28.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Chrome 28" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "28.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_chrome_43.config.yml b/spec/support/browserstack/windows/xp/xp_chrome_43.config.yml new file mode 100644 index 0000000000..d9604a538c --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_chrome_43.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Chrome 43" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "chrome" + "browser_version": "43.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_firefox_16.config.yml b/spec/support/browserstack/windows/xp/xp_firefox_16.config.yml new file mode 100644 index 0000000000..d4bcf8ddc0 --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_firefox_16.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Firefox 16" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "16.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_firefox_26.config.yml b/spec/support/browserstack/windows/xp/xp_firefox_26.config.yml new file mode 100644 index 0000000000..2b2da9e0af --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_firefox_26.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Firefox 26" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "26.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_firefox_45.config.yml b/spec/support/browserstack/windows/xp/xp_firefox_45.config.yml new file mode 100644 index 0000000000..a81f784087 --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_firefox_45.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP Firefox 45" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "firefox" + "browser_version": "45.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/browserstack/windows/xp/xp_ie_7.config.yml b/spec/support/browserstack/windows/xp/xp_ie_7.config.yml new file mode 100644 index 0000000000..877bef28fa --- /dev/null +++ b/spec/support/browserstack/windows/xp/xp_ie_7.config.yml @@ -0,0 +1,14 @@ +server: "hub-cloud.browserstack.com" + +common_caps: + "build": "Windows XP IE 7" + "project": "BeEF" + "browserstack.local": true + "browserstack.video": false + +browser_caps: + - + "browser": "internet explorer" + "browser_version": "7.0" + "os": "windows" + "os_version": "xp" \ No newline at end of file diff --git a/spec/support/constants.rb b/spec/support/constants.rb index 9a14996ad8..dd7bebe35b 100644 --- a/spec/support/constants.rb +++ b/spec/support/constants.rb @@ -6,8 +6,8 @@ BEEF_TEST_DIR = "/tmp/beef-test/" # General constants -ATTACK_DOMAIN = "127.0.0.1" -VICTIM_DOMAIN = "localhost" +ATTACK_DOMAIN = "localhost" +VICTIM_DOMAIN = "127.0.0.1" ATTACK_URL = "http://" + ATTACK_DOMAIN + ":3000/ui/panel" VICTIM_URL = "http://" + VICTIM_DOMAIN + ":3000/demos/basic.html"