RushEye 1.0.0 Released

The Arquillian team is proud to announce the 1.0.0 release of the RushEye component!

We are introducing the very first release of the Arquillian RushEye extension.

Arquillian RushEye

RushEye is a tool for automated bulk or on-the-fly inspecting of browser screen images and comparison with predefined image suite.

It enables automated visual testing (using Selenium) and minimizes efforts for manual visual testing of applications.

How to use it?

Getting rusheye.jar

Get the rusheye-dist jar from Maven central or:

Obtain the source from

https://github.com/arquillian/arquillian-rusheye

and build it using

cd arquillian-rusheye/
mvn clean install

You can find the rusheye.jar necessary to run the test suite install

arquillian-rusheye/rusheye-dist/target/rusheye.jar

Creating test suite

Let’s assume we have two directories, screenshots1 and screenshots2.

The screenshots1 is the directory with sample images (patterns), while screenshots2 is a directory with new images which we would like to compare with patterns.

Directory structure

The crawl mechanism expects the flat structure of crawled directory, e.g.:

screenshots1/test1.png
screenshots1/test2.png

Crawling directory

We can create an XML descriptor of RushEye test suite by calling:

java -jar rusheye.jar crawl screenshots1/ -O suite.xml

A file suite.xml with content similar to following one will be created:

<?xml version="1.0" encoding="UTF-8"?>
<visual-suite xmlns="http://www.jboss.org/rusheye/visual-suite"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.jboss.org/rusheye/visual-suite http://fryc.eu/rusheye/visual-suite.xsd">

  <global-configuration>
    <listener type="org.jboss.rusheye.parser.listener.CompareListener">
      ...
    </listener>
    <pattern-retriever type="org.jboss.rusheye.retriever.FileRetriever"/>
    <mask-retriever type="org.jboss.rusheye.retriever.FileRetriever"/>
    <sample-retriever type="org.jboss.rusheye.retriever.sample.FileSampleRetriever"/>
    <perception/>
  </global-configuration>

  <test name="test1">
    <pattern name="test1" source="test1.png"/>
  </test>
  ...

Running test suite

Once we created suite.xml from the screenshots1 directory structure, we can use RushEye to run the test suite against images in the screenshots2 directory.

java -jar rusheye.jar parse suite.xml  \
    -D result-output-file=result.xml  \
    -D samples-directory=screenshots2  \
    -D patterns-directory=screenshots1  \
    -D file-storage-directory=diffs

On the standard output, you can see following lines:

[ DIFFER ] SeparatorTestCase.testThirdSeparator
[ DIFFER ] SimpleEditorTestCase.testEditorSource
[ DIFFER ] SpinnerTestCase.testLowerClickUp
  ...
[ DIFFER ] TabPanelTestCase.testTabPanelExample
[ DIFFER ] OrderingListTestCase.testUpMultipleSongsShift
=====================
  Overall Statistics:
  DIFFER: 391
=====================

The directory diffs will be created and an image comparing pattern with sample will be created for every test where pattern and sample image differs. This image highlights changes between the two compared images.
Adding mask to test suite

Since they are a lot of differences in images, we can define masks to hide the unimportant differences.

There is currently only one type of mask:
Selective-Alpha

There are predefined masks in masks directory:
masks/masks-selective-alpha

Remove or clear the diffs directory and run the crawl command again with masks directory specified and use -f to override existing suite.xml.

java -jar rusheye.jar crawl screenshots1/ -O suite.xml -m masks/ -f

Now you can run the comparison script again:

java -jar rusheye.jar parse suite.xml  \
    -D result-output-file=result.xml  \
    -D samples-directory=screenshots2  \
    -D patterns-directory=screenshots1  \
    -D file-storage-directory=diffs \
    -D masks-directory=masks

Now, you are getting much more stable results:

[ SAME ] KeepAliveTestCase.testUsingIncorrectWay
[ SAME ] PanelCustomizationTestCase.testThirdPanel
[ SAME ] TooltipDataTableTestCase.testIterateThroughTable
[ SAME ] ColorPickerTestCase.testPageSource
[ SAME ] SimpleEditorTestCase.testStrikethroughButton
[ SAME ] SeparatorTestCase.testFirstSeparator
[ DIFFER ] TableSortingTestCase.testExternalSorting
[ SAME ] TooltipTestCase.testDefaultToolTip
  ...
[ SAME ] StyleTestCase.testBackgroundColor
=====================
  Overall Statistics:
  SAME: 318
  DIFFER: 76
=====================

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 RushEye
Version 1.0.0 view tag
Release date 2017-05-03
Released by Matous Jobanek

Published artifacts org.arquillian.rusheye

Thanks to the following list of contributors: Lukas Fryc, Matous Jobanek, Bartosz Majsak, Selvaraj, Vinoth

Arquillian Algeron Extension 1.0.0 Released

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

The Arquillian team is proud to announce the 1.0.0 release of the Arquillian Algeron 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 Algeron Extension
Version 1.0.0 view tag
Release date 2017-04-25
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.algeron

  • org.arquillian.algeron » arquillian-algeron-pact-consumer-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-consumer-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-consumer-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-pact-broker-publisher jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-pact-broker-loader jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-assertj jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-git jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-configuration jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-git-publisher jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-git-retriever jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-maven-retriever jar javadoc pom

Release notes and resolved issues 1

Bug

Thanks to the following list of contributors: Bartosz Majsak, Alex Soto

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

The final release of Drone 2.1.0 is here!
As a part of this release, apart from several bug fixes, we bring you two significant changes:

Browser configuration is not case sensitive anymore

Now, it doesn’t matter if you use htmlUnit or htmlunit. For both cases, you get the same browser. This is applied for all browsers that are supported by Drone.

Support for configuration of WebClient options in HtmlUnitDriver

If you want to configure WebClient options in HtmlUnitDriver, then use the arquillian.xml property: htmlUnitWebClientOptions
The value of this property should be a semicolon separated list of webClientOptions. e.g.

<property name="htmlUnitWebClientOptions">
   timeout=10; throwExceptionOnScriptError=false; SSLClientProtocols=protocal1, protocal2
</property>

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 view tag
Release date 2017-04-24
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 3

Feature Request
  • ARQ-1836 - Support HtmlUnitDriver client options
  • ARQ-2022 - Support starting Browser window in Fullscreen
  • ARQ-2106 - Browser configuration shouldn't be case sensitive

Thanks to the following list of contributors: Matous Jobanek, Dipak Pawar, Bartosz Majsak, Krassimir Valev

ShrinkWrap Resolver 3.0.0-beta-1 Released

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

The Arquillian team is proud to announce the 3.0.0-beta-1 release of the ShrinkWrap Resolver component!

In this release, we bring you a bunch of bug fixes and improvements. For more information, check the release notes and resolved issues listed at the end of this announcement.

What is ShrinkWrap Resolver?

The ShrinkWrap Resolvers project provides a Java API to obtain artifacts from a repository system. This is handy to include third party libraries available in any Maven repository in your test archive. ShrinkWrap Resolvers additionally allow you to reuse all the configuration you've already specified in the Maven build file, making packaging of an application archive much easier job.

Release details

Component ShrinkWrap Resolver
Version 3.0.0-beta-1 view tag
Release date 2017-04-24
Released by Matous Jobanek
Compiled against
  • JUnit – 4.12

Published artifacts org.jboss.shrinkwrap.resolver

  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-bom pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-spi jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-depchain pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api-maven jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-maven jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api-maven-archive jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-spi-maven jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-spi-maven-archive jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-maven-archive jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api-maven-embedded jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-maven-embedded jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-gradle jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api-gradle-embedded-archive jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-gradle-depchain pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-gradle-embedded-archive jar javadoc pom

Release notes and resolved issues 4

Enhancement
Documentation
Bug
  • SHRINKRES-268 - Fix jfrog's gradle repo URL as http://repo.jfrog.org/artifactory/repo no longer works
  • SHRINKRES-272 - Fix convenience methods to import dependencies

Thanks to the following list of contributors: Matous Jobanek, Sebastian Schuberth, Petr Široký

Arquillian Universe 1.1.13.4 Released

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

The Arquillian team is proud to announce the 1.1.13.4 release of the Arquillian Universe component!

What is Arquillian Universe?

The Arquillian Universe BOM is a 'Bill of Material' Maven POM file collection that make up a module stack that stretch across the whole Arquillian Universe.

Release details

Component Arquillian Universe
Version 1.1.13.4 view tag
Release date 2017-04-21
Released by Matous Jobanek
Compiled against

Published artifacts org.arquillian.universe

  • org.arquillian.universe » arquillian-core pom
  • org.arquillian.universe » arquillian-junit pom
  • org.arquillian.universe » arquillian-junit-standalone pom
  • org.arquillian.universe » arquillian-testng pom
  • org.arquillian.universe » arquillian-testng-standalone pom
  • org.arquillian » arquillian-universe pom
  • org.arquillian.universe » arquillian-drone pom
  • org.arquillian.universe » arquillian-graphene pom
  • org.arquillian.universe » arquillian-graphene-recorder pom
  • org.arquillian.universe » arquillian-warp pom
  • org.arquillian.universe » arquillian-warp-jsf pom
  • org.arquillian.universe » arquillian-transaction-core pom
  • org.arquillian.universe » arquillian-transaction-jta pom
  • org.arquillian.universe » arquillian-persistence-core pom
  • org.arquillian.universe » arquillian-persistence pom
  • org.arquillian.universe » arquillian-spring pom
  • org.arquillian.universe » arquillian-spring-transaction pom
  • org.arquillian.universe » arquillian-spring-persistence pom
  • org.arquillian.universe » arquillian-spring-warp pom
  • org.arquillian.universe » arquillian-governor-core pom
  • org.arquillian.universe » arquillian-governor-jira pom
  • org.arquillian.universe » arquillian-governor-github pom
  • org.arquillian.universe » arquillian-governor-redmine pom
  • org.arquillian.universe » arquillian-governor-skipper pom
  • org.arquillian.universe » arquillian-governor-ignore pom
  • org.arquillian.universe » arquillian-byteman pom
  • org.arquillian.universe » arquillian-jacoco pom
  • org.arquillian.universe » arquillian-recorder-api pom
  • org.arquillian.universe » arquillian-recorder pom
  • org.arquillian.universe » arquillian-rest-core pom
  • org.arquillian.universe » arquillian-rest-resteasy2 pom
  • org.arquillian.universe » arquillian-rest-resteasy3 pom
  • org.arquillian.universe » arquillian-rest-jaxrs2 pom
  • org.arquillian.universe » arquillian-rest-jersey pom
  • org.arquillian.universe » arquillian-rest-warp-core pom
  • org.arquillian.universe » arquillian-rest-warp-resteasy pom
  • org.arquillian.universe » arquillian-rest-warp-jaxrs2 pom
  • org.arquillian.universe » arquillian-rest-warp-jersey pom
  • org.arquillian.universe » arquillian-rest-warp-cxf pom
  • org.arquillian.universe » arquillian-spacelift pom
  • org.arquillian.universe » arquillian-chameleon pom
  • org.arquillian.universe » arquillian-cube-core pom
  • org.arquillian.universe » arquillian-cube-docker pom
  • org.arquillian.universe » arquillian-cube-openshift pom
  • org.arquillian.universe » arquillian-cube-containerless pom
  • org.arquillian.universe » arquillian-cube-kubernetes pom
  • org.arquillian.universe » arquillian-cube-docker-restassured pom
  • org.arquillian.universe » arquillian-cukes pom
  • org.arquillian.universe » arquillian-cube-q-pumba pom
  • org.arquillian.universe » arquillian-cube-q-simianarmy pom
  • org.arquillian.universe » arquillian-cube-q-toxic pom
  • org.arquillian.universe » arquillian-algeron-pact-consumer pom
  • org.arquillian.universe » arquillian-algeron-pact-provider pom
  • org.arquillian.universe » arquillian-algeron-git-publisher pom
  • org.arquillian.universe » arquillian-algeron-git-retriever pom
  • org.arquillian.universe » arquillian-algeron-maven-retriever pom
  • org.arquillian.universe » arquillian-algeron-pact-broker-retriever pom
  • org.arquillian.universe » arquillian-ape-nosql-mongodb pom
  • org.arquillian.universe » arquillian-ape-nosql-redis pom
  • org.arquillian.universe » arquillian-ape-nosql-couchbase pom
  • org.arquillian.universe » arquillian-ape-rest-postman pom
  • org.arquillian.universe » arquillian-ape-nosql-vault pom
  • org.arquillian.universe » arquillian-ape-sql-container-dbunit pom
  • org.arquillian.universe » arquillian-ape-sql-standalone-dbunit pom
  • org.arquillian.universe » arquillian-ape-sql-standalone-flyway pom
  • org.arquillian.universe » arquillian-ape-junit-rule pom
  • org.arquillian.universe » arquillian-test jar javadoc pom

Release notes and resolved issues 0

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