Introduction to functional testing with Arquillian Graphene

whoami

Red Hat RichFaces JBoss

Agenda

What is Arquillian Graphene ?

Writing and maintaining tests

development.jpg

Writing and maintaining tests

maintenance.jpg
dry.jpg

Testers

tester2.jpg tester3.jpg

Arquillian

ike.png

Arquillian crash course

deploymentScenario.png

JUnit runner & client mode

deploymentScenario1.png

Injecting URL and browser

deploymentScenario2.png

Deployment definition

deploymentScenario3.png

Test method

deploymentScenario4.png

What else Arquillian can do ?

Classpath control

classpathControl.png

Persistence

persistenceExample.png
wowMoment1.jpg

Arquillian Graphene

graphene-logo.png

Graphene crash course

googleTestBasic.png

Wiring up page & test

googleTestBasic1.png

Graphene test

googleTestBasic2.png

What is the added value of Graphene ?

@Page Objects

What is wrong ?

googleTestBasic.png

Page objects declaration

googleFrontPageObject.png

Page objects declaration

googleResultPageObject.png

Test with page objects

googleTestWithPageObjects.png

@Page annotation

googleTestWithPageObjects1.png

Test with page objects

googleTestWithPageObjects2.png

Improved maintenance, from this

maintenance.jpg

to this

maintenance2.jpg

Page Fragments

Page fragments declaration

autocompleteFragment.png

Wiring up fragment & page

autocompleteFragment1.png

Services of fragment

autocompleteFragment2.png

Help methods of fragment

autocompleteFragment3.png

Page fragments injection

testWithAutocompleteFragment.png

Declaring fragment root element

testWithAutocompleteFragment1.png

Test with page fragments

testWithAutocompleteFragment2.png

Improved DRY, from this

dry.jpg

to this

dry2.png

@JQueryLocator

jqueryLocator.png

@InFrame - plain WebDriver

inframePlainWD.png

@InFrame - plain WebDriver

inframePlainWD1.png

@InFrame - plain WebDriver

inframePlainWD2.png

@InFrame - plain WebDriver

inframePlainWD3.png

@InFrame - Graphene way

inframeGraphene.png

@InFrame - Graphene way

inframeGraphene1.png

@InFrame - Graphene way

inframeGraphene2.png

What is wrong ?

googleTestWithPageObjects.png

This!

googleTestWithPageObjectsGet.png

@Location over page object declaration

frontPageObjWithLocation.png

@Location over page object declaration

frontPageObjWithLocation1.png

@InitialPage

googleTestWithLocation.png

@InitialPage

googleTestWithLocation1.png

Graphene.goTo

googleTestWithGoto.png

Graphene.goTo

googleTestWithGoto2.png

Interceptors

interceptors.png

JavaScrip interfaces

jsInterceptors.png

Request guards

guards.png

Fluent waiting API

waiting.png

Multiple browsers

multipleBrowsers.png

Graphene buddies

Graphene demo

Final recap

Do not forget

Get testing done!

Q&A

success.png

Resources