Discussion document – Strictly Confidential & Proprietary Geb: Save Time with Groovy Functional Testing Dallas, TX October 2012
Jan 25, 2015
Discussion document – Strictly Confidential & Proprietary
Geb:Save Time with Groovy Functional TestingDallas, TXOctober 2012
2October, 2012
Geb: Save Time with Groovy Functional Testing
Agenda …
We will cover how a successful workflow for developing functional tests
• Introductions
• Interactive Shell
– Basic setup
– Syntax Overview
• Page Abstraction
– Overview
– Modules
– Functions
• Functional Testing
• Recap and Questions
3
Introductions
October, 2012
Geb: Save Time with Groovy Functional Testing
4
Interactive Shell
October, 2012
Geb: Save Time with Groovy Functional Testing
5October, 2012
Geb: Save Time with Groovy Functional Testing
Interactive Shell…
Getting started with Geb in the interactive Groovy Shell
• Firefox for Geb
• Try out your tests before putting them into code
• Useful for rapid test development
• http://groovy.codehaus.org/Groovy+Shell
• https://github.com/jhamit/geb-examples
6October, 2012
Geb: Save Time with Groovy Functional Testing
Interactive Shell …
Basic Geb syntax looks familiar, though there are some differences with jQuery
• http://www.gebish.org/manual/current/
Key Objects
• geb.Browser
• geb.navigator.Navigator
• geb.js.JavascriptInterface
Nice Features
• DOM Inspection via CSS Selectors, Indexes, Attributes
• DOM Interaction via b.$.click()
• DOM Manipulation via jQuery Hook
Examples
• b.title
• b.$('div.content-main')
• b.$('div.tweet').first().find('a[href="/improving"]',0)
7
Page Abstraction
October, 2012
Geb: Save Time with Groovy Functional Testing
8October, 2012
Geb: Save Time with Groovy Functional Testing
Page Abstraction …
Define the essence of the page in order to separate the concerns of test methods and web elements
These tools allow flexibility in page design without breaking tests
• Page – Conceptual abstraction of a URLs
• Page Module - Sections that are reusable across multiple pages
• Page Method – Actions that are used frequently on pages
9
Functional Testing
October, 2012
Geb: Save Time with Groovy Functional Testing
10October, 2012
Geb: Save Time with Groovy Functional Testing
Functional Testing…
Geb makes it easy to test natively in multiple browsers
• Faster and easier to develop tests
• Automated report generation
• Easily invoked from command line
• Can be incorporated into build/deployment process
• Point to other environments with native browsers via geb.build.baseUrl
11October, 2012
Geb: Save Time with Groovy Functional Testing
Functional Testing…
More Geb to come so follow along and share your techniques with the community…
More Geb to come…
Follow along @josh_hamit or JoshHamit.com
• Configurable page instances
• Module lists
12
Recap and Questions
October, 2012
Geb: Save Time with Groovy Functional Testing