Graphene & Droidium in action
Who am I?
-
Štefan Miklošovič
-
Mobile QA engineer at Red Hat
-
@smikloso
Agenda
-
Graphene introduction
-
Graphene hottest goodies
-
Droidium introduction
-
Droidium in action
What is Arquillian Graphene ?
Writing and maintaining tests
Writing and maintaining tests
Testers
Arquillian
-
Integration framework for other test tools
-
Supports all CI, CLI and IDE
-
Extensible
Arquillian crash course
JUnit runner & client mode
Injecting URL and browser
Deployment definition
Test method
Rewrap
Arquillian Graphene
-
WebDriver on steroids
-
Painkiller for web UI testers
Graphene crash course
Wiring up page & test
Graphene test
@Page Objects
-
well known WebDriver pattern
-
make tests more readable
-
Graphene enhances its usability
What is wrong ?
Page objects declaration
Page objects declaration
Test with page objects
@Page annotation
Test with page objects
Improved maintenance, from this
to this
Page Fragments
-
reusability
-
readability
-
cross browser testing
Page fragments declaration
Wiring up fragment & page
Services of fragment
Help methods of fragment
Page fragments injection
Declaring fragment root element
Test with page fragments
Improved DRY, from this
to this
@Location over page object declaration
@Location over page object declaration
@InitialPage
@InitialPage
-
Interceptors
-
JavaScript Interfaces
-
Request guards
-
Fluent Waiting API
-
Multiple browsers
-
…and other Graphene goodies …
Wanna test some mobile, huh?
Droidium from high level
-
Extension for Arquillian
-
Glues together
-
And droid
-
Selen ium WebDriver
-
Arquillian Drone
-
Arquillian Graphene
Concept of Arquillian containers
-
What is container?
-
Container modes
-
Remote container
-
Managed container
-
Droidium supports both
-
managed in Droidium
-
remote in Droidium
-
Droidium is container adapter for Android
What does Droidium solve?
-
It ftests web apps on AS from Android
-
by web plugin
-
Uses "Android server" from Selenium
-
It ftests native Android apps
-
by native plugin
Role of Selendroid in Droidium
-
Selendroid is APK installed beside of AUT
-
Instruments AUT
-
Translates JSON wire protocol to Android native calls which drive applications
Web testing workflow
-
code your web application
-
start containers
-
deploy web app to AS
-
test web app on Android
Native testing workflow
-
code your Android application
-
start Android container
-
install it to Android (as-is)
-
start Android activities
-
test native app
No difference between web and native testing
Wrapping it up
-
integrates application servers with Android
-
tests complex usage scenarios
-
no bootstrapping on your part
-
fast turnaround (TDD)
-
Travis, CloudBees
Q&A