Since we wrote this post we didn't laze around. Check our latest announcement.
The Arquillian team is proud to announce the 2.1.0.Alpha1 release of the Arquillian Drone Extension component!
In this release, we bring you a new way of a managing binaries such as drivers or Selenium Server.
Previously, when you wanted to use for example Chrome browser for your tests, you had to download the chrome-driver
binary first, then define the path to the binary in your arquillian.xml
file and then run the UI tests.
With the new binary management, the first two steps are not needed anymore. If you don’t specify the path in your arquillian.xml
file, Drone automatically downloads the latest version of the binary, set the necessary properties and use the binary in your UI tests.
Automatic Download
How does it work?
Let say that you want to use Firefox for UI tests. First of all, Drone checks if the path to the Gecko webdriver binary is already set. In this case, it would check a system property webdriver.gecko.driver
; if this is empty then it checks the arquillian.xml
property firefoxDriverBinary
. In case that both properties are empty, then the automatic download starts.
Now, we have several options how to specify which binary should be downloaded (version, from URL, latest) and where it should be stored. For storage purposes cache directories $HOME/.arquillian/drone/subdirectory_specific_to_binary
are used so the binaries are not downloaded over and over again.
Version
Using the property
<property name="firefoxDriverVersion">v0.14.0</property>
you can define which version of the Gecko webdriver should be downloaded. The binary is then cached in a directory $HOME/.arquillian/drone/firefox/v0.14.0/
.
URL
Using the property
<property name="firefoxDriverUrl">http://url/to/gecko/webdriver</property>
you can define which URL the Gecko webdriver should be downloaded from. The directory where it is stored depends if you also specify the version of this binary or not. In case you use also the before-mentioned property
firefoxDriverVersion
then it is cached in corresponding directory
$HOME/.arquillian/drone/firefox/specified_version/
. Otherwise it is downloaded into
$project.directory/target/drone/downloaded/
so no cache is used.
Latest
In case you don’t define any property then Drone finds the latest version of the given binary and downloads this one. The binary (in case of Gecko webdriver) is cached at $HOME/.arquillian/drone/firefox/latest_version/
.
Some additional information and list of supported binaries and properties can be found in the Drone documentation
Selenium Server
Apart from the fact that the Selenium Server binary is automatically downloaded, in the case of RemoteWebDriver
it is also automatically started with the correct parameters (path to the webdriver that should be used).
So, if you use RemoteWebDriver
Drone checks the address specified using property remoteAddress
in arquillian.xml file (default is: http://localhost:4444/wd/hub
) and if the address is not accessible (there isn’t running anything) then it automatically starts selenium server instance on the given address.
For example I’d like to use RemoteWebDriver
with the browser Firefox and without specifying any custom remote address, then the Selenium Server would be started using command:
java -Dwebdriver.gecko.driver=target/.../geckodriver
-jar target/.../selenium-server-standalone-3.3.1.jar -port 4444
We hope that you’ll enjoy our new stuff and look forward to hearing your feedback.
What is Arquillian?
Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.
Release details
Published artifacts
org.jboss.arquillian.extension
-
org.jboss.arquillian.extension
»
arquillian-drone-bom
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-webdriver-depchain
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-api
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-spi
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-configuration
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-impl
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-webdriver
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-saucelabs-extension
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-drone-browserstack-extension
jar
javadoc
pom
Release notes and resolved issues
6
- Component Upgrade
-
- ARQ-2061 - Upgrade to Selenium 3
- ARQ-2062 - Upgrade jboss-parent to latest version (21)
- ARQ-2063 - Upgrade build.gradle file to use Spacelift 17 and Gradle 2.5
- ARQ-2064 - Upgrade JUnit to 4.12
- Feature Request
-
- ARQ-1826 - Download Explorer binary for Drone
- Task
-
- ARQ-1695 - Integrate Spacelift into Drone
Thanks to the following list of contributors:
Matous Jobanek, Bartosz Majsak