by: kyle rogahn computer science seminar uw platteville 4/3/2012 web browser automation - geb

Post on 23-Dec-2015

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BY: KYLE ROGAHNCOMPUTER SCIENCE SEMINAR

UW PLATTEVILLE4/3/2012

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

On Deck

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

Webdriver Groovy Jquery Page Object Model

Example code testing

Web Browser Automation

Programmatically control your web browser

Use this ability to write tests for web applications

Improved quality assurance process

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

Advantages

Save time (and money) Speed up

navigation through many pages

Reduce data entry What takes a

person minutes Geb can do in seconds

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

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

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

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

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

WebDriver Example

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

Groovy Example

Comparing to Ruby

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

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

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

Jquery Example

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

In-line Geb

Go vs driver.get(…)

Assert without test framework Webdriver:

driver.getTitle() then compare using .equals

$ - Jquery sendKeys() in

WebDriver

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!

Typical Page Class

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?

Testing Example

Go to the login pageMake sure we’re

thereTry to login as an

adminClick loginCheck if we are at

the admin page

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

top related