I'm going through a process of upgrading my Selenium Hub/Nodes to version 3.3.
Everything works fine, but I want to make sure I have optimal configuration... problem is I can't find a complete list of Hub/Node properties anywhere.
I've looked through:
- https://seleniumhq.github.io/docs/grid.html
- http://www.seleniumhq.org/docs/07_selenium_grid.jsp
- https://github.com/SeleniumHQ/selenium/wiki/Grid2
- https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json
- https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json
These docs only list some of the properties through example configs, but none of them seem like a complete list and more importantly none of them actually state what these properties do. Where is the documentation for a complete list of configuration properties for Selenium Hub/Nodes?
This documentation is available via the Selenium standalone uber jar itself.
java -jar selenium-server-standalone-3.3.1.jar -help
Usage: <main class> [options]
Options:
--version, -version
Displays the version and exits.
Default: false
-browserTimeout
<Integer> in seconds : number of seconds a browser session is allowed to
hang while a WebDriver command is running (example: driver.get(url)). If the
timeout is reached while a WebDriver command is still processing, the session
will quit. Minimum value is 60. An unspecified, zero, or negative value means
wait indefinitely.
Default: 0
-debug
<Boolean> : enables LogLevel.FINE.
Default: false
-jettyThreads, -jettyMaxThreads
<Integer> : max number of threads for Jetty. An unspecified, zero, or
negative value means the Jetty default value (200) will be used.
-log
<String> filename : the filename to use for logging. If omitted, will log
to STDOUT
-port
<Integer> : the port number the server will use.
Default: 4444
-role
<String> options are [hub], [node], or [standalone].
Default: standalone
-timeout, -sessionTimeout
<Integer> in seconds : Specifies the timeout before the server
automatically kills a session that hasn't had any activity in the last X seconds. The
test slot will then be released for another test to use. This is typically
used to take care of client crashes. For grid hub/node roles, cleanUpCycle
must also be set.
Default: 1800
For help on the hub
role
java -jar selenium-server-standalone-3.3.1.jar -role hub -help
Usage: <main class> [options]
Options:
--version, -version
Displays the version and exits.
Default: false
-browserTimeout
<Integer> in seconds : number of seconds a browser session is allowed to
hang while a WebDriver command is running (example: driver.get(url)). If the
timeout is reached while a WebDriver command is still processing, the session
will quit. Minimum value is 60. An unspecified, zero, or negative value means
wait indefinitely.
Default: 0
-matcher, -capabilityMatcher
<String> class name : a class implementing the CapabilityMatcher
interface. Specifies the logic the hub will follow to define whether a request can
be assigned to a node. For example, if you want to have the matching process
use regular expressions instead of exact match when specifying browser
version. ALL nodes of a grid ecosystem would then use the same capabilityMatcher,
as defined here.
Default: org.openqa.grid.internal.utils.DefaultCapabilityMatcher@64a294a6
-cleanUpCycle
<Integer> in ms : specifies how often the hub will poll running proxies
for timed-out (i.e. hung) threads. Must also specify "timeout" option
Default: 5000
-custom
<String> : comma separated key=value pairs for custom grid extensions.
NOT RECOMMENDED -- may be deprecated in a future revision. Example: -custom
myParamA=Value1,myParamB=Value2
Default: {}
-debug
<Boolean> : enables LogLevel.FINE.
Default: false
-host
<String> IP or hostname : usually determined automatically. Most commonly
useful in exotic network configurations (e.g. network with VPN)
-hubConfig
<String> filename: a JSON file (following grid2 format), which defines
the hub properties
-jettyThreads, -jettyMaxThreads
<Integer> : max number of threads for Jetty. An unspecified, zero, or
negative value means the Jetty default value (200) will be used.
-log
<String> filename : the filename to use for logging. If omitted, will log
to STDOUT
-maxSession
<Integer> max number of tests that can run at the same time on the node,
irrespective of the browser used
-newSessionWaitTimeout
<Integer> in ms : The time after which a new test waiting for a node to
become available will time out. When that happens, the test will throw an
exception before attempting to start a browser. An unspecified, zero, or negative
value means wait indefinitely.
Default: -1
-port
<Integer> : the port number the server will use.
Default: 4444
-prioritizer
<String> class name : a class implementing the Prioritizer interface.
Specify a custom Prioritizer if you want to sort the order in which new session
requests are processed when there is a queue. Default to null ( no priority = FIFO
)
-role
<String> options are [hub], [node], or [standalone].
Default: hub
-servlet, -servlets
<String> : list of extra servlets the grid (hub or node) will make
available. Specify multiple on the command line: -servlet tld.company.ServletA
-servlet tld.company.ServletB. The servlet must exist in the path:
/grid/admin/ServletA /grid/admin/ServletB
Default: []
-timeout, -sessionTimeout
<Integer> in seconds : Specifies the timeout before the server
automatically kills a session that hasn't had any activity in the last X seconds. The
test slot will then be released for another test to use. This is typically
used to take care of client crashes. For grid hub/node roles, cleanUpCycle
must also be set.
Default: 1800
-throwOnCapabilityNotPresent
<Boolean> true or false : If true, the hub will reject all test requests
if no compatible proxy is currently registered. If set to false, the request
will queue until a node supporting the capability is registered with the grid.
Default: true
-withoutServlet, -withoutServlets
<String> : list of default (hub or node) servlets to disable. Advanced
use cases only. Not all default servlets can be disabled. Specify multiple on
the command line: -withoutServlet tld.company.ServletA -withoutServlet
tld.company.ServletB
Default: []
For help on the node
role
java -jar selenium-server-standalone-3.3.1.jar -role node -help
Usage: <main class> [options]
Options:
--version, -version
Displays the version and exits.
Default: false
-browserTimeout
<Integer> in seconds : number of seconds a browser session is allowed to
hang while a WebDriver command is running (example: driver.get(url)). If the
timeout is reached while a WebDriver command is still processing, the session
will quit. Minimum value is 60. An unspecified, zero, or negative value means
wait indefinitely.
Default: 0
-capabilities, -browser
<String> : comma separated Capability values. Example: -capabilities
browserName=firefox,platform=linux -capabilities browserName=chrome,platform=linux
Default: [Capabilities [{seleniumProtocol=WebDriver, browserName=chrome, maxInstances=5}], Capabilities [{seleniumProtocol=WebDriver, browserName=firefox, maxInstances=5}], Capabilities [{seleniumProtocol=WebDriver, browserName=internet explorer, maxInstances=1}]]
-cleanUpCycle
<Integer> in ms : specifies how often the hub will poll running proxies
for timed-out (i.e. hung) threads. Must also specify "timeout" option
-custom
<String> : comma separated key=value pairs for custom grid extensions.
NOT RECOMMENDED -- may be deprecated in a future revision. Example: -custom
myParamA=Value1,myParamB=Value2
Default: {}
-debug
<Boolean> : enables LogLevel.FINE.
Default: false
-downPollingLimit
<Integer> : node is marked as "down" if the node hasn't responded after
the number of checks specified in [downPollingLimit].
Default: 2
-host
<String> IP or hostname : usually determined automatically. Most commonly
useful in exotic network configurations (e.g. network with VPN)
-hub
<String> : the url that will be used to post the registration request.
This option takes precedence over -hubHost and -hubPort options.
Default: http://localhost:4444
-hubHost
<String> IP or hostname : the host address of the hub we're attempting to
register with. If -hub is specified the -hubHost is determined from it.
-hubPort
<Integer> : the port of the hub we're attempting to register with. If
-hub is specified the -hubPort is determined from it.
-id
<String> : optional unique identifier for the node. Defaults to the url
of the remoteHost, when not specified.
-jettyThreads, -jettyMaxThreads
<Integer> : max number of threads for Jetty. An unspecified, zero, or
negative value means the Jetty default value (200) will be used.
-log
<String> filename : the filename to use for logging. If omitted, will log
to STDOUT
-maxSession
<Integer> max number of tests that can run at the same time on the node,
irrespective of the browser used
Default: 5
-nodeConfig
<String> filename : JSON configuration file for the node. Overrides
default values
-nodePolling
<Integer> in ms : specifies how often the hub will poll to see if the
node is still responding.
Default: 5000
-nodeStatusCheckTimeout
<Integer> in ms : connection/socket timeout, used for node "nodePolling"
check.
Default: 5000
-port
<Integer> : the port number the server will use.
Default: 5555
-proxy
<String> : the class used to represent the node proxy. Default is
[org.openqa.grid.selenium.proxy.DefaultRemoteProxy].
Default: org.openqa.grid.selenium.proxy.DefaultRemoteProxy
-register
if specified, node will attempt to re-register itself automatically with
its known grid hub if the hub becomes unavailable.
Default: true
-registerCycle
<Integer> in ms : specifies how often the node will try to register
itself again. Allows administrator to restart the hub without restarting (or
risk orphaning) registered nodes. Must be specified with the "-register"
option.
Default: 5000
-role
<String> options are [hub], [node], or [standalone].
Default: node
-servlet, -servlets
<String> : list of extra servlets the grid (hub or node) will make
available. Specify multiple on the command line: -servlet tld.company.ServletA
-servlet tld.company.ServletB. The servlet must exist in the path:
/grid/admin/ServletA /grid/admin/ServletB
Default: []
-timeout, -sessionTimeout
<Integer> in seconds : Specifies the timeout before the server
automatically kills a session that hasn't had any activity in the last X seconds. The
test slot will then be released for another test to use. This is typically
used to take care of client crashes. For grid hub/node roles, cleanUpCycle
must also be set.
Default: 1800
-unregisterIfStillDownAfter
<Integer> in ms : if the node remains down for more than
[unregisterIfStillDownAfter] ms, it will stop attempting to re-register from the hub.
Default: 60000
-withoutServlet, -withoutServlets
<String> : list of default (hub or node) servlets to disable. Advanced
use cases only. Not all default servlets can be disabled. Specify multiple on
the command line: -withoutServlet tld.company.ServletA -withoutServlet
tld.company.ServletB
Default: []