Your SlideShare is downloading. ×
0
Selenium: Test Automation of      Web Application Weekend Workshop for QA professionals          Trainer: Dipesh Bhatewara...
Introduction               trainings@digitalinfobytes.com                                            2
Why Test Automation                 trainings@digitalinfobytes.com                                              3
Advantages of Test Automation• Frequent and quick regression testing• Rapid feedback to developers• Virtually unlimited it...
When to automate?• Long projects – regression• Frequent releases and extreme programming• Quick feedback to developer – Sa...
Web Testing: Approaches• GUI Automation  – locating by coordinates  – using generic OS mouse/keyboard events  – suitable f...
Introduction to Selenium•   Open Source Test Automation Framework•   Developed by ThoughtWorks and Google•   Robust set of...
Selenium Components•   Selenium IDE•   Selenium RC•   Selenium Grid•   WebDriver (Selenium 2.0)                           ...
Selenium IDE• Firefox plug-in• Integrated Development Environment for Selenium  Tests.• Provides record and playback funct...
Installation• Download IDE from -  http://seleniumhq.org/download/• Add as Add On to Firefox• Launch it from Tools -> Sele...
IDE explained          • Record/Play          • Test Case          • Test Suite          • Command -Target –            Va...
DEMO• Click on Etsy logo and verify title• Search for Vintage shoe and verify  first item’s name• Run as suite            ...
Assignment - IDE•   Etsy.com•   Navigate to Category – Furniture -> Chair•   Click on the first item in the result list•  ...
Assignment IDE Test Suite• Click on Kids section on left, on Kids page click  on Tweet button, Switch to new window, Sign ...
Commonly Used Selenium                CommandsAction Commands• Open(Link) – This Command will open the specified page• cli...
Commonly Used Selenium               CommandsStore, Check, and Wait• isElementPreset(locator) – Checks if an element is pr...
Object Identification• Using HTML properties of the Object  – Name  – Id  – Class• Using Xpaths (DOM address)  – XPath is ...
Xpath Explained                  trainings@digitalinfobytes.com                                              18
FireBug installation & DEMO                     trainings@digitalinfobytes.com                                            ...
Assignment• Etsy.com• Find Unique HTML Ids as well as Xpaths for  below  – Regsiter Button  – Search text box  – Fashion l...
Handy tool for Xpaths• Fire Path (Lets use this)• Xpather                              trainings@digitalinfobytes.com     ...
OOPS Concepts•   Objects•   Classes•   Data abstraction•   Inheritance•   Polymorphism                              traini...
Sample Java Program                 trainings@digitalinfobytes.com                                             23
Selenium RC• A server, written in Java and so available on all  the platforms.• Acts as a proxy for web requests from test...
Selenium RC components• Selenium Server: launches and kills browsers,  interprets and runs the Selenese commands  passed f...
trainings@digitalinfobytes.com                            26
Install & Start• Ensure that JDK is present on the machine and  is in the class path.• Downloaded Selenium RC from  http:/...
Change Directory to Selenium Server                    Start selenium Server                                trainings@digi...
Eclipse and Project setup• Launch Eclipse• Create Java project• Import selenium-client library• Add JUnit plugin to eclips...
Handling different types of elements              & Demo•   Text Box•   List•   Check Box•   Radio Buttons                ...
Assignment• Create a fresh project in Eclipse• Add a test case to register a new user at  Etsy.com                        ...
More Assignments• Test User Sign In – Valid & Error• Test Add To Cart and verify the country can be  changed on the cart p...
End of Day 1               trainings@digitalinfobytes.com                                           33
Day 2        trainings@digitalinfobytes.com                                    34
History 2004        2007      2009    2011Selenium   WebDriver                          Selenium2                         ...
WebDriver• Is a Self Contained Library• Uses browser capabilities over injected javascripts• “Best fit” technology• Clean ...
Selenium Server in Selenium2• Replicate Selenium RC functionalities• Remote WebDriver• Selenium Grid 2                    ...
WebDriverWebDriver Interface          Internet             HTMLFirefox              Chrome             Opera    Andriod   ...
“BestFit”s• Internet Explorer Driver accesses the browser via the COM  layer using some automation hooks that Microsoft ha...
WebDriver            trainings@digitalinfobytes.com                                        40
Sample Code for Demonstration                      trainings@digitalinfobytes.com                                         ...
Let’s setup a project• Download• New Project• Import selenium jar• Add class imported from IDE (as Junit4  Webdriver)• Run...
Assignment – Import Class From IDE             and Run                         trainings@digitalinfobytes.com             ...
Let’s code• Add a new test class to test Etsy.com• Launch the site                                     trainings@digitalin...
Locator Strategies• ID    – webDriver.findElement(By.id("logo"));• Name    – webDriver.findElement(By.name("q"));• Tag Nam...
Page Interactions•   webElement.click()•   webElement.sendKeys(...)•   webElement.submit()•   Actions class -> Mouse Event...
Demo of Etsy Registration with           Firefox                        trainings@digitalinfobytes.com                    ...
Assignment             trainings@digitalinfobytes.com                                         48
Demo: Run Same Test On Different           Browser                        trainings@digitalinfobytes.com                  ...
Assignment: Run earlier assignment       on another browser                         trainings@digitalinfobytes.com        ...
Pop-up/Alert handling• Pop up window  – driver.switchTo().window(windowHan    dle);• Alerts  – alert = driver.switchTo().a...
Sample Code              trainings@digitalinfobytes.com                                          52
Demo• http://www.blazonry.com/javascript/windows  .php                                 trainings@digitalinfobytes.com     ...
Assignment             trainings@digitalinfobytes.com                                         54
Additional useful commands• Polling the DOM for N seconds   – webDriver.manage().timeouts().implicitlyWai     t(30, TimeUn...
Backward Compatibility with             Selenium 1Selenium selenium = newWebDriverBackedSelenium(webDriver,“http://osdc.co...
Reference Sites• Xpath  – http://hedleyproctor.com/2011/05/tutorial-    writing-xpath-selectors-for-selenium-tests/       ...
Upcoming SlideShare
Loading in...5
×

Basic Selenium Training

6,187

Published on

http://trainings.digitalinfobytes.com/

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,187
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
273
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Basic Selenium Training"

  1. 1. Selenium: Test Automation of Web Application Weekend Workshop for QA professionals Trainer: Dipesh Bhatewara Date: 23rd June 2012 trainings@digitalinfobytes.com
  2. 2. Introduction trainings@digitalinfobytes.com 2
  3. 3. Why Test Automation trainings@digitalinfobytes.com 3
  4. 4. Advantages of Test Automation• Frequent and quick regression testing• Rapid feedback to developers• Virtually unlimited iterations of test case execution• Support for Agile and extreme development methodologies• Increased test coverage• Enables QA team to utilize bandwidth in exploratory testing. trainings@digitalinfobytes.com 4
  5. 5. When to automate?• Long projects – regression• Frequent releases and extreme programming• Quick feedback to developer – Sanity trainings@digitalinfobytes.com 5
  6. 6. Web Testing: Approaches• GUI Automation – locating by coordinates – using generic OS mouse/keyboard events – suitable for any GUI app• HTML/DOM Automation – parsing HTML – evaluating HTML elements (forms, input...) – DOM as presentation of application – DOM traversal – interacting with DOM tree (target.dispatchEvent,...) trainings@digitalinfobytes.com 6
  7. 7. Introduction to Selenium• Open Source Test Automation Framework• Developed by ThoughtWorks and Google• Robust set of tools for web-based applications• On multiple browsers• On multiple Operating Systems• Support many languages, including Ruby, Python, Java, c# and so on trainings@digitalinfobytes.com 7
  8. 8. Selenium Components• Selenium IDE• Selenium RC• Selenium Grid• WebDriver (Selenium 2.0) trainings@digitalinfobytes.com 8
  9. 9. Selenium IDE• Firefox plug-in• Integrated Development Environment for Selenium Tests.• Provides record and playback functionality.• Provides the ability to debug test scripts.• Auto complete common selenium commands.• Export tests in different formats like HTML, Java, Ruby, Python and so on. trainings@digitalinfobytes.com 9
  10. 10. Installation• Download IDE from - http://seleniumhq.org/download/• Add as Add On to Firefox• Launch it from Tools -> Selenium IDE trainings@digitalinfobytes.com 10
  11. 11. IDE explained • Record/Play • Test Case • Test Suite • Command -Target – Value • Export/Import trainings@digitalinfobytes.com 11
  12. 12. DEMO• Click on Etsy logo and verify title• Search for Vintage shoe and verify first item’s name• Run as suite trainings@digitalinfobytes.com 12
  13. 13. Assignment - IDE• Etsy.com• Navigate to Category – Furniture -> Chair• Click on the first item in the result list• Verify the item details page is displayed• Assert the Price of the product shown on this page trainings@digitalinfobytes.com 13
  14. 14. Assignment IDE Test Suite• Click on Kids section on left, on Kids page click on Tweet button, Switch to new window, Sign in with wrong username and password to twitter and check the Error.• Click on ‘Accessories’ Category and test the pagination functionality• Save the Test Suite• Run as Test Suite trainings@digitalinfobytes.com 14
  15. 15. Commonly Used Selenium CommandsAction Commands• Open(Link) – This Command will open the specified page• click(Locator) – This Command will Click at specified target• check(Locator) – Toggles the checked value of a checkbox• type(Locator, value) –Sends text input to an element• select (Locator, value)– This will select the specified item in a listNote: most action commands in Selenium IDE also have a duplicatecommand with the AndWait suffix. When these are used the actionis performed and a page load is expected and the command will notcomplete until the page has loaded or the timeout is reached. trainings@digitalinfobytes.com 15
  16. 16. Commonly Used Selenium CommandsStore, Check, and Wait• isElementPreset(locator) – Checks if an element is present on the page• store(expression, variableName) – Allows you to temporarily store a value• verify(pattern) – performs verification and skip execution, if fails.• assert(pattern) – performs verification and stop execution, if fails.• waitFor(pattern) – Waits until the value matches the specified value or the timeout.Note: These Commands are heart of Selenium ,as these deal withverifiacation and validation part. There are variations available inthese commands eg. waitForPageToLoad(), waitForPopUp() trainings@digitalinfobytes.com 16
  17. 17. Object Identification• Using HTML properties of the Object – Name – Id – Class• Using Xpaths (DOM address) – XPath is a language for finding information in an XML document trainings@digitalinfobytes.com 17
  18. 18. Xpath Explained trainings@digitalinfobytes.com 18
  19. 19. FireBug installation & DEMO trainings@digitalinfobytes.com 19
  20. 20. Assignment• Etsy.com• Find Unique HTML Ids as well as Xpaths for below – Regsiter Button – Search text box – Fashion link – 3rd Item in second row on home page trainings@digitalinfobytes.com 20
  21. 21. Handy tool for Xpaths• Fire Path (Lets use this)• Xpather trainings@digitalinfobytes.com 21
  22. 22. OOPS Concepts• Objects• Classes• Data abstraction• Inheritance• Polymorphism trainings@digitalinfobytes.com 22
  23. 23. Sample Java Program trainings@digitalinfobytes.com 23
  24. 24. Selenium RC• A server, written in Java and so available on all the platforms.• Acts as a proxy for web requests from tests.• Client libraries for many popular languages.• Bundles Selenium Core and automatically loads into the browser trainings@digitalinfobytes.com 24
  25. 25. Selenium RC components• Selenium Server: launches and kills browsers, interprets and runs the Selenese commands passed from the test program, and acts as an HTTP proxy, intercepting and verifying HTTP messages passed between the browser and the AUT.• Client Libraries: provide the interface between each programming language and the Selenium RC Server. trainings@digitalinfobytes.com 25
  26. 26. trainings@digitalinfobytes.com 26
  27. 27. Install & Start• Ensure that JDK is present on the machine and is in the class path.• Downloaded Selenium RC from http://seleniumhq.org/download/• Unzip to any directory on your file system.• Change directory to the Selenium Server on the command line or terminal.• Start Selenium Server. trainings@digitalinfobytes.com 27
  28. 28. Change Directory to Selenium Server Start selenium Server trainings@digitalinfobytes.com 28
  29. 29. Eclipse and Project setup• Launch Eclipse• Create Java project• Import selenium-client library• Add JUnit plugin to eclipse• Export the code of your Selenium IDE assignment as Selenium RC Junit4 code• Add the exported java file to the project and run trainings@digitalinfobytes.com 29
  30. 30. Handling different types of elements & Demo• Text Box• List• Check Box• Radio Buttons trainings@digitalinfobytes.com 30
  31. 31. Assignment• Create a fresh project in Eclipse• Add a test case to register a new user at Etsy.com trainings@digitalinfobytes.com 31
  32. 32. More Assignments• Test User Sign In – Valid & Error• Test Add To Cart and verify the country can be changed on the cart page.• Run them as suite from Eclipse trainings@digitalinfobytes.com 32
  33. 33. End of Day 1 trainings@digitalinfobytes.com 33
  34. 34. Day 2 trainings@digitalinfobytes.com 34
  35. 35. History 2004 2007 2009 2011Selenium WebDriver Selenium2 trainings@digitalinfobytes.com 35
  36. 36. WebDriver• Is a Self Contained Library• Uses browser capabilities over injected javascripts• “Best fit” technology• Clean & Object Oriented API• Easy to maintain• Faster than Selenium 1• Tightly bound to the browser, no need of Selenium Server• Bindings : Java, C#, Python, Ruby• Android and iPhone support trainings@digitalinfobytes.com 36
  37. 37. Selenium Server in Selenium2• Replicate Selenium RC functionalities• Remote WebDriver• Selenium Grid 2 trainings@digitalinfobytes.com 37
  38. 38. WebDriverWebDriver Interface Internet HTMLFirefox Chrome Opera Andriod iPhone Explorer UnitDriver Driver Driver Driver Driver Driver Driver trainings@digitalinfobytes.com 38
  39. 39. “BestFit”s• Internet Explorer Driver accesses the browser via the COM layer using some automation hooks that Microsoft have put there and maintain. The core code is written in C++.• FirefoxDriver is a Firefox addon that accesses items at the Chrome layer• ChromeDriver is a Chrome Extension that allows drive Chrome.• The Android driver is an APK that allows us to drive the Web View and the same with iPhone trainings@digitalinfobytes.com 39
  40. 40. WebDriver trainings@digitalinfobytes.com 40
  41. 41. Sample Code for Demonstration trainings@digitalinfobytes.com 41
  42. 42. Let’s setup a project• Download• New Project• Import selenium jar• Add class imported from IDE (as Junit4 Webdriver)• Run the tests trainings@digitalinfobytes.com 42
  43. 43. Assignment – Import Class From IDE and Run trainings@digitalinfobytes.com 43
  44. 44. Let’s code• Add a new test class to test Etsy.com• Launch the site trainings@digitalinfobytes.com 44
  45. 45. Locator Strategies• ID – webDriver.findElement(By.id("logo"));• Name – webDriver.findElement(By.name("q"));• Tag Name – webDriver.findElement(By.tagName("H1"));• Class name – webDriver.findElements(By.className("sponsor_logos"));• XPath – webDriver.findElement(By.xpath("//section*@id=‘miniconfs’+/a*2+"));• Link Text – webDriver.findElements(By.linkText("About"));• Partial Link Text – webDriver.findElement(By.partialLinkText("visitcanberra")); trainings@digitalinfobytes.com 45
  46. 46. Page Interactions• webElement.click()• webElement.sendKeys(...)• webElement.submit()• Actions class -> Mouse Events / Drag and Drop trainings@digitalinfobytes.com 46
  47. 47. Demo of Etsy Registration with Firefox trainings@digitalinfobytes.com 47
  48. 48. Assignment trainings@digitalinfobytes.com 48
  49. 49. Demo: Run Same Test On Different Browser trainings@digitalinfobytes.com 49
  50. 50. Assignment: Run earlier assignment on another browser trainings@digitalinfobytes.com 50
  51. 51. Pop-up/Alert handling• Pop up window – driver.switchTo().window(windowHan dle);• Alerts – alert = driver.switchTo().alert(); – alert.Accept(); – alert.Dismiss(); trainings@digitalinfobytes.com 51
  52. 52. Sample Code trainings@digitalinfobytes.com 52
  53. 53. Demo• http://www.blazonry.com/javascript/windows .php trainings@digitalinfobytes.com 53
  54. 54. Assignment trainings@digitalinfobytes.com 54
  55. 55. Additional useful commands• Polling the DOM for N seconds – webDriver.manage().timeouts().implicitlyWai t(30, TimeUnit.SECONDS);• Testing CSS properties – webElement.getCssValue(“height”);• Javascript execution – JavascriptExecutor js = (JavascriptExecutor) webDriver; – Long value = (Long) js.executeScript("return window.scrollY");• Navigation – Navigation nav = webDriver.navigate(); – nav.back(); / nav.forward(); nav.to(“url”); trainings@digitalinfobytes.com 55
  56. 56. Backward Compatibility with Selenium 1Selenium selenium = newWebDriverBackedSelenium(webDriver,“http://osdc.com.au”);selenium.open("http://osdc.com.au");selenium.click("id=follow_twitter");selenium.waitForPageToLoad("10000");WebDriver webDriver =((WebDriverBackedSelenium)selenium).getUnderlyingWebDriver(); trainings@digitalinfobytes.com 56
  57. 57. Reference Sites• Xpath – http://hedleyproctor.com/2011/05/tutorial- writing-xpath-selectors-for-selenium-tests/ trainings@digitalinfobytes.com 57
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×