Web Browser Automation
Download
Report
Transcript Web Browser Automation
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