Skip to main content

Every flag, every variable

The complete commandline reference for TestingBot Tunnel. Pass credentials positionally, via environment variables, or from a .testingbot file in your $HOME.

Three ways to authenticate

Method 1
Positional args
java -jar testingbot-tunnel.jar KEY SECRET
Method 2
Env vars
TESTINGBOT_KEY + TESTINGBOT_SECRET
Method 3
.testingbot file
In $HOME, key on line 1, secret on line 2.

Environment variables

Use environment variables to keep sensitive credentials out of your shell history and the system process list.

Variable Replaces / purpose
TESTINGBOT_KEY Your TestingBot API key. Replaces the first positional argument.
TESTINGBOT_SECRET Your TestingBot API secret. Replaces the second positional argument.
TESTINGBOT_AUTH Basic-auth credentials in the form host:port:user:password. Replaces -a.
TESTINGBOT_PROXY_USERPWD Upstream proxy credentials as user:password. Replaces -z.
TESTINGBOT_METRICS_AUTH HTTP-basic credentials for the metrics endpoint as user:password. Replaces --metrics-auth.

All command-line options

Option Description
-a,--auth <host:port:user:passwd> Perform HTTP Basic Authentication for specific hosts. HTTP only.
-b,--nobump Do not perform SSL bumping. Required for WebSocket and SSE proxying.
-d,--debug Enable debug messages. Outputs request and response headers.
--dns <ip> Use a custom DNS server, for example 8.8.8.8.
--doctor Run sanity and health checks. Detects misconfiguration, port conflicts and missing prerequisites.
--extra-headers <JSON> Inject extra HTTP headers into every request the tunnel makes.
-f,--readyfile <FILE> This file is touched when the tunnel is ready for use. Useful in CI pipelines.
-F,--fast-fail-regexps <LIST> Comma-separated regexes for domains the tunnel should not proxy. Improves test speed by skipping analytics, ads and trackers.
-h,--help Display help text and exit.
-i,--tunnel-identifier <id> Tag the tunnel with an identifier. When you have multiple tunnels, set this identifier in your test capabilities to pick which tunnel handles the test.
-j,--localproxy <port> Port the local proxy listens on. Default 8087.
-l,--logfile <FILE> Write logs to a file in addition to stdout.
--log-level <level> Set verbosity. One of error, warn, info (default), debug, trace.
--metrics-port <port> Port to serve Prometheus metrics on. Default 8003.
--metrics-auth <user:password> Protect the metrics endpoint with HTTP Basic Authentication.
-P,--se-port <port> Local Selenium port your tests connect to. Default 4445.
-p,--hubport <port> Connect to port 80 on the TestingBot hub instead of the default port 4444.
--pac <url> Proxy auto-configuration. Should be a http(s) URL pointing to a PAC file.
-q,--nocache Bypass the caching proxy running on the tunnel VM. Required for WebSocket and SSE proxying.
-s,--shared Share this tunnel with other users on your team. Tunnels are private by default.
-v,--version Display the tunnel version and exit.
-w,--web <directory> Serve a local directory over a built-in webserver. Handy for static-file testing.
-x,--noproxy Do not start the local proxy. Requires you to run your own proxy on port 8087.
-Y,--proxy <host:port> Forward tunnel traffic through an upstream HTTP, HTTPS or SOCKS proxy.
-z,--proxy-userpwd <user:pwd> Credentials for the upstream proxy configured with --proxy.

See practical configurations on the examples page, or the full installation guide for Docker, Maven and the NodeJS launcher.

Was this page helpful?

Looking for More Help?

Have questions or need more information?
You can reach us via the following channels: