Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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
 Browser Automation – Geb at a high level
 Advantages
 Disadvantages
 What 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 JVM
 Similar to Ruby
 Combined with some of the powerful features of Java
 Integrates well with all Java libraries
 Supports mocking for unit testing
 Easy to learn and read
Groovy Example
Comparing to Ruby
Class HelloExample
Def hello entity
puts “Hello, #{entity}!”
end
End
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 code
 Event handlers and overwriting
 Support for all major browsers
 Some of its syntax makes its way into Geb
Jquery Example
Testing Frameworks
 Geb can be combined with
many testing frameworks
 Or used in-line
 Spock 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 – preferred
 Increase maintainability and reusability
 Based 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 page
 Make sure we’re there
 Try to login as an admin
 Click login
 Check if we are at the
admin page
Conclusion
 Geb is easy to read, write, learn, and modify.
 Saves a large amount of testing time
 Larger application test coverage
 Page object model is powerful
 Effective keywords
 Read The Book of Geb
www.gebish.org
 Watch the selenium conference speech:
http://www.youtube.com/watch?v=T2qXCBT_QBs