web browser automation - geb

24
BY: KYLE ROGAHN COMPUTER SCIENCE SEMINAR UW PLATTEVILLE 4/3/2012 Web Browser Automation - Geb

Upload: gates

Post on 07-Jan-2016

47 views

Category:

Documents


1 download

DESCRIPTION

Web Browser Automation - Geb. By: Kyle rogahn Computer Science seminar Uw platteville 4/3/2012. Introduction. Geb is a web browser automation tool JQuery + Webdriver + Groovy Advantageous in certain web development projects New: not even at version 1.0. On Deck. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web Browser Automation - Geb

BY: KYLE ROGAHNCOMPUTER SCIENCE SEMINAR

UW PLATTEVILLE4/3/2012

Web Browser Automation - Geb

Page 2: Web Browser Automation - Geb

Introduction

Geb is a web browser automation toolJQuery + Webdriver + GroovyAdvantageous in certain web development

projectsNew: not even at version 1.0

Page 3: Web Browser Automation - Geb

On Deck

Browser Automation – Geb at a high levelAdvantagesDisadvantagesWhat is it – the details

Webdriver Groovy Jquery Page Object Model

Example code testing

Page 4: Web Browser Automation - Geb

Web Browser Automation

Programmatically control your web browser

Use this ability to write tests for web applications

Improved quality assurance process

Page 5: Web Browser Automation - Geb

Advantages

Eliminate tedious manual testing Good fit for large projects

with many test cases Unit tests not enough to

catch errors Integration of complex

systems MVC example Data Access Objects –

retrieving customer information

Page 6: Web Browser Automation - Geb

Advantages

Save time (and money) Speed up

navigation through many pages

Reduce data entry What takes a

person minutes Geb can do in seconds

Page 7: Web Browser Automation - Geb

Advantages

Easy to learn Readability Semantics easy to figure out Going to the google home page

“To” keyword, google home page defined as an object

To GoogleHomePage Low learning curve

Page 8: Web Browser Automation - Geb

Disadvantages

Less useful on smaller projects May cost more time than it saves Manual testing may suffice Could still use it if desired

Guaranteed Learning curve Since it’s new there’s a high chance

developers will not know it Comes down to affordability Although, learning curve is not that high

Page 9: Web Browser Automation - Geb

Disadvantages

Configuration issues Specific environment needed

If using a compatible environment already it is easy

May be tough otherwise Grails, Maven, Gradle are suggested Switching environments may be too costly

Software Engineering Management Decisions

Page 10: Web Browser Automation - Geb

What Makes Up Geb

WebDriver Handles automation

JQuery Used for content selection

Groovy Syntax based on this language

Page Object Model Architecture that makes Geb powerful

Page 11: Web Browser Automation - Geb

WebDriver

Driving force behind browser automation Modifies document object model (DOM) components Control browser behavior

DOM components Interface content Buttons, text fields…etc

WebDriver by itself vs. Geb Geb is simpler, more readable, and easier to learn

Page 12: Web Browser Automation - Geb

WebDriver Example

Page 13: Web Browser Automation - Geb

Groovy

Dynamic programming language for the JVMSimilar to Ruby

Combined with some of the powerful features of Java Integrates well with all Java libraries

Supports mocking for unit testingEasy to learn and read

Page 14: Web Browser Automation - Geb

Groovy Example

Page 15: Web Browser Automation - Geb

Comparing to Ruby

Class HelloExample Def hello entity puts “Hello, #{entity}!” endEnd

def main example = HelloExample.new() example.hello(‘world’) end

Page 16: Web Browser Automation - Geb

JQuery

Content Selection Improvement over WebDriver’s DOM content selector Important to quickly locate desired objects on a page

Ability to modify html codeEvent handlers and overwritingSupport for all major browsersSome of its syntax makes its way into Geb

Page 17: Web Browser Automation - Geb

Jquery Example

Page 18: Web Browser Automation - Geb

Testing Frameworks

Geb can be combined with many testing frameworks

Or used in-lineSpock is the

recommended framework Included in the Geb package Configuration: Import

geb.spock.GebSpec Clearest and most concise way

to write Geb tests

Page 19: Web Browser Automation - Geb

In-line Geb

Go vs driver.get(…)

Assert without test framework Webdriver:

driver.getTitle() then compare using .equals

$ - Jquery sendKeys() in

WebDriver

Page 20: Web Browser Automation - Geb

Page Object Model

Non inline Geb programs – preferredIncrease maintainability and reusabilityBased on the notion of page objects

Define a class for each page of your application

Call on page components when needed Only have to use JQuery for lookup once

Powerful!

Page 21: Web Browser Automation - Geb

Typical Page Class

Page 22: Web Browser Automation - Geb

Geb Testing Using Page Classes

Test specifications Specific names Readability/Maintainability

Spock framework Extra keywords to simplify

tests Do something then check

the result Are we on the right

page? Did a certain component

change?

Page 23: Web Browser Automation - Geb

Testing Example

Go to the login pageMake sure we’re

thereTry to login as an

adminClick loginCheck if we are at

the admin page

Page 24: Web Browser Automation - Geb

Conclusion

Geb is easy to read, write, learn, and modify.Saves a large amount of testing timeLarger application test coveragePage object model is powerfulEffective keywordsRead The Book of Geb

www.gebish.org Watch the selenium conference speech:

http://www.youtube.com/watch?v=T2qXCBT_QBs