Serenity BDD SauceLabs Integration
The serenity-saucelabs plugin provides seamless integration with the SauceLabs online test automation platform.
Adding the SauceLabs plugin
To add the integrated support for SauceLabs to your project, you will need to add the serenity-saucelabs dependency to your project dependencies. For Maven, you would add the following:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-saucelabs</artifactId>
<version>${serenity.version}</version>
</dependency>
And for Gradle:
testImplementation "net.serenity-bdd:serenity-saucelabs:${serenityVersion}"
Specifying your SauceLabs credentials and grid URL
Next, you will need a SauceLabs account.
Next you will need to configure your SauceLabs credentials (if you are logged on to the Saucelabs Dashboard [you can find these on this page]. The simplest way to do this is to define the following system properties:
SAUCE_USERNAME- SauceLabs user nameSAUCE_ACCESS_KEY- SauceLabs access key
Alternatively, you can define your username and accesskey using the sauce.username and sauce.key properties respectively in your serenity.conf file:
sauce.username=myuser
sauce.key=XXXXXXXX
Configuring the SauceLabs driver
Serenity interacts with SauceLabs via the RemoteDriver driver. You will need to specify the remote URL for the geographical region you want to use in the webdriver.remote.url property, like this:
webdriver {
driver = remote
remote.url = "https://ondemand.us-west-1.saucelabs.com/wd/hub"
}
Activating the SauceLabs plugin
The Serenity SauceLabs plugin will be invoked if Serenity can find a "sauce:options" section in your serenity.conf file, or if you specify a remote.webdriver.url that points to a SauceLabs server. If you have no Saucelabs-specific capabilities, simply set the sauce.active property to true like this:
sauce {
active = true
}
Defining Saucelabs Capabilities
You can specify the operating system and browser you want to run your tests on by customising the Selenium Capabilities in your serenity.conf file. You do this in the "sauce:options" section of the serenity.conf file, e.g.
webdriver {
driver = "remote"
capabilities {
browserName = "chrome"
version = "104.0"
platform = "Windows 10"
"sauce:options" {
tags = ["smoketest","billing"]
recordVideo = true
recordLogs = false
}
}
}