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?
Last updated