SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Advanced Selenium Workshop
Frank Cohen, +01 (408) 871-0122, fcohen@pushtotest.com
March 31, 2011
Open Source Test Automation
About PushToTest
‣Our Mission: We Test, For A More Reliable World
‣Make It Easier To Move From Manual To Automated Testing
‣Support Advanced Testing, including Agile, Load, Integration
‣Open Source Testing (OST) For Everyone
2
Open Source Test Automation
Agenda
‣Using Selenium in Java, Python, Ruby
‣Data enabling Selenium scripts
‣Selenium target locators for Ajax applications
‣How To Work with TinyMCE (and other Ajax components) in Selenium
‣Writing Selenium-based Test Object Libraries
3
Open Source Test Automation
Selenium Browser Automation
4
‣Selenium Core
‣Selenium RC
‣Selenium Grid
‣Selenium IDE
‣Selenium Domain Specific Language (DSL)
Open Source Test Automation
What Is Selenium Missing?
‣Selenium Core and RC Require A Browser
‣Selenium IDE Record In Firefox Only, Coding Required To Be Useful,
No Data Enablement
‣Selenium Grid for Functional Testing Only
‣No Reports or Results Analysis
‣No Cloud or Grid Deployment
‣No CI or QC Integration
‣RIA Testing using Ajax, Flex, Flash
5
Open Source Test Automation
Selenium Language Basics
6
‣Page Commands
‣Element Commands
‣Validation Commands
‣Assertion Commands
‣Storage Commands
Open Source Test Automation
Selenium Locators
‣Identifiers
‣loginForm
‣id=loginForm
‣name=loginForm
‣XPath (1.0 from W3C, no support of 2.0 and XQuery)
‣Link Locator
‣link=Continue <a href=”mypage”>Continue</a>
‣DOM APIs
‣dom=document.getElementById('loginForm')
‣CSS Selectors
‣css=input.required[type="text"]
7
Open Source Test Automation
Fun With XPath
8
‣/html/body/table/tr/td/a -> //table/tr/td/a
‣//div[@id='manage_messages_iterator']
‣<div id=”manage_messages_iterator”> blah </div>
‣//tr[@class=’SelectedRow’]/td[1]
‣<table><tr class=”SelectedRow”><td>me 1</td><td>me 2</td></
tr></table>
‣//td[child::text()=’myemail@me.com’]
‣<table><tr><td>myemail@me.com</td</tr></table>
‣//td[contains(child::text(),’@’)]
Open Source Test Automation
Miscellaneous
‣<a href=”continue.html”>Continue</a>
‣link=Continue
‣RFC 1738 example
‣ http://myusername:myuserpassword@myexample.com/blah/blah/blah
9
Open Source Test Automation
String Pattern Matches
‣glob:pattern
‣* represents any sequence of characters
‣? represents any single character
‣Matches against the entire string
‣regexp:regexp
‣Match a string using a regular-expression
‣Includes JavaScript regular-expressions
‣exact:string
‣Equals
‣No pattern prefix means use "glob" pattern
10
Open Source Test Automation
Event Handling and Ajax
‣Selenium Tests Are Event Oriented
‣Not Timing Oriented
‣Ajax Web Objects
‣Complicated Structures
‣Dynamic Values
‣Asynchronous Events
‣No Standards
‣Ajax Example
11
Open Source Test Automation
Fun With JavaScript
‣selenium.type("id", "frank");
‣selenium.type(“id”, “javascript{ new Date().getTime();}”);
‣Class Persistence Within A Page
12
<tr>
<td>assertEval</td>
<td>myfunc = function ( myfile ) { alert(myfile); return 1 }; 1;</td>
<td>1</td>
</tr>
<tr>
<td>assertEval</td>
<td>myfunc(&quot;frankolo&quot;)</td>
<td>1</td>
</tr>
Open Source Test Automation
Looping And Conditionals
‣Great For Ajax Asynchronous Events
13
<tr>
<td>waitForCondition</td>
<td>selenium.browserbot.getCurrentWindow().document.
getElementById('login_button').disabled == false</td>
<td>10000</td>
</tr>
Open Source Test Automation
TinyMCE Editor API Access
‣http://tinymce.moxiecode.com/
14
selenium.browserbot.getCurrentWindow().
document.tinyMCE.execCommand
('mceInsertContent',false,'<b>Hello world!!</b>');
Open Source Test Automation
Distributed Test Deployment
15
Application Under Test
TestMaker Console
TestNode
Selenese Test
Selenium RC SeleniumHtmlUnit Selenese Table Format Interpreter
Selenium API
Open Source Test Automation
16
Script Runners
ScriptRunner Type
Sahi Sahi Test Tool
HAR HTTP Archive
Designer Script Designer Script
Selenium HtmlUnit Browser
Selenium RC IE, Firefox, Chrome
SoapUI SOAP and REST
TestGen4Web Web 1.0 Tests
Mozmill Mozilla XUL Tests
Unit Tests jUnit TestCase
DotNet .NET Tests
Visual Basic VB tests
Command Line Desktop and utils
Open Source Test Automation
Component Approach
17
Data
Production
Log-In
Component
setUp
runTest
tearDown
Application
TestScenario
Test Use Case
Product Search
Order Product
Log-Out
RDBMS DPL
CSV DPL
Custom DPL
Load Test
100 Users 500 Users 1000 Users
Log-In
Component
Component
Development
Database
QA Regression
Database
Load Test
Database Confirm Order
Production
Database
Open Source Test Automation
TestMaker Object Designer
18
‣Point-and-Click Functional Test Record/Playback
‣Record Tests In IE, Chrome, Firefox, Safari, Opera
‣Automatic Ajax Synchronization
‣Drag-and-Drop Data Driven Testing
‣Creates Selenium, Sahi, and Flex Tests
Demo
Next let’s talk about
Open Source Test Automation
Performance Anxiety
‣The Perfect Storm: IE 7, Selenium, Appcelerator
‣Mitigation
19
Research Prepared By
Luis Carlos Lara, llara@pushtotest.com
William Martinez, william@pushtotest.com
Open Source Test Automation
The Problem
20
Ajax App, Selenium RC, TestMaker,
Firefox 3
Ajax App, Selenium RC, TestMaker,
Internet Explorer 7
30 s
30 m
Open Source Test Automation
How Bad?
21
‣The IE 7 JavaScript engine runs up 8-times slower than Firefox 3
‣Appcelerator’s page compiler does not appear to be optimized for IE
7 performance.
‣We observed 30% performance difference in the way Appcelerator
runs text fields between IE 7 and Firefox 3.
‣Some commonly used Selenium functions are not optimized for
performance.
‣We observed a 1798% performance difference by using different
Selenium element locator techniques.
Open Source Test Automation
Test 1: No JavaScript
22
‣Simple (almost no JavaScript) page (Google)
‣The total results of the tests were similar. 3800 ms for Firefox and
4000 ms for IE.
Open Source Test Automation
Caching Impact
‣Firefox Caches JavaScript Objects
‣Repeat for 1 Minute:
‣Plus IE7/Selenium Exceptions (8 times): Permission Denied
23
Open Source Test Automation
Test 2: Ajax Application
‣Javascript heavy site
‣Appcelerator’s Calendar sample that ships with PushToTest
TestMaker 5.2.3
24
Open Source Test Automation
Resource Utilization
25
Firefox 3 IE 7
Open Source Test Automation
‣Selenium Type Command using various element locator functions
‣This may be because of:
‣Slow JavaScript engine in IE.
‣Selenium not optimized for IE.
‣Slow xpath system engine (if any) in IE.
Element Locator
26
Open Source Test Automation
Mitigation
27
‣Run functional tests in Selenium RC with IE 7 and expect very long
functional test times.
‣The test will complete eventually.
‣Do not compare the performance to the same test running on other
browsers.
‣Run functional tests using HTMLUnit with an Internet Explorer profile.
‣Simulates IE functionality while using the faster Rhino JavaScript
engine provided in HTMLUnit.
‣Details on PushToTest support for Selenium are found at
http://selenium.pushtotest.com.
Open Source Test Automation
Best Practices
‣Build Test Components
‣Treat your tests as software
‣Easier to maintain
‣Resilient to application changes
‣Apply JUnit-style Test Techniques
‣Set-up, Run-test, Tear-down methods
‣Write Stateless Test Components
‣Test puts application into the correct state
28
Open Source Test Automation
We Recommend
29
Components
Record -> Script
Dynamic Locators
Work With Devs
Events
Pause
Use Static Values
Storage Values
Test and Trash
Expect The Same
Do Don’t
Open Source Test Automation
Resources
‣http://www.pushtotest.com/download-testmaker6-preview
‣http://seleniumhq.org
‣http://selenium.pushtotest.com
‣http://refcardz.dzone.com/refcardz/getting-started-selenium
‣http://refcardz.dzone.com/refcardz/getting-started-selenium-20
‣http://www.pushtotest.com/products-comparison
30
Open Source Test Automation
Where To Go From Here
‣Please Complete The Evaluation Form
‣And We Will Send You The Slides
‣Watch A Screencast and Tutorial
‣http://www.pushtotest.com/screencastcentral
‣Attend An Open Source Test Workshop
‣http://workshop.pushtotest.com
‣Ask For A Proposal on Licenses, Training, Support, Consulting
‣Troy Amyett, +01 512-750-8769 (USA, Texas),
troy@pushtotest.com
31

Weitere ähnliche Inhalte

Was ist angesagt?

Selenium webdriver interview questions and answers
Selenium webdriver interview questions and answersSelenium webdriver interview questions and answers
Selenium webdriver interview questions and answersITeLearn
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriverAnuraj S.L
 
Selenium notes
Selenium notesSelenium notes
Selenium noteswholcomb
 
selenium training | selenium course | selenium video tutorial | selenium for ...
selenium training | selenium course | selenium video tutorial | selenium for ...selenium training | selenium course | selenium video tutorial | selenium for ...
selenium training | selenium course | selenium video tutorial | selenium for ...Nancy Thomas
 
Selenium Tutorial
Selenium TutorialSelenium Tutorial
Selenium Tutorialprad_123
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using SeleniumWeifeng Zhang
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using SeleniumNaresh Chintalcheru
 
Automation using Javascript
Automation using JavascriptAutomation using Javascript
Automation using Javascriptkhanhdang1214
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScriptSimon Guest
 
Testing with Codeception
Testing with CodeceptionTesting with Codeception
Testing with CodeceptionJeremy Coates
 
Selenium interview questions and answers
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answerskavinilavuG
 
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsNick Belhomme
 
PHP Unit Testing in Yii
PHP Unit Testing in YiiPHP Unit Testing in Yii
PHP Unit Testing in YiiIlPeach
 
Selenium Interview Questions & Answers
Selenium Interview Questions & AnswersSelenium Interview Questions & Answers
Selenium Interview Questions & AnswersTechcanvass
 

Was ist angesagt? (19)

Selenium web driver
Selenium web driverSelenium web driver
Selenium web driver
 
Selenium webdriver interview questions and answers
Selenium webdriver interview questions and answersSelenium webdriver interview questions and answers
Selenium webdriver interview questions and answers
 
Selenium Handbook
Selenium HandbookSelenium Handbook
Selenium Handbook
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 
Selenium notes
Selenium notesSelenium notes
Selenium notes
 
Selenium With Spices
Selenium With SpicesSelenium With Spices
Selenium With Spices
 
selenium training | selenium course | selenium video tutorial | selenium for ...
selenium training | selenium course | selenium video tutorial | selenium for ...selenium training | selenium course | selenium video tutorial | selenium for ...
selenium training | selenium course | selenium video tutorial | selenium for ...
 
Selenium Tutorial
Selenium TutorialSelenium Tutorial
Selenium Tutorial
 
Codeception
CodeceptionCodeception
Codeception
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Automation using Javascript
Automation using JavascriptAutomation using Javascript
Automation using Javascript
 
Automated Web Testing using JavaScript
Automated Web Testing using JavaScriptAutomated Web Testing using JavaScript
Automated Web Testing using JavaScript
 
Testing with Codeception
Testing with CodeceptionTesting with Codeception
Testing with Codeception
 
Selenium interview questions and answers
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answers
 
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
 
PHP Unit Testing in Yii
PHP Unit Testing in YiiPHP Unit Testing in Yii
PHP Unit Testing in Yii
 
Selenium Interview Questions & Answers
Selenium Interview Questions & AnswersSelenium Interview Questions & Answers
Selenium Interview Questions & Answers
 
Selenium Demo
Selenium DemoSelenium Demo
Selenium Demo
 

Andere mochten auch

Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternSargis Sargsyan
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object patternMichael Palotas
 
DSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional testsDSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional testsMikalai Alimenkou
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object PatternDante Briones
 
Selenium grid workshop london 2016
Selenium grid workshop london 2016Selenium grid workshop london 2016
Selenium grid workshop london 2016Marcus Merrell
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsSauce Labs
 

Andere mochten auch (6)

Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
 
DSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional testsDSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional tests
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object Pattern
 
Selenium grid workshop london 2016
Selenium grid workshop london 2016Selenium grid workshop london 2016
Selenium grid workshop london 2016
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 

Ähnlich wie Advanced Selenium Workshop

Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullySpringPeople
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshopcoreyjack
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with seleniumTzirla Rozental
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersAjit Jadhav
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS appAleks Zinevych
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsAbhijeet Vaikar
 
Selenium Testing Training in Bangalore
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalorerajkamal560066
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in Sandeep Tol
 
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Puneet Kala
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using seleniumTờ Rang
 
Component Based Unit Testing ADF with Selenium
Component Based Unit Testing ADF with SeleniumComponent Based Unit Testing ADF with Selenium
Component Based Unit Testing ADF with SeleniumRichard Olrichs
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 
Testing Ajax Web Applications
Testing Ajax Web ApplicationsTesting Ajax Web Applications
Testing Ajax Web ApplicationsTed Husted
 
Enterprise Ready Test Execution Platform for Mobile Apps
Enterprise Ready Test Execution Platform for Mobile AppsEnterprise Ready Test Execution Platform for Mobile Apps
Enterprise Ready Test Execution Platform for Mobile AppsVijayan Srinivasan
 
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)Tobias Schneck
 

Ähnlich wie Advanced Selenium Workshop (20)

Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium Successfully
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshop
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And Answers
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
 
Selenium Testing Training in Bangalore
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalore
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
Selenium-Webdriver With PHPUnit Automation test for Joomla CMS!
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
Component Based Unit Testing ADF with Selenium
Component Based Unit Testing ADF with SeleniumComponent Based Unit Testing ADF with Selenium
Component Based Unit Testing ADF with Selenium
 
Automated Testing ADF with Selenium
Automated Testing ADF with SeleniumAutomated Testing ADF with Selenium
Automated Testing ADF with Selenium
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
Testing Ajax Web Applications
Testing Ajax Web ApplicationsTesting Ajax Web Applications
Testing Ajax Web Applications
 
Enterprise Ready Test Execution Platform for Mobile Apps
Enterprise Ready Test Execution Platform for Mobile AppsEnterprise Ready Test Execution Platform for Mobile Apps
Enterprise Ready Test Execution Platform for Mobile Apps
 
Selenium
SeleniumSelenium
Selenium
 
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
 

Mehr von Clever Moe

6 solutions to ad costs going up while results are flat.
6 solutions to ad costs going up while results are flat.6 solutions to ad costs going up while results are flat.
6 solutions to ad costs going up while results are flat.Clever Moe
 
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...1.6 billion people are on Facebook, how will you get to the 1 that buys your ...
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...Clever Moe
 
How do I get good at Twitter Ads?
How do I get good at Twitter Ads?How do I get good at Twitter Ads?
How do I get good at Twitter Ads?Clever Moe
 
Marketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsMarketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsClever Moe
 
Local customers are out there, just where
Local customers are out there, just whereLocal customers are out there, just where
Local customers are out there, just whereClever Moe
 
Do i need an ad agency to be good at facebook ads
Do i need an ad agency to be good at facebook adsDo i need an ad agency to be good at facebook ads
Do i need an ad agency to be good at facebook adsClever Moe
 
I know facebook ads, how do i expand to twitter, linked in, youtube
I know facebook ads, how do i expand to twitter, linked in, youtubeI know facebook ads, how do i expand to twitter, linked in, youtube
I know facebook ads, how do i expand to twitter, linked in, youtubeClever Moe
 
5 solutions to the digital ad networks unsolvable puzzle
5 solutions to the digital ad networks unsolvable puzzle5 solutions to the digital ad networks unsolvable puzzle
5 solutions to the digital ad networks unsolvable puzzleClever Moe
 
Instagram ads look super complicated, what can i do in 15 minutes?
Instagram ads look super complicated, what can i do in 15 minutes?Instagram ads look super complicated, what can i do in 15 minutes?
Instagram ads look super complicated, what can i do in 15 minutes?Clever Moe
 
How to get 1,000 people to look at your product for $1,000
How to get 1,000 people to look at your product for $1,000How to get 1,000 people to look at your product for $1,000
How to get 1,000 people to look at your product for $1,000Clever Moe
 
Defending your ad budget from Facebook and LinkedIn AIs
Defending your ad budget from Facebook and LinkedIn AIsDefending your ad budget from Facebook and LinkedIn AIs
Defending your ad budget from Facebook and LinkedIn AIsClever Moe
 
Do i need an ad agency to be good at Facebook ads?
Do i need an ad agency to be good at Facebook ads?Do i need an ad agency to be good at Facebook ads?
Do i need an ad agency to be good at Facebook ads?Clever Moe
 
Marketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsMarketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsClever Moe
 
Making With A Disney Imagineer and Muppeteer
Making With A Disney Imagineer and MuppeteerMaking With A Disney Imagineer and Muppeteer
Making With A Disney Imagineer and MuppeteerClever Moe
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Clever Moe
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationClever Moe
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationClever Moe
 
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...Clever Moe
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudClever Moe
 
Running JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloudRunning JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloudClever Moe
 

Mehr von Clever Moe (20)

6 solutions to ad costs going up while results are flat.
6 solutions to ad costs going up while results are flat.6 solutions to ad costs going up while results are flat.
6 solutions to ad costs going up while results are flat.
 
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...1.6 billion people are on Facebook, how will you get to the 1 that buys your ...
1.6 billion people are on Facebook, how will you get to the 1 that buys your ...
 
How do I get good at Twitter Ads?
How do I get good at Twitter Ads?How do I get good at Twitter Ads?
How do I get good at Twitter Ads?
 
Marketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsMarketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy steps
 
Local customers are out there, just where
Local customers are out there, just whereLocal customers are out there, just where
Local customers are out there, just where
 
Do i need an ad agency to be good at facebook ads
Do i need an ad agency to be good at facebook adsDo i need an ad agency to be good at facebook ads
Do i need an ad agency to be good at facebook ads
 
I know facebook ads, how do i expand to twitter, linked in, youtube
I know facebook ads, how do i expand to twitter, linked in, youtubeI know facebook ads, how do i expand to twitter, linked in, youtube
I know facebook ads, how do i expand to twitter, linked in, youtube
 
5 solutions to the digital ad networks unsolvable puzzle
5 solutions to the digital ad networks unsolvable puzzle5 solutions to the digital ad networks unsolvable puzzle
5 solutions to the digital ad networks unsolvable puzzle
 
Instagram ads look super complicated, what can i do in 15 minutes?
Instagram ads look super complicated, what can i do in 15 minutes?Instagram ads look super complicated, what can i do in 15 minutes?
Instagram ads look super complicated, what can i do in 15 minutes?
 
How to get 1,000 people to look at your product for $1,000
How to get 1,000 people to look at your product for $1,000How to get 1,000 people to look at your product for $1,000
How to get 1,000 people to look at your product for $1,000
 
Defending your ad budget from Facebook and LinkedIn AIs
Defending your ad budget from Facebook and LinkedIn AIsDefending your ad budget from Facebook and LinkedIn AIs
Defending your ad budget from Facebook and LinkedIn AIs
 
Do i need an ad agency to be good at Facebook ads?
Do i need an ad agency to be good at Facebook ads?Do i need an ad agency to be good at Facebook ads?
Do i need an ad agency to be good at Facebook ads?
 
Marketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy stepsMarketing faster than your competitors in 5 easy steps
Marketing faster than your competitors in 5 easy steps
 
Making With A Disney Imagineer and Muppeteer
Making With A Disney Imagineer and MuppeteerMaking With A Disney Imagineer and Muppeteer
Making With A Disney Imagineer and Muppeteer
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
 
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
 
Running JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloudRunning JMeter Tests In Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloud
 

Kürzlich hochgeladen

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Kürzlich hochgeladen (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Advanced Selenium Workshop

  • 1. Advanced Selenium Workshop Frank Cohen, +01 (408) 871-0122, fcohen@pushtotest.com March 31, 2011
  • 2. Open Source Test Automation About PushToTest ‣Our Mission: We Test, For A More Reliable World ‣Make It Easier To Move From Manual To Automated Testing ‣Support Advanced Testing, including Agile, Load, Integration ‣Open Source Testing (OST) For Everyone 2
  • 3. Open Source Test Automation Agenda ‣Using Selenium in Java, Python, Ruby ‣Data enabling Selenium scripts ‣Selenium target locators for Ajax applications ‣How To Work with TinyMCE (and other Ajax components) in Selenium ‣Writing Selenium-based Test Object Libraries 3
  • 4. Open Source Test Automation Selenium Browser Automation 4 ‣Selenium Core ‣Selenium RC ‣Selenium Grid ‣Selenium IDE ‣Selenium Domain Specific Language (DSL)
  • 5. Open Source Test Automation What Is Selenium Missing? ‣Selenium Core and RC Require A Browser ‣Selenium IDE Record In Firefox Only, Coding Required To Be Useful, No Data Enablement ‣Selenium Grid for Functional Testing Only ‣No Reports or Results Analysis ‣No Cloud or Grid Deployment ‣No CI or QC Integration ‣RIA Testing using Ajax, Flex, Flash 5
  • 6. Open Source Test Automation Selenium Language Basics 6 ‣Page Commands ‣Element Commands ‣Validation Commands ‣Assertion Commands ‣Storage Commands
  • 7. Open Source Test Automation Selenium Locators ‣Identifiers ‣loginForm ‣id=loginForm ‣name=loginForm ‣XPath (1.0 from W3C, no support of 2.0 and XQuery) ‣Link Locator ‣link=Continue <a href=”mypage”>Continue</a> ‣DOM APIs ‣dom=document.getElementById('loginForm') ‣CSS Selectors ‣css=input.required[type="text"] 7
  • 8. Open Source Test Automation Fun With XPath 8 ‣/html/body/table/tr/td/a -> //table/tr/td/a ‣//div[@id='manage_messages_iterator'] ‣<div id=”manage_messages_iterator”> blah </div> ‣//tr[@class=’SelectedRow’]/td[1] ‣<table><tr class=”SelectedRow”><td>me 1</td><td>me 2</td></ tr></table> ‣//td[child::text()=’myemail@me.com’] ‣<table><tr><td>myemail@me.com</td</tr></table> ‣//td[contains(child::text(),’@’)]
  • 9. Open Source Test Automation Miscellaneous ‣<a href=”continue.html”>Continue</a> ‣link=Continue ‣RFC 1738 example ‣ http://myusername:myuserpassword@myexample.com/blah/blah/blah 9
  • 10. Open Source Test Automation String Pattern Matches ‣glob:pattern ‣* represents any sequence of characters ‣? represents any single character ‣Matches against the entire string ‣regexp:regexp ‣Match a string using a regular-expression ‣Includes JavaScript regular-expressions ‣exact:string ‣Equals ‣No pattern prefix means use "glob" pattern 10
  • 11. Open Source Test Automation Event Handling and Ajax ‣Selenium Tests Are Event Oriented ‣Not Timing Oriented ‣Ajax Web Objects ‣Complicated Structures ‣Dynamic Values ‣Asynchronous Events ‣No Standards ‣Ajax Example 11
  • 12. Open Source Test Automation Fun With JavaScript ‣selenium.type("id", "frank"); ‣selenium.type(“id”, “javascript{ new Date().getTime();}”); ‣Class Persistence Within A Page 12 <tr> <td>assertEval</td> <td>myfunc = function ( myfile ) { alert(myfile); return 1 }; 1;</td> <td>1</td> </tr> <tr> <td>assertEval</td> <td>myfunc(&quot;frankolo&quot;)</td> <td>1</td> </tr>
  • 13. Open Source Test Automation Looping And Conditionals ‣Great For Ajax Asynchronous Events 13 <tr> <td>waitForCondition</td> <td>selenium.browserbot.getCurrentWindow().document. getElementById('login_button').disabled == false</td> <td>10000</td> </tr>
  • 14. Open Source Test Automation TinyMCE Editor API Access ‣http://tinymce.moxiecode.com/ 14 selenium.browserbot.getCurrentWindow(). document.tinyMCE.execCommand ('mceInsertContent',false,'<b>Hello world!!</b>');
  • 15. Open Source Test Automation Distributed Test Deployment 15 Application Under Test TestMaker Console TestNode Selenese Test Selenium RC SeleniumHtmlUnit Selenese Table Format Interpreter Selenium API
  • 16. Open Source Test Automation 16 Script Runners ScriptRunner Type Sahi Sahi Test Tool HAR HTTP Archive Designer Script Designer Script Selenium HtmlUnit Browser Selenium RC IE, Firefox, Chrome SoapUI SOAP and REST TestGen4Web Web 1.0 Tests Mozmill Mozilla XUL Tests Unit Tests jUnit TestCase DotNet .NET Tests Visual Basic VB tests Command Line Desktop and utils
  • 17. Open Source Test Automation Component Approach 17 Data Production Log-In Component setUp runTest tearDown Application TestScenario Test Use Case Product Search Order Product Log-Out RDBMS DPL CSV DPL Custom DPL Load Test 100 Users 500 Users 1000 Users Log-In Component Component Development Database QA Regression Database Load Test Database Confirm Order Production Database
  • 18. Open Source Test Automation TestMaker Object Designer 18 ‣Point-and-Click Functional Test Record/Playback ‣Record Tests In IE, Chrome, Firefox, Safari, Opera ‣Automatic Ajax Synchronization ‣Drag-and-Drop Data Driven Testing ‣Creates Selenium, Sahi, and Flex Tests Demo
  • 19. Next let’s talk about Open Source Test Automation Performance Anxiety ‣The Perfect Storm: IE 7, Selenium, Appcelerator ‣Mitigation 19 Research Prepared By Luis Carlos Lara, llara@pushtotest.com William Martinez, william@pushtotest.com
  • 20. Open Source Test Automation The Problem 20 Ajax App, Selenium RC, TestMaker, Firefox 3 Ajax App, Selenium RC, TestMaker, Internet Explorer 7 30 s 30 m
  • 21. Open Source Test Automation How Bad? 21 ‣The IE 7 JavaScript engine runs up 8-times slower than Firefox 3 ‣Appcelerator’s page compiler does not appear to be optimized for IE 7 performance. ‣We observed 30% performance difference in the way Appcelerator runs text fields between IE 7 and Firefox 3. ‣Some commonly used Selenium functions are not optimized for performance. ‣We observed a 1798% performance difference by using different Selenium element locator techniques.
  • 22. Open Source Test Automation Test 1: No JavaScript 22 ‣Simple (almost no JavaScript) page (Google) ‣The total results of the tests were similar. 3800 ms for Firefox and 4000 ms for IE.
  • 23. Open Source Test Automation Caching Impact ‣Firefox Caches JavaScript Objects ‣Repeat for 1 Minute: ‣Plus IE7/Selenium Exceptions (8 times): Permission Denied 23
  • 24. Open Source Test Automation Test 2: Ajax Application ‣Javascript heavy site ‣Appcelerator’s Calendar sample that ships with PushToTest TestMaker 5.2.3 24
  • 25. Open Source Test Automation Resource Utilization 25 Firefox 3 IE 7
  • 26. Open Source Test Automation ‣Selenium Type Command using various element locator functions ‣This may be because of: ‣Slow JavaScript engine in IE. ‣Selenium not optimized for IE. ‣Slow xpath system engine (if any) in IE. Element Locator 26
  • 27. Open Source Test Automation Mitigation 27 ‣Run functional tests in Selenium RC with IE 7 and expect very long functional test times. ‣The test will complete eventually. ‣Do not compare the performance to the same test running on other browsers. ‣Run functional tests using HTMLUnit with an Internet Explorer profile. ‣Simulates IE functionality while using the faster Rhino JavaScript engine provided in HTMLUnit. ‣Details on PushToTest support for Selenium are found at http://selenium.pushtotest.com.
  • 28. Open Source Test Automation Best Practices ‣Build Test Components ‣Treat your tests as software ‣Easier to maintain ‣Resilient to application changes ‣Apply JUnit-style Test Techniques ‣Set-up, Run-test, Tear-down methods ‣Write Stateless Test Components ‣Test puts application into the correct state 28
  • 29. Open Source Test Automation We Recommend 29 Components Record -> Script Dynamic Locators Work With Devs Events Pause Use Static Values Storage Values Test and Trash Expect The Same Do Don’t
  • 30. Open Source Test Automation Resources ‣http://www.pushtotest.com/download-testmaker6-preview ‣http://seleniumhq.org ‣http://selenium.pushtotest.com ‣http://refcardz.dzone.com/refcardz/getting-started-selenium ‣http://refcardz.dzone.com/refcardz/getting-started-selenium-20 ‣http://www.pushtotest.com/products-comparison 30
  • 31. Open Source Test Automation Where To Go From Here ‣Please Complete The Evaluation Form ‣And We Will Send You The Slides ‣Watch A Screencast and Tutorial ‣http://www.pushtotest.com/screencastcentral ‣Attend An Open Source Test Workshop ‣http://workshop.pushtotest.com ‣Ask For A Proposal on Licenses, Training, Support, Consulting ‣Troy Amyett, +01 512-750-8769 (USA, Texas), troy@pushtotest.com 31