SlideShare a Scribd company logo
1 of 19
Open Source Automation Tools
       That Really Work
(Have Your Cake And Eat It Too!)
       Thursday, April 19, 2012
         11:30am – 12:30pm
        Kell's Irish Restaurant
Agenda
• An Doan
  Twitter: @doan_an
  Gmail: verybadsushi@gmail.com
    • Selenium
       – Web
       – Mobile
    • Sikuli
       – Windows
       – Web
       – Mobile
Selenium
       http://seleniumhq.org/


Automate your browser the way the
       user would see it.
What is it?
• Selenium 1/RC
  – Simulated user interactions via the Javascript engine of the
    browser
• Selenium IDE
  – Firefox plug-in that allows record and playback

• Selenium 2/WebDriver
  – Native user interactions are fired through
    browser’s own automation support
Selenium IDE
• Demo
WebDriver
•   HtmlUnit Driver
•   Firefox Driver
•   Internet Explorer Driver
•   Chrome Driver
•   Opera Driver
•   Safari Driver
•   iPhone Driver
•   Android Driver
•   Native Driver
Supported Languages

• Java
• C#
• Python
• Ruby
• php
• Perl
API Examples
• WebDriver driver = new
  FirefoxDriver();

• driver.get("http://www.google.com");

• WebElement element =
  driver.findElement(By.name("q"));

• element.sendKeys("Cheese!");
Locators
•   By.id()
•   By.className()
•   By.name()
•   By.linkText()
•   By.partialLinkText()
•   By.tagName()
•   By.cssSelector()
•   By.xpath()
Demo

     1.   Identify Locators
     2.   Find the WebElement
     3.   Perform some action
     4.   Repeat


 Firefox + Firebug + Firefinder + User Agent Switcher
 Eclipse
Sikuli
        http://sikuli.org/


Sikuli means "God’s Eye" in the
 language of native Mexicans
What is it?
    Picture Driven Computing

Not your ordinary screen scrapper.
API Examples
                App Class
•   notepad = App.open(“notepad”)
•   notepad.focus()
•   notepad.close()
•   notepad.window()
API Examples
                 Spatial
                Operators

          •    above()
          •    below()
          •    left()
          •    right()
API Examples
               Image Recognition
•   find, findAll, exists, wait, waitVanish
•   click, doubleClick, rightClick, hover,
    dragDrop
•   type(“text”), paste(“text”)
•   notepad.window()
API Examples
            Text Recognition
• click(“OK”)
• find(“Cancel”)
• .text()
Demo
1. Pick API
2. Screen Capture
3. Repeat
Advanced Usage
• What if you combine the two?
  – Prompts, Print, File Upload, Alerts
  – Cross-Browser Testing, visual-consistency
Resources
• http://seleniumhq.org/

• http://www.slideshare.net/vgod/practical-
  sikuli-using-screenshots-for-gui-automation-
  and-testing

• http://www.meetup.com/pdx-se

More Related Content

What's hot

iOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and TricksiOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and Tricksmobiletestsummit
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingVlad Filippov
 
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
European Collaboration Summit - SharePoint Framework Angular & Azure FunctionsEuropean Collaboration Summit - SharePoint Framework Angular & Azure Functions
European Collaboration Summit - SharePoint Framework Angular & Azure FunctionsSébastien Levert
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Jason Kneen
 
React Native - DILo Surabaya
React Native -  DILo SurabayaReact Native -  DILo Surabaya
React Native - DILo SurabayaDILo Surabaya
 
This is presentation at Mitaka.rb #10.
This is presentation at Mitaka.rb #10.This is presentation at Mitaka.rb #10.
This is presentation at Mitaka.rb #10.Masaki Komagata
 
Calabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSCalabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSAnadea
 
Automated software testing using Selenium WebDriver
Automated software testing using Selenium WebDriverAutomated software testing using Selenium WebDriver
Automated software testing using Selenium WebDriverIlir Kosumi
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_uDoris Chen
 
Cross-Platform Desktop Apps with Electron
Cross-Platform Desktop Apps with ElectronCross-Platform Desktop Apps with Electron
Cross-Platform Desktop Apps with ElectronDavid Neal
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.jsMatthew Beale
 
Mobile web-debug
Mobile web-debugMobile web-debug
Mobile web-debugFINN.no
 
Dnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesDnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesashishpd
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldKevin Ball
 
Introduction to React Native & Redux
Introduction to React Native & ReduxIntroduction to React Native & Redux
Introduction to React Native & ReduxBarak Cohen
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobileashishpd
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersGerke Max Preussner
 

What's hot (20)

iOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and TricksiOS Automated Testing with Calabash: Tips and Tricks
iOS Automated Testing with Calabash: Tips and Tricks
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
European Collaboration Summit - SharePoint Framework Angular & Azure FunctionsEuropean Collaboration Summit - SharePoint Framework Angular & Azure Functions
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
 
React Native - DILo Surabaya
React Native -  DILo SurabayaReact Native -  DILo Surabaya
React Native - DILo Surabaya
 
This is presentation at Mitaka.rb #10.
This is presentation at Mitaka.rb #10.This is presentation at Mitaka.rb #10.
This is presentation at Mitaka.rb #10.
 
Selenium
SeleniumSelenium
Selenium
 
Calabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSCalabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOS
 
Automated software testing using Selenium WebDriver
Automated software testing using Selenium WebDriverAutomated software testing using Selenium WebDriver
Automated software testing using Selenium WebDriver
 
Calabash for iPhone apps
Calabash for iPhone appsCalabash for iPhone apps
Calabash for iPhone apps
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Rhodes
RhodesRhodes
Rhodes
 
Cross-Platform Desktop Apps with Electron
Cross-Platform Desktop Apps with ElectronCross-Platform Desktop Apps with Electron
Cross-Platform Desktop Apps with Electron
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.js
 
Mobile web-debug
Mobile web-debugMobile web-debug
Mobile web-debug
 
Dnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesDnn connect dnnmobi-slides
Dnn connect dnnmobi-slides
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework World
 
Introduction to React Native & Redux
Introduction to React Native & ReduxIntroduction to React Native & Redux
Introduction to React Native & Redux
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobile
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
 

Similar to Open Source Automation Tools That Really Work V2

Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and seleniumPatrick Viafore
 
Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015Andrew Krug
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyoneTft Us
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with AppiumSauce Labs
 
初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料Shinichi Ogawa
 
Webdriver io presentation
Webdriver io presentationWebdriver io presentation
Webdriver io presentationJoão Nabais
 
Selenium – Web Browser Automation
Selenium – Web Browser AutomationSelenium – Web Browser Automation
Selenium – Web Browser AutomationPakorn Weecharungsan
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptTroy Miles
 
Android lessons you won't learn in school
Android lessons you won't learn in schoolAndroid lessons you won't learn in school
Android lessons you won't learn in schoolMichael Galpin
 
External JavaScript Widget Development Best Practices
External JavaScript Widget Development Best PracticesExternal JavaScript Widget Development Best Practices
External JavaScript Widget Development Best PracticesVolkan Özçelik
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play frameworkSuman Adak
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合Carl Su
 
Java scriptwidgetdevelopmentjstanbul2012
Java scriptwidgetdevelopmentjstanbul2012Java scriptwidgetdevelopmentjstanbul2012
Java scriptwidgetdevelopmentjstanbul2012Volkan Özçelik
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsBinary Studio
 
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...Dakiry
 

Similar to Open Source Automation Tools That Really Work V2 (20)

Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and selenium
 
Automated ui-testing
Automated ui-testingAutomated ui-testing
Automated ui-testing
 
Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015Selenium Tips & Tricks - StarWest 2015
Selenium Tips & Tricks - StarWest 2015
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
 
orcreatehappyusers
orcreatehappyusersorcreatehappyusers
orcreatehappyusers
 
orcreatehappyusers
orcreatehappyusersorcreatehappyusers
orcreatehappyusers
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with Appium
 
初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料
 
Webdriver io presentation
Webdriver io presentationWebdriver io presentation
Webdriver io presentation
 
Selenium – Web Browser Automation
Selenium – Web Browser AutomationSelenium – Web Browser Automation
Selenium – Web Browser Automation
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
 
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation
 
Selenium testing - Handle Elements in WebDriver
Selenium testing - Handle Elements in WebDriver Selenium testing - Handle Elements in WebDriver
Selenium testing - Handle Elements in WebDriver
 
Android lessons you won't learn in school
Android lessons you won't learn in schoolAndroid lessons you won't learn in school
Android lessons you won't learn in school
 
External JavaScript Widget Development Best Practices
External JavaScript Widget Development Best PracticesExternal JavaScript Widget Development Best Practices
External JavaScript Widget Development Best Practices
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合
 
Java scriptwidgetdevelopmentjstanbul2012
Java scriptwidgetdevelopmentjstanbul2012Java scriptwidgetdevelopmentjstanbul2012
Java scriptwidgetdevelopmentjstanbul2012
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applications
 
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
 

Open Source Automation Tools That Really Work V2

  • 1. Open Source Automation Tools That Really Work (Have Your Cake And Eat It Too!) Thursday, April 19, 2012 11:30am – 12:30pm Kell's Irish Restaurant
  • 2. Agenda • An Doan Twitter: @doan_an Gmail: verybadsushi@gmail.com • Selenium – Web – Mobile • Sikuli – Windows – Web – Mobile
  • 3. Selenium http://seleniumhq.org/ Automate your browser the way the user would see it.
  • 4. What is it? • Selenium 1/RC – Simulated user interactions via the Javascript engine of the browser • Selenium IDE – Firefox plug-in that allows record and playback • Selenium 2/WebDriver – Native user interactions are fired through browser’s own automation support
  • 6. WebDriver • HtmlUnit Driver • Firefox Driver • Internet Explorer Driver • Chrome Driver • Opera Driver • Safari Driver • iPhone Driver • Android Driver • Native Driver
  • 7. Supported Languages • Java • C# • Python • Ruby • php • Perl
  • 8. API Examples • WebDriver driver = new FirefoxDriver(); • driver.get("http://www.google.com"); • WebElement element = driver.findElement(By.name("q")); • element.sendKeys("Cheese!");
  • 9. Locators • By.id() • By.className() • By.name() • By.linkText() • By.partialLinkText() • By.tagName() • By.cssSelector() • By.xpath()
  • 10. Demo 1. Identify Locators 2. Find the WebElement 3. Perform some action 4. Repeat  Firefox + Firebug + Firefinder + User Agent Switcher  Eclipse
  • 11. Sikuli http://sikuli.org/ Sikuli means "God’s Eye" in the language of native Mexicans
  • 12. What is it? Picture Driven Computing Not your ordinary screen scrapper.
  • 13. API Examples App Class • notepad = App.open(“notepad”) • notepad.focus() • notepad.close() • notepad.window()
  • 14. API Examples Spatial Operators • above() • below() • left() • right()
  • 15. API Examples Image Recognition • find, findAll, exists, wait, waitVanish • click, doubleClick, rightClick, hover, dragDrop • type(“text”), paste(“text”) • notepad.window()
  • 16. API Examples Text Recognition • click(“OK”) • find(“Cancel”) • .text()
  • 17. Demo 1. Pick API 2. Screen Capture 3. Repeat
  • 18. Advanced Usage • What if you combine the two? – Prompts, Print, File Upload, Alerts – Cross-Browser Testing, visual-consistency
  • 19. Resources • http://seleniumhq.org/ • http://www.slideshare.net/vgod/practical- sikuli-using-screenshots-for-gui-automation- and-testing • http://www.meetup.com/pdx-se