Selenium for Everyone
    www.seleniumhq.org




    Think Technology..Think Future
What is Selenium
•   Is a suite of tools to automate web browsers across many platforms

•   Can be used for
     –   Automate web application for testing
     –   Automate web administration tasks
     –   Measure Performance
     –   Test Security

•   Supports multiple browsers, platforms and Languages
     – Chrome, IE, Firefox, Opera, Safari,
     – HTML Unit, Android & iOS phones and tablets
     – Java, C#, Ruby, Python, PHP, Perl, etc.

•   Deploys on – Windows, Mac, Linux

•   Variants
     – Selenium 2 (Webdriver) , Selenium 1 (Remote Control), Selenium IDE

                            Think Technology..Think Future
Selenium - History
• Started in 2004 in by Jason Huggins
  who worked in ThoughtWorks
• Jason joins Google in 2007
• Currently CTO of SauceLabs
• Simon Stewart Started work on
  Webdriver in Google
• http://google-opensource.blogspot.in/2009/05/
  introducing-webdriver.html


               Think Technology..Think Future
Growing importance of Selenium




        Think Technology..Think Future
Need of Test Automation
• Frequent regression testing
• Rapid feedback to developers
• Virtually unlimited iterations of test case
  execution
• Support for Agile and extreme development
  methodologies
• Disciplined documentation of test cases
• Customized defect reporting
• Finding defects missed by manual testing
               Think Technology..Think Future
Selenium IDE
Pros
  –    Easy to install as a Firefox plugin
  –    Record & Playback
  –    Easy Execution
  –    Export script
  –    Suitable for creating simple scripts
Cons
  – Sequential Execution
  – Not easy to data drive
  – No basic Programming Construct

                       Think Technology..Think Future
Selenium IDE




Think Technology..Think Future
Selenium RC




Think Technology..Think Future
Selenium RC
• Client-server architecture
• It ‘injects’ javascript functions into the browser. Uses
  its javascript to drive the AUT

Problems
• browsers impose a pretty strict security model on any
  JavaScript to protect a user from malicious scripts.
• Examples
   – trying to upload a file (IE prevents JavaScript from
     changing the value of an INPUT file element)
   – when trying to navigate between domains (because of the
     single host origin policy problem)


                   Think Technology..Think Future
Selenium WebDriver
• Makes direct calls to the browser using each
  browser’s native support for automation
  – For Firefox, implemented as an extension
  – For IE, makes use of IE's Automation controls
• Circumvents JavaScript security restrictions
• Can make use of facilities offered by the OS
  – More closely model how the user interacts with the
    browser, and that we can type into "file" input
    elements
• Support by browser vendors - Opera, Mozilla and
  Google are all active participants
                  Think Technology..Think Future
Selenium WebDriver

Firefox Driver Architecture:




IE Driver Architecture:



                      Think Technology..Think Future
Sample Webdriver Test




    Think Technology..Think Future
Why choose Webdriver
• Object Oriented, smaller, compact API - This can
  make it easier to work with compared to RC
• Mimics the way that your users work with your
  site and apps
• Offers advanced user interactions APIs
  – Drag and Drop
  – Clicking multiple elements with Control key
• Support for WebDriver is baked into the browser
  itself: your tests run fast and are stable

                 Think Technology..Think Future
Issues
•   Changing element locators
•   Changing data
•   Reusability
•   Maintainability
•   Readability
•   Reporting



                Think Technology..Think Future
Need framework to…
• Allow organizing tests into different Pages
• Abstract element locators
• Abstract data
• Allow verification points
• Capability to deal with file systemdatabases
  windows dialogs, etc.
• Be maintainable to keep pace with fast agile
  development

               Think Technology..Think Future
What is Think Future Automation For Generic System (TAGS)…

• Built using selenium web-driver
• Parallel test execution on multiple browsers
• Uses spreadsheets to define test flows
• Easiest maintenance of object definitions
• Reporting in xml, html format
• Performs Database Testing
• Integrates with test management tools- Quality
   Center, VS Test Manager 2010, xStudio

• Execution on Cloud like Saucelabs
• High Degree of Reusability

                               Think Technology..Think Future
About..
• Think Future Technologies is a global software
  development, QA & Testing services firm. Incorporated in
  India in 2006




                                                   Commercial Support Provider


                  Think Technology..Think Future
Important URLs
• Meetup Group on Selenium in Delhi / NCR
  – http://www.meetup.com/seleners/
• Selenium Conference Slides
  – http://www.seleniumconf.org/speakers/
• Book on Selenium
  – http://www.aosabook.org/en/selenium.html
• TAGS Framework
  – www.tftus.com/tags.html

               Think Technology..Think Future
Twitter:

 @SeleniumHQ
@thinkfuturetech


 Think Technology..Think Future

Selenium for everyone

  • 1.
    Selenium for Everyone www.seleniumhq.org Think Technology..Think Future
  • 2.
    What is Selenium • Is a suite of tools to automate web browsers across many platforms • Can be used for – Automate web application for testing – Automate web administration tasks – Measure Performance – Test Security • Supports multiple browsers, platforms and Languages – Chrome, IE, Firefox, Opera, Safari, – HTML Unit, Android & iOS phones and tablets – Java, C#, Ruby, Python, PHP, Perl, etc. • Deploys on – Windows, Mac, Linux • Variants – Selenium 2 (Webdriver) , Selenium 1 (Remote Control), Selenium IDE Think Technology..Think Future
  • 3.
    Selenium - History •Started in 2004 in by Jason Huggins who worked in ThoughtWorks • Jason joins Google in 2007 • Currently CTO of SauceLabs • Simon Stewart Started work on Webdriver in Google • http://google-opensource.blogspot.in/2009/05/ introducing-webdriver.html Think Technology..Think Future
  • 4.
    Growing importance ofSelenium Think Technology..Think Future
  • 5.
    Need of TestAutomation • Frequent regression testing • Rapid feedback to developers • Virtually unlimited iterations of test case execution • Support for Agile and extreme development methodologies • Disciplined documentation of test cases • Customized defect reporting • Finding defects missed by manual testing Think Technology..Think Future
  • 6.
    Selenium IDE Pros – Easy to install as a Firefox plugin – Record & Playback – Easy Execution – Export script – Suitable for creating simple scripts Cons – Sequential Execution – Not easy to data drive – No basic Programming Construct Think Technology..Think Future
  • 7.
  • 8.
  • 9.
    Selenium RC • Client-serverarchitecture • It ‘injects’ javascript functions into the browser. Uses its javascript to drive the AUT Problems • browsers impose a pretty strict security model on any JavaScript to protect a user from malicious scripts. • Examples – trying to upload a file (IE prevents JavaScript from changing the value of an INPUT file element) – when trying to navigate between domains (because of the single host origin policy problem) Think Technology..Think Future
  • 10.
    Selenium WebDriver • Makesdirect calls to the browser using each browser’s native support for automation – For Firefox, implemented as an extension – For IE, makes use of IE's Automation controls • Circumvents JavaScript security restrictions • Can make use of facilities offered by the OS – More closely model how the user interacts with the browser, and that we can type into "file" input elements • Support by browser vendors - Opera, Mozilla and Google are all active participants Think Technology..Think Future
  • 11.
    Selenium WebDriver Firefox DriverArchitecture: IE Driver Architecture: Think Technology..Think Future
  • 12.
    Sample Webdriver Test Think Technology..Think Future
  • 13.
    Why choose Webdriver •Object Oriented, smaller, compact API - This can make it easier to work with compared to RC • Mimics the way that your users work with your site and apps • Offers advanced user interactions APIs – Drag and Drop – Clicking multiple elements with Control key • Support for WebDriver is baked into the browser itself: your tests run fast and are stable Think Technology..Think Future
  • 14.
    Issues • Changing element locators • Changing data • Reusability • Maintainability • Readability • Reporting Think Technology..Think Future
  • 15.
    Need framework to… •Allow organizing tests into different Pages • Abstract element locators • Abstract data • Allow verification points • Capability to deal with file systemdatabases windows dialogs, etc. • Be maintainable to keep pace with fast agile development Think Technology..Think Future
  • 16.
    What is ThinkFuture Automation For Generic System (TAGS)… • Built using selenium web-driver • Parallel test execution on multiple browsers • Uses spreadsheets to define test flows • Easiest maintenance of object definitions • Reporting in xml, html format • Performs Database Testing • Integrates with test management tools- Quality Center, VS Test Manager 2010, xStudio • Execution on Cloud like Saucelabs • High Degree of Reusability Think Technology..Think Future
  • 17.
    About.. • Think FutureTechnologies is a global software development, QA & Testing services firm. Incorporated in India in 2006 Commercial Support Provider Think Technology..Think Future
  • 18.
    Important URLs • MeetupGroup on Selenium in Delhi / NCR – http://www.meetup.com/seleners/ • Selenium Conference Slides – http://www.seleniumconf.org/speakers/ • Book on Selenium – http://www.aosabook.org/en/selenium.html • TAGS Framework – www.tftus.com/tags.html Think Technology..Think Future
  • 19.