Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/arquillian/arquillian-extension-drone

Arquillian Drone provides a simple way to write functional tests for web apps. Drone brings the power of WebDriver into the Arquillian, and the power of Arquillian to WebDriver.
https://github.com/arquillian/arquillian-extension-drone

java jvm selenium test-automation testing webdriver

Last synced: 11 days ago
JSON representation

Arquillian Drone provides a simple way to write functional tests for web apps. Drone brings the power of WebDriver into the Arquillian, and the power of Arquillian to WebDriver.

Awesome Lists containing this project

README

        

= Arquillian Drone image:https://travis-ci.org/arquillian/arquillian-extension-drone.svg["Build Status", link="https://travis-ci.org/arquillian/arquillian-extension-drone"]
:asciidoctor-source: https://raw.githubusercontent.com/arquillian/arquillian-extension-drone/master/docs
:numbered:
:sectlink:
:sectanchors:
:sectid:
:source-language: java
:source-highlighter: coderay
:sectnums:
:icons: font
:toc: left

ifndef::generated-doc[]
To read complete documentation visit http://arquillian.org/arquillian-extension-drone/
endif::generated-doc[]

The Arquillian Drone 2 extension for Arquillian provides a simple way
to include functional tests for an application with a web-based
user interface.

Arquillian Drone 2 brings the power of WebDriver into the Arquillian framework.
WebDriver serves as a language to communicate with the browser, by filling the forms, navigating the
pages and validating their content.

Compared with its predecessor Arquillian Drone 1, it offers
http://github.com/arquillian/arquillian-extension-drone/wiki/SPI-changes-in-Drone-2[new
features and tools] as part of the SPI as well as
http://github.com/arquillian/arquillian-extension-drone/wiki/API-changes-in-Drone-2[multiple
life cycle scopes of @Drone points] as part of the API.

== Why should I use Arquillian Drone instead of plain WebDriver?
There are many reasons why you want to do that, the most important being:

* Life cycle management of the browser
* Interaction with deployments and containers provided by Arquillian
* Simple usage of multiple browsers in a single test
* Configuration kept on a single place, outside of the Java code
* Fully compatible with the IDE
* Integration with mobile based browsers testing (https://github.com/arquillian/arquillian-droidium[Arquillian Droidium])
* Integration of JavaScript test suite execution (https://github.com/arquillian/arquillian-extension-qunit[Arquillian QUnit])
* Compatible with WebDriver (Selenium 2) and Selenium Grids

If you are still not convinced that Arquillian Drone matches your needs, you might have a look at https://github.com/arquillian/arquillian-graphene[Arquillian Graphene 2], which is a wrapper on top of WebDriver, goes one step further and provides you a convenient way how to write tests for rich AJAX UIs with an ease, injections for Page Objects and Page Fragments and much more.

ifdef::generated-doc[]

include::{asciidoctor-source}/drone-getting-started.adoc[]

include::{asciidoctor-source}/automatic-download.adoc[]

include::{asciidoctor-source}/supported-frameworks.adoc[]

include::{asciidoctor-source}/maven-setup.adoc[]

include::{asciidoctor-source}/life-cycle-scope-of-drone-points.adoc[]

include::{asciidoctor-source}/configuring-drone-instances.adoc[]

include::{asciidoctor-source}/drone-spi.adoc[]

endif::generated-doc[]

== Building the project

Prerequisites:

* JDK 8 and newer
* Maven 3.0.3 and newer

=== Running test suite

To run only unit tests:

[source]
----
mvn clean test
----

To run the whole test suite including functional tests using `chrome` browser.

[source]
----
mvn clean verify -Dbrowser=chrome
----

In case you want to modify the browser, you can specify `-Dbrowser=firefox` for instance. This will run the test suite using firefox defined. Similarly, you can use Chrome, Safari, etc...

TIP: VNC server instance can be used to let all the browsers pop out in separate display. Just prepend both commands with +DISPLAY=:${display.number}+

=== Releasing new version

Run following commands:

[source,bash]
mvn clean release:prepare release:perform

Make sure that you push the tag, close all issues with given version in JIRA and mark version as released.