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:
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?
If you just want to get started using selenium grid, you can use simple commands as we discussed in previous article. But if you need more control with advanced configuration, then we have to specify a JSON format config file to configure the hub/node and start it.
Selenium Grid hub/node can be configured in 2 different ways, one is by specifying command line parameters, and the other way is by specifying a JSON config file.
Selenium Grid uses TOML format for config files.
Selenium Grid is used to run multiple tests simultaneously on different browsers and platforms. Grid uses the hub-node concept. The hub is the central point wherein you load your tests. Nodes are the Selenium instances that will execute the tests that you loaded on the hub.
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: []
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With