Sakuli Properties

Sakuli evaluates properties in the following descending priority:

  • CLI parameter (if available)
  • testsuite.properties file
  • sakuli.properties file
  • Environment variables

This means, e.g. that the property in the testsuite.properties file has priority over a configuration as environment variable.

Environment variables

Environment variable Type: Default Comment/Example
LOG_MODE String: logfile Changes the CLI log output
SAKULI_ENCRYPTION_KEY String Master key for en- and decryption

Project properties

Property Type: Default Comment / Example
testsuite.id String*: / Name of the suite shown in the output and used by the forwarder
testsuite.name String*: ${testsuite.id} Descriptive name for the current test suite
testsuite.browser String: firefox Browser which is started by the WebDriver (it can be overridden by the --browser command line argument)
testsuite.reuseBrowser Boolean: true Configures whether the browser is reused after each testcase (it can be overridden by the --reuseBrowser command line argument) (Available from v2.5.0)
testsuite.warningTime Number: 0 The warning runtime threshold (seconds) for suite execution. If the warning time is exceeded, the test suite will get the state ‘WARNING’
testsuite.criticalTime Number: 0 The critical runtime threshold (seconds) for suite execution. If the critical time is exceeded, the test suite will get the state ‘CRITICAL’
testsuite.uiOnly Boolean: false Configure whether a testsuite should run in ui-only mode or not. If true, no browser will be started. (it can be overridden by the --ui-only command line argument)
testsuite.disableSearchInFrames Boolean: false Enables/Disables the automatic iteration of frames
sakuli.environment.similarity.default Number: 0.99 Configures the minimum requires similarity for image based matching. Values in range 0 <= x <= 1
sakuli.typeDelay Number: 300 Specifies the amount of time in ms to wait between keypresses
sakuli.encryption.key String: / Master key for en- and decryption
sakuli.log.folder String: ${project.rootDir}/_logs Folder for log files
sakuli.screenshot.onError Boolean: true Enable / disable screenshots on error
sakuli.screenshot.dir String: ${project.rootDir}/_logs/_screenshots Folder for screenshot files (if activated)
sakuli.screenshot.storage String: hierarchical Configures the way Sakuli stores the error screenshots (Available from v2.4.0)
sakuli.mouse.action.delay Number: 10 Delay between mouse actions e.g. mouse button down, mouse button up, scroll, etc. in ms (Available from v2.4.0)
sakuli.mouse.movement.speed Number: 3000 Configures the speed in pixels/second for mouse movement (Available from v2.4.0)

sakuli.screenshot.storage

Available from v2.4.0

There are currently two ways of saving error screenshots in _logs:

flat

Saves all error screenshots in _screenshots, e.g.

_logs
|-- sakuli.log
|-- _screenshots
    |-- 2020-01-01T00-00-00_error_testsuiteId_myFirstTestcase.png
    |-- 2020-01-01T00-00-00_error_testsuiteId_mySecondTestcase.png
    |-- 2020-01-01T01-01-01_error_testsuiteId_myFirstTestcase.png

hierarchical

Saves the error screenshot in the respective testcase directory, e.g.

_logs
|-- sakuli.log
|-- _screenshots
    |-- testsuiteId_myFirstTestcase
    |   |-- 2020-01-01T00-00-00_error_testsuiteId_myFirstTestcase.png
    |   |-- 2020-01-01T01-01-01_error_testsuiteId_myFirstTestcase.png
    |-- testsuiteId_mySecondTestcase
        |-- 2020-01-01T00-00-00_error_testsuiteId_mySecondTestcase.png

Chrome properties

Property Type: Default Comment / Example
selenium.chrome.arguments String*: / Space separated list of Chrome arguments, e.g. –arg1 arg2 –arg3=value arg4=value
selenium.chrome.headless Boolean: false Enable / Disable headless mode
selenium.chrome.windowSize.width Number: / Browser window width
selenium.chrome.windowSize.height Number: / Browser window height
selenium.chrome.excludeSwitches String*: / Space separated list of Chrome command line switches to exclude that ChromeDriver by default passes when starting Chrome. Do not prefix switches with ‘–’
selenium.chrome.extensions String*: / Comma separated list of extensions to install when launching Chrome. Each extension should be specified as the path to the packed CRX file
selenium.chrome.binaryPath String: / Sets the path to the Chrome binary to use

Firefox properties

Property Type: Default Comment / Example
selenium.firefox.profile String: / Sets the profile to use. The profile may be specified as the path to an existing Firefox profile to use as a template
selenium.firefox.binary String: / Sets the binary to use. The binary may be specified as the path to a Firefox executable \
selenium.firefox.proxy.proxyType String: / Sets the proxy type for the new session. In a Sakuli context, use “manual”
selenium.firefox.proxy.httpProxy String: / Sets the http proxy settings for the new session
selenium.firefox.proxy.sslProxy String: / Sets the https proxy settings for the new session
selenium.firefox.useGeckoDriver Boolean: false Boolean flag whether to use GeckoDriver or not

Edge properties

Property Type: Default Comment / Example
selenium.edge.proxy String: / Sets the proxy settings for the new session
selenium.edge.pageLoadStrategy String: ‘normal’ Sets the page load strategy for Edge. Supported values are ‘normal’, ‘eager’ and ‘none’

InternetExplorer properties

Property Type: Default Comment / Example
selenium.ie.introduceFlakinessByIgnoringProtectedModeSettings Boolean: false Whether to disable the protected mode settings or not
selenium.ie.ignoreZoomSetting Boolean: false Indicates whether to skip the check that the browser’s zoom level is set to 100%
selenium.ie.initialBrowserUrl String: / Sets the initial URL loaded when IE starts. Setting this option may cause browser instability
selenium.ie.enablePersistentHover Boolean: true Flag which configures whether to enable persistent mouse hovering (true by default)
selenium.ie.enableElementCacheCleanup Boolean: true Flag which configures whether the driver should attempt to remove obsolete WebElements from its internal cache on page navigation (true by default). Disabling this option will cause the driver to run with a larger memory footprint
selenium.ie.requireWindowFocus Boolean: false Flag which configures whether to require the IE window to have input focus before performing any user interactions (i.e. mouse or keyboard events). This option is disabled by default, but delivers much more accurate interaction events when enabled
selenium.ie.browserAttachTimeout Number: 0 Configures the timeout, in milliseconds, that the driver will attempt to located and attach to a newly opened instance of Internet Explorer. The default is zero, which indicates waiting indefinitely
selenium.ie.forceCreateProcessApi Boolean: false Flag which configures whether to launch Internet Explorer using the CreateProcess API. If this option is not specified, IE is launched using IELaunchURL, if available. For IE 8 and above, this option requires the TabProcGrowth registry value to be set to 0.
selenium.ie.arguments String*: / Space separated list of command-line switches to use when launching Internet Explorer
selenium.ie.usePerProcessProxy Boolean: / Flag which configures whether proxies should be configured on a per-process basis. If not set, setting a proxy will configure the system proxy. The default behavior is to use the system proxy
selenium.ie.ensureCleanSession Boolean: false Flag which configures whether to clear the cache, cookies, history, and saved form data before starting the browser. Using this capability will clear session data for all running instances of Internet Explorer, including those started manually
selenium.ie.logFile String: / Sets the path to the log file the driver should log to
selenium.ie.logLevel String: / Sets the IEDriverServer’s logging level
selenium.ie.host String: / Sets the IP address of the driver’s host adapter
selenium.ie.extractPath String: / Sets the path of the temporary data directory to use
selenium.ie.silent Boolean: false Sets whether the driver should start in silent mode
selenium.ie.proxy String: / Sets the proxy settings for the new session

Selenium properties

Property Type: Default Comment / Example
selenium.proxy String: / Configuration parameters for using proxies in WebDriver
selenium.httpAgent String: / Sets the http agent to use for each request
selenium.server String: / Sets the URL of a remote WebDriver server to use. Once a remote URL has been specified, the builder direct all new clients to that server