SlideShare a Scribd company logo
Geb:
Save Time with Groovy
Functional Testing
Dallas, TX
October 2012




Discussion document – Strictly Confidential & Proprietary
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




                                                           Geb: Save Time with Groovy Functional Testing
                                                                                          October, 2012    2
Introductions




                Geb: Save Time with Groovy Functional Testing
                                               October, 2012    3
Interactive Shell




                    Geb: Save Time with Groovy Functional Testing
                                                   October, 2012    4
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




                                                           Geb: Save Time with Groovy Functional Testing
                                                                                          October, 2012    5
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)


                                                            Geb: Save Time with Groovy Functional Testing
                                                                                           October, 2012    6
Page Abstraction




                   Geb: Save Time with Groovy Functional Testing
                                                  October, 2012    7
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




                                                                      Geb: Save Time with Groovy Functional Testing
                                                                                                     October, 2012    8
Functional Testing




                 Geb: Save Time with Groovy Functional Testing
                                                October, 2012    9
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




                                                                           Geb: Save Time with Groovy Functional Testing
                                                                                                          October, 2012    10
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




                                                        Geb: Save Time with Groovy Functional Testing
                                                                                       October, 2012    11
Recap and Questions




                 Geb: Save Time with Groovy Functional Testing
                                                October, 2012    12

More Related Content

PDF
Blocks & Triangles: Front-end Architecture in the Gutenberg Era
PPTX
Geb: Abstracting Page Templates
PPTX
Testing in GO
PDF
What would your own version of Ruby look like? (RubyKaigi)
PPTX
Gradle 2.breaking stereotypes.
PDF
DevQA: make your testers happier with Groovy, Spock and Geb
PDF
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
PPTX
Gradle.Enemy at the gates
Blocks & Triangles: Front-end Architecture in the Gutenberg Era
Geb: Abstracting Page Templates
Testing in GO
What would your own version of Ruby look like? (RubyKaigi)
Gradle 2.breaking stereotypes.
DevQA: make your testers happier with Groovy, Spock and Geb
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
Gradle.Enemy at the gates

Similar to Geb: Save Time with Groovy Functional Testing (20)

PDF
What would your own version of Ruby look like?
PDF
Why use Go for web development?
PDF
Getting started with GitHub
PPTX
Rapid Application Development on Google App Engine for Java
PPTX
Geb with spock
PPTX
Introduction to go lang
PDF
Stanislaw potoczny kra_qa_21.01.20
PPTX
Gradle 2.Write once, builde everywhere
PDF
Tool Development Process and Software Engineering
PDF
javerosmx-2015-marzo-groovy-java8-comparison
PPTX
Introduction to Grails 2013
PPTX
Google jib: Building Java containers without Docker
PDF
'Using' github - coworking with Github
PPTX
Building a Portable Testing Rig with GoConvey and Docker
PPTX
Container based CI/CD on GitHub Actions
PDF
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
PDF
Acceptance testing with Geb
PPTX
Gradle 2.Breaking stereotypes
PPTX
Test Automation with Twist and Sahi
PDF
Taming Functional Web Testing with Spock and Geb
What would your own version of Ruby look like?
Why use Go for web development?
Getting started with GitHub
Rapid Application Development on Google App Engine for Java
Geb with spock
Introduction to go lang
Stanislaw potoczny kra_qa_21.01.20
Gradle 2.Write once, builde everywhere
Tool Development Process and Software Engineering
javerosmx-2015-marzo-groovy-java8-comparison
Introduction to Grails 2013
Google jib: Building Java containers without Docker
'Using' github - coworking with Github
Building a Portable Testing Rig with GoConvey and Docker
Container based CI/CD on GitHub Actions
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
Acceptance testing with Geb
Gradle 2.Breaking stereotypes
Test Automation with Twist and Sahi
Taming Functional Web Testing with Spock and Geb
Ad

Geb: Save Time with Groovy Functional Testing

  • 1. Geb: Save Time with Groovy Functional Testing Dallas, TX October 2012 Discussion document – Strictly Confidential & Proprietary
  • 2. 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 Geb: Save Time with Groovy Functional Testing October, 2012 2
  • 3. Introductions Geb: Save Time with Groovy Functional Testing October, 2012 3
  • 4. Interactive Shell Geb: Save Time with Groovy Functional Testing October, 2012 4
  • 5. 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 Geb: Save Time with Groovy Functional Testing October, 2012 5
  • 6. 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) Geb: Save Time with Groovy Functional Testing October, 2012 6
  • 7. Page Abstraction Geb: Save Time with Groovy Functional Testing October, 2012 7
  • 8. 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 Geb: Save Time with Groovy Functional Testing October, 2012 8
  • 9. Functional Testing Geb: Save Time with Groovy Functional Testing October, 2012 9
  • 10. 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 Geb: Save Time with Groovy Functional Testing October, 2012 10
  • 11. 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 Geb: Save Time with Groovy Functional Testing October, 2012 11
  • 12. Recap and Questions Geb: Save Time with Groovy Functional Testing October, 2012 12