Arquillian Drone Extension 2.1.0.Alpha3 Released

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.Alpha3 release of the Arquillian Drone Extension component!

The third and hopefully the last Alpha release of Drone 2.1.0 significantly improves the resolution of binaries from GitHub.

GitHub release caching

In the Drone 2.1.0.Alpha1 we introduced a new feature of automatic downloading for webdriver binaries which is really cool, but had one drawback. The Gecko driver is stored in GitHub so Drone has to send some request to get the latest version and to download the required binary. Unfortunately, GitHub has for unauthenticated requests a rate limit that allows us to make up to 60 requests per hour, which wasn’t hard to exceed (for example in CI servers).

In this release, we solved this problem using conditional requests so it should be impossible to run out of the number of limited requests now.

There is nothing that you would need to do to activate this feature, just update your Drone dependency and use your Drone tests as you did.

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

Component Arquillian Drone Extension
Version 2.1.0.Alpha3 view tag
Release date 2017-03-18
Released by Matous Jobanek
Compiled against

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

Thanks to the following list of contributors: Matous Jobanek, Bartosz Majsak, Hemani

Arquillian Drone Extension 2.1.0.Alpha2 Released

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.Alpha2 release of the Arquillian Drone Extension component!

The second Alpha release of Drone 2.1.0 brings:

  • Support for Edge browser
  • Support for Selenium Server arguments
  • Component upgrades
  • Bug fixes

Edge

After a long time, the Microsoft Edge Web Browser is supported by Drone. Big thanks to Tomas David as he is the hero who implemented and tested this feature.

To use Edge in you UI tests specify edge as a browser property in your arquillian.xml file:

<property name="browser">edge</property>

In case of Edge, Drone provides also the automatic download feature – for more information see Drone documentation

Selenium Server command line arguments

In the last release announcement, we mentioned that the Selenium Server is automatically started when necessary. It wasn’t possible to specify any argument (except for port) that should be used when an instance is started.

In this release, we introduce parameter seleniumServerArgs which you can define in your arquillian.xml file to specify arguments that should be used.

For example, if you used these properties:

<property name="seleniumServerArgs">-debug true -role node -browserTimeout 1000</property>
<property name="browser">firefox</property>

then the command used for starting Selenium Server instance would look like:

java -Dwebdriver.gecko.driver=target/.../geckodriver
     -jar target/.../selenium-server-standalone-3.3.1.jar
     -port 4444 -debug true -role node -browserTimeout 1000

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

Component Arquillian Drone Extension
Version 2.1.0.Alpha2 view tag
Release date 2017-03-09
Released by Matous Jobanek
Compiled against

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-2081 - Upgrade to Selenium 3.3.0
  • ARQ-2083 - Upgrade to arquillian-phantom-driver 1.2.1.1
Enhancement
  • ARQ-2074 - Check if binary is already executable before trying to chmod it regardless
Feature Request
  • ARQ-1890 - Support implementation of Microsoft WebDriver
  • ARQ-2060 - Support for Edge browser
Bug
  • ARQ-2080 - Improper closing of browsers configured via remote webdrivers

Thanks to the following list of contributors: Matous Jobanek, Hemani, Tomas David, Dipak Pawar

Arquillian Drone Extension 2.1.0.Alpha1 Released

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

Component Arquillian Drone Extension
Version 2.1.0.Alpha1 view tag
Release date 2017-01-26
Released by Matous Jobanek
Compiled against

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

Arquillian Drone Extension 2.0.1.Final Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 2.0.1.Final release of the Arquillian Drone Extension component!

Chrome options

This release brings you a possibility to set chrome options for a chromeDriver through your arquillian.xml file. You can find all possible options that can be set on this web page.
The process of setting options uses a ChromeOptions class which means that the parameter names (used in arquillian.xml) are tightly coupled with the names of the set/add methods defined in the class. It is expected that the name of each parameter consists of:

“chrome” + (name of the set/add method of ChromeOption class without first three chars)
the whole string should be in camel case. For example, in case of an option args which is coupled with the method addArguments, the parameter should look like this:
<property name=chromeArguments>--first-argument --second-argument</property>

Please notice that there are two methods named addArguments in the ChromeOptions class, one with a parameter which is a list of strings and second one with an array of strings – Drone treats them as a one single method (for other methods it is applied analogically).

Value formats

  • In the cases, when the value can be an array or list of strings/files, you should specify all of them in one string separated by space (this is also applied for extensions as well as for encoded extensions).
  • It is a little bit different in the case of experimental options. These options should be provided as set of key-value pairs, so we decided to use JSON format for it (can be in multiline format) – for example:
    <property name=chromeExperimentalOption>
    {
      "perfLoggingPrefs": {
        "traceCategories": ",blink.console,disabled-by-default-devtools.timeline,benchmark"
      },
      "prefs": {
        "download.default_directory": "/usr/local/path/to/download/directory"
      }
    }
    </property>

Debug

If you struggle with passing required chrome options through the arquillian.xml file, you can use a parameter chromePrintOptions with a value true:

<property name=chromePrintOptions>true</property>
This ensures that Drone prints out the whole content of ChromeOptions in a JSON format to the standard output.

Firefox 48

Since Mozilla has changed the internals of Firefox we strongly recommend to use new geckodriver, as the community one is not compatible anymore. This applies for to all Firefox versions starting from 48. The gecko drivers can be downloaded here.

This Drone release partially supports these changes. By partially we mean you haved to download the geckodriver manually and specify a path to the driver using a parameter firefoxDriverBinary there in your arquillian.xml file:

<property name=firefoxDriverBinary>/path/to/your/driver/binary</property>
Apart from this configuration, you also need to have Selenium 3 on your classpath – see below for detailed instructions.

Selenium version

As this release of Drone is a minor release and the latest Selenium release is in beta version, we decided stick to supported release in this version. In other words, Selenium 3 dependency is not automatically fetched by Drone 2.0.1.Final (the default one is still 2.53.1).

If you need to use the latest version of Selenium (for example together with geckodriver – see above), then the easiest way is specifying selenium-bom dependency in a dependencyManagement part of your pom.xml file:

pom.xml
 <!-- clip -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.jboss.arquillian.selenium</groupId>
            <artifactId>selenium-bom</artifactId>
            <version>3.0.0-beta3</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>
<!-- clip -->

IMPORTANT: If you also use the arquillian-drone-bom (or other BOMs), make sure that the selenium-bom is placed before other BOMs – to make the change effective.

The full support of Selenium 3 and geckodriver will be provided in the next release of Drone (2.1.0.Alpha1), so stay tuned.

We hope that you’ll enjoy our new stuff and look forward to hear 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

Component Arquillian Drone Extension
Version 2.0.1.Final view tag
Release date 2016-09-14
Released by Matous Jobanek
Compiled against

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-selenium-server 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 4

Component Upgrade
Feature Request
  • ARQ-2037 - Support additional browser capabilities for Chrome
  • ARQ-2044 - Expose logic that creates browser capabilities
  • ARQ-2045 - Add possibility to define firefox driver binary to support FF48

Thanks to the following list of contributors: Matous Jobanek

Arquillian Drone Extension 2.0.0.Final Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 2.0.0.Final release of the Arquillian Drone Extension component!

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

Component Arquillian Drone Extension
Version 2.0.0.Final view tag
Release date 2016-04-07
Released by Matous Jobanek
Compiled against

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-selenium-server 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 1

Feature Request
  • ARQ-1980 - Add support for BrowserStack

Thanks to the following list of contributors: Matous Jobanek