Version: Beta

Last Update:  26/Apr/2017

This blog is dedicated to all the QA / QE / Automation / Testing engineers out there , fighting bravely against all odds while trying to automate each and every test cases possible …. day in and day out. 

               Today ( 28th Jan ) is my b’day ( turned 35 today; but I feel young just like Dev Anand and Rocky Balboa Stallon ). As being auspicious day for myself; thought of sharing tons of information about Selenium Automation Tool which I’m gathering over last few years ( thanks to Google ) and which is laying in my Google docs. 

              What’s motive behind this blog ?  I don’t want to be similar to majority of the Indian Politicians who were & are looting Indian middle class and adding billions to their “Swiss” bank accounts since 1947.  http://en.wikipedia.org/wiki/Indian_black_money .      

                 Also my schools teachers always taught us “knowledge is the only thing in this world; which grows when you shares with others”.  Thus giving back what I had earned over the years with QA community

              This blog is mainly for Java Engineers.  Why Java ? Do search in any country’s any job sites and you will come to know how Java dominates the Selenium Automation world

             I have started my automation journey with Silk Test Tool in 2002 and have started using Selenium since 2006 when I was with Yahoo! Bangalore. Since then my motto is “Automate whatever you can and run automated scripts as many times as you can

Mark Watney Quote from The Martian movie “At some point, everything’s gonna go south on you and you’re going to say, this is it. This is how I end. Now you can either accept that, or you can get to work. That’s all it is. You just begin. You do the math. You solve one problem and you solve the next one, and then the next. And If you solve enough problems, you get to come home.” [ so true ; in everyday’s work of Automation Engineer ]

[ Must Read ]

What Are Your Automated Tests Really Worth ? 

A Test Pyramid Heresy – By John Ferguson Smart

Living Documentation

http://blog.mojotech.com/why-you-should-write-living-documentation/

http://blog.mojotech.com/how-you-should-write-living-documentation/

http://blog.mojotech.com/how-you-can-implement-living-documentation-part-three-in-a-series/

Why Automated Testing ??  ( Refer to sections Why Testing ?  Safer Refactoring , Documentation )

Info is divided into below categories

  1. START
  2. Selenium Training Topics
  3. Locators
  4. IDE
  5. WebDriver
  6. Junit / TestNG
  7. Best Practices ( Framework, Coding, Design Patterns etc )
  8. Grid
  9. Maven
  10. Cucumber ( BDD )
  11. Headless Testing ( GhostDriver & PhantomJs )
  12. Parallel Execution

       


1. START

History of Selenium

https://code.google.com/p/selenium/

https://github.com/seleniumhq/selenium

http://seleniumhq.wordpress.com/  ( Official Selenium Blog )

http://docs.seleniumhq.org/

Selenium wiki – covers imp chapters ( Selenium Wiki )

https://code.google.com/p/selenium/issues/list  #bug #issue ( Place to file bugs )

Difference between Selenium Server & Client / WebDriver Language Bindings

http://stackoverflow.com/questions/6995016/what-is-the-difference-between-selenium-ide-server-rc-2-0-and-webdriver

http://stackoverflow.com/questions/4774277/what-is-the-difference-between-selenium-remote-control-and-selenium-server

Selenium Quickstart by sauce labs ( architecture , concepts , various core concepts )

https://docs.saucelabs.com/ ( saucelabs docs home page )

2. Selenium Training Topics

1. Selenium 2 training main points ( paid course ) http://www.qatestingtraining.com/selenium-online-training/

2. https://leanpub.com/LearningSelenium ,  

3. http://selenium.polteq.com/

4.  http://rdekleijn.nl/

5. Tarun’s Website training videos

6. Selenium Simplified Book Index Section

( http://www.compendiumdev.co.uk/selenium/toc_2nd.pdf ) ,    http://www.compendiumdev.co.uk/selenium/#demo

7.  http://www.youtube.com/user/seleniumconf/videos   ( Selenium on YouTube )

8. http://www.guru99.com/selenium-tutorial.html

9. http://javafortesters.com/  ( Index – https://leanpub.com/javaForTesters ) Book

10. http://www.sayem.org/  ( https://github.com/sayems – GitHub projects )

11.  User Selenium Like A Pro – http://elementalselenium.com , http://elementalselenium.com/tips ( Refer to all tips  Must Read)

12. http://www.toolsqa.com – One more training website

13. http://thechort.com/blog/  ,  https://github.com/orieken –  Oscar Rieken

14. https://code.google.com/p/selenium/w/list – Selenium Wiki Page

15. How to find selenium information on your own – Dave Haeffner

16.  http://www.learn-automation.com/

17.  http://software-testing-tutorials-automation.blogspot.in/

18.  http://selenium-by-arun.blogspot.com.br/

19.  Selenium Basic Series by “utest university” 

20. Testing a Web Application with Selenium 2   ( Thomas Sandberg ) Selenium 2  , 

       Page Objects , Cucumber , Maven 

21. http://www.softwaretestinghelp.com/selenium-tutorial-1/ ( Selenium Tutorials )

22. Selenium 3 Webinar by Simon Stewart 


https://huddle.eurostarsoftwaretesting.com/resource/test-automation/using-selenium-3/


http://testautomation.applitools.com/post/144952401467/webinar-recording-selenium-30-the-spec-and

23. https://saucelabs.com/blog/selenium-3-is-coming

24. https://www.youtube.com/user/saucelabs/videos

25.  https://saucelabs.com/resources/webinars

26.  Grading Your Selenium Tests by Dave Haeffner ( http://www.slideshare.net/saucelabs/how-to-grade-your-selenium-tests-by-dave-haeffner-sauce-labs-webinar )

3. Locators

1. https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/  ( XPath, CSS, DOM and Selenium: The Rosetta Stone )

2. http://blog.varunin.com/ ( CSS )

3. http://www.qaautomation.net/?p=388   ( Locating page elements using web driver )

4. http://seleneselearner.blogspot.com/2011/01/xpath-locators.html ( Object Locator )

5. http://selenium.polteq.com/en/category/locators/

6. https://developers.google.com/chrome-developer-tools/docs/elements?csw=1 ( Chrome Browser Dev Tool )

7. http://robertnyman.com/firefinder/ ( CSS FireFinder Tutorial )

8. http://blog.eviltester.com/2010/03/use-firefinder-to-help-you-construct-selenium-css-selectors.html

9. http://www.ibm.com/developerworks/library/wa-selenium2/ ( GitHub Page example )

10. https://thenewcircle.com/bookshelf/selenium_tutorial/locators.html

11. http://blog.mozilla.org/webqa/2013/09/26/writing-reliable-locators-for-selenium-and-webdriver-tests/ – Writing Reliable Locators

12.  http://software-testing-tutorials-automation.blogspot.se/2013/06/selenium-css-locators-tutorial-with.html – CSS Locators tutorial

13. http://www.tutorialspoint.com/selenium/selenium_locators.htm

14. http://www.w3schools.com/tags/default.asp Html tags

15. http://selenium-tutorial.blogspot.de/2013/08/highlight-element-webdriver.html – HighLight An Element WebDriver

 

4. IDE

        http://docs.seleniumhq.org/download/#side_plugins  – few other plug-ins

http://blog.reallysimplethoughts.com/2010/10/01/learn-alternate-locators-using-selenium-ide/

http://blog.reallysimplethoughts.com/2011/09/30/managing-locator-builders-in-selenium-ide/

http://software-testing-tutorials-automation.blogspot.in/2013/07/set-locator-builders-preference-in.html

WebDriver Element Locator

FireBug

 

5. WebDriver

http://selenium.googlecode.com/git/docs/api/java/index.html  – API References

http://www.aosabook.org/en/selenium.html

https://code.google.com/p/selenium/downloads/list

http://docs.seleniumhq.org/download/

Sample Selenium Projects Download  ( Tarun’s Blog )

http://www.seleniumtests.com/p/free-selenium-training.html ( Tarun’s Blog )

http://www.seleniumtests.com/p/testing-video-tutorials.html

http://google-opensource.blogspot.com/2009/05/introducing-webdriver.html ( Why WebDriver )

http://code.google.com/p/selenium/wiki/GettingStarted ( Selenium 2.0 )

http://www.w3.org/TR/webdriver/

http://seleniumsimplified.com/category/webdriver/ ( Touched multiple topics Must Read )

http://blog.eviltester.com/   

Logging – http://jankesterblog.blogspot.in/2011/08/test-automation-in-agile.html

http://assertselenium.com/  ( wait commands )

http://seleniumwebdriverfaq.blogspot.in/

Chrome Browser

https://code.google.com/p/selenium/wiki/ChromeDriver

https://code.google.com/p/chromedriver/wiki/GettingStarted

Why and When JavaScript ?

http://autumnator.wordpress.com/2013/02/09/javascript-is-your-ally-for-selenium-webdriver/

6.  JUnit / TestNG

1. If @Test is missing then Run As -> JUnit Test option is not seen in eclipse

2. http://selftechy.com/2011/06/07/selenium-2-with-junit4-create-tests-generate-reports ( sample code with Junit )

3. http://nadimsaker.blogspot.in/2011/10/how-to-run-selenium-webdriver-code-with.html ( sample code with Junit )

4. different between static and non static import statements ?

5. different between import …Assert; and import …Assert.*;

6. Why non static import for Assert is not working ?

7. public class Chapter2 extends LoadableComponent  what is this declaration ??

8. http://www.istebu.net/selenium/dis02_testng/?goback=%2Egde_4574138_member_148409200 ( TestNG setup with Eclipse )

9. http://vishalsachan.blogspot.com/2010/09/configuring-selenium-rc-with-testng_05.html  ( Configuring Selenium RC with TestNG using eclipse )

10. http://testng.org/doc/selenium.html ( Selenium + TestNG )

11. http://testng.org/javadoc/  , http://testng.org/doc/documentation-main.html

12 . http://executeautomation.com/blog/how-to-configure-testng-with-testng-xml-2/  ( testng.xml setup )

13. http://www.guru99.com/all-about-testng-and-selenium.html

14. http://www.mkyong.com/unittest/testng-tutorial-7-dependency-test/

15. https://weblogs.java.net/blog/johnsmart/archive/2010/08/09/selenium-2web-driver-land-where-page-objects-are-king

16. http://qtp-help.blogspot.in/2010/07/testng-take-screenshot-of-failed-test.html ( TestNG listerner to take screen shot )

17. What is TestNG Listener – http://rationaleemotions.wordpress.com/2012/01/27/listen-to-what-i-have-to-say-about-testng-listeners/

18. http://darrellgrainger.blogspot.ca/2011/02/generating-screen-capture-on-exception.html ( WebDriverEventListener )

19.  Why to use JUnit ?

20.  Why TestNG and its usage in framework ? 

7. Best Practices   (Framework , Coding , Design Patterns etc)

1. Framework should be like a Circus

2. First you create page object , which has particular animals characteristics

3. Then you are steps which means tricks the animal can do

4. actual test case is just calling different tricks of different animal to make sense to circus viewer.

Design Patterns

  • Page Object Pattern
  • Page Factory Pattern
  • DRY
  • Journey Pattern / Screenplay Pattern

1. http://www.slideshare.net/wakaleo/serenity-and-the-journey-pattern

2. http://www.theautomatedtester.co.uk/tutorials/selenium/page-object-pattern.htm

3. https://confengine.com/selenium-conf-2014/proposal/293/perils-of-page-object-pattern

4. http://burdettelamar.wordpress.com/2014/03/21/keep-your-page-objects-dry/

5. http://fasterchaos.svbtle.com/journey-pattern

6. https://ideas.riverglide.com/page-objects-refactored-12ec3541990#.x89uuucwp

7. https://janmolak.com/from-acceptance-tests-to-user-guides-71fc9756d341#.xp0tt5wbh

8.  http://testerstories.com/category/automation/serenity/ ( Serenity related 4 posts + Cucumber ,  Screenplay Pattern , Journey )

9. https://code.google.com/p/selenium/wiki/PageObjects

10. https://code.google.com/p/selenium/w/list?q=label:WebDriver

11. https://code.google.com/p/selenium/wiki/DesignPatterns

12. http://www.seleniumtests.com/p/selenium-frameworks.html

13.  https://github.com/thucydides-webtests/thucydides ,

http://www.thucydides.info/documentation , http://thucydides-webtests.com/ ,

http://assertselenium.com/2013/01/24/thucydides-the-atdd-way/

http://www.slideshare.net/wakaleo/presentations

http://www.wakaleo.com/resources/thucydides ( Thucydides is an open source library that lets you useWebDriver/Selenium 2 to write better acceptance tests )

14.  http://stackoverflow.com/questions/5359150/selenium-web-test-automation-framework-best-practices ( Automation Framework Best Practices )

15.   http://www.grazitti.com/resources/press-releases/184-selenium-2-automation-framework-on-github.html ( Selenium 2 Framework )

16.   https://github.com/Ardesco/Ebselen   – Open Source automation framework

17.    http://blog.infostretch.com/?p=806

18.  http://www.youtube.com/watch?v=WJnlOQ3zxro&feature=related – How to write better selenium code

19. Folder Structure Creation

http://swtestingforyou.wordpress.com/2011/07/05/create-selenium-tests-project-structure-in-eclipse-with-junit/ ,

http://www.tutorialspoint.com/eclipse/eclipse_create_java_package.htm ,

http://whytotest.blogspot.in/2010/05/selenium-test-framework.html   ( Folder Structure )

http://blog.recurtrix.com/2012/09/Organize-selenium-project-structure.html

http://blog.recurtrix.com/2012/07/how-to-organize-eclipse-project.html

http://seleniumtestautomationtipsandtricks.blogspot.in/ ( Tips and Tricks )

http://luizfar.wordpress.com/2010/09/29/page-objects/

http://jankesterblog.blogspot.in/2011/08/good-principles-of-test-automation.html, http://jankesterblog.blogspot.in/2011/08/test-automation-in-agile.html

http://www.summa-tech.com/blog/2011/10/10/using-page-objects-with-selenium-and-web-driver-20/
Page Objects in Selenium 2 Presentation

https://code.google.com/p/selenium/wiki/LoadableComponent – Using Loadable Component
http://martinfowler.com/bliki/PageObject.html ( Page Object  – Martin Fowler )
http://martinfowler.com/bliki/TellDontAsk.html ( Tell but don’t ASK )

http://www.sonarqube.org/features/ ( SonarQube – Code health dash board )

Implementing Continuous Deliver – Thoughtworks ( Automated Testing )

http://maryannmp.wordpress.com/ (  Starting Selenium Automation Effort from Scratch )

http://www.pushtotest.com/create-robust-selenium-tests-with-pageobjects ( PageObject Brings Object Oriented Benefits To Your Test Scripts )

http://www.pushtotest.com/frank-cohen

http://knorrium.info/2010/11/15/better-reporting-with-reportng/ ( Better Reporting with ReportNG )

http://reportng.uncommons.org/

http://selenide.org/index.html  ( Selenide: concise UI tests in Java – selenium mail thread )

https://github.com/codeborne/selenide

http://paypal.github.io/SeLion/html/documentation.html#what-is-selion ( PayPal framework )

Refer to mail thread in google selenium group

http://seleniumtestingworld.blogspot.de/

https://github.com/persado/stevia – framework

Page Object Pattern In Test Automation

 

8. Grid

“…..your framework should also support parallel execution if you want to run multiple test parallel using Grid….”

  1. https://code.google.com/p/selenium/wiki/Grid2   ( WebDriver and Grid )
  1. http://qtp-help.blogspot.com/2011/09/selenium-grid-with-webdriver.html  ( Grid 2.0 and Web Driver )
  1. http://rationaleemotions.wordpress.com/2012/01/23/setting-up-grid2-and-working-with-it/ (  Setting up Grid 2 )

         Building a Self Healing Grid

         Working with a custom capability matcher

         Leveraging some of the Grid APIS   

    4.   http://blog.karit.geek.nz/2011/01/selenium-grid-part-4-how-to-get.html

    5.  http://docs.seleniumhq.org/docs/07_selenium_grid.jsp ( Official Documentation )

    6.  Grid vs TestNG Parallel Execution – http://www.deepshiftlabs.com/sel_blog/?p=1932&lang=en-us

               

    7. http://elementalselenium.com/tips/52-grid 

          ( If you’re looking to run your tests on different browser and operating system combinations but you’re unable to justify using a third-party solution like Sauce Labs or Browser Stack then what do you do? )

    8.  http://blog.mattcallanan.net/2014/04/ideas-for-running-cucumber-jvm-selenium.html 

           http://www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in-parallel/  ( Cucumber-JVM , Grid , Parallel )

9. Maven

1.   Maven Path

2.   http://www.tutorialspoint.com/maven/maven_overview.htm

3.   Selenium WebDriver – Maven Part 1

4.   Steps to Plugin Maven into Eclipse IDE

5.   http://orangletrik.wordpress.com/2013/01/31/install-maven-plugin-in-eclipse-juno/

6.   http://wiki.eclipse.org/M2E_updatesite_and_gittags

7.    http://www.viaboxxsystems.de/start-your-webtests-with-selenium2-maven-testng-now

8.    http://stackoverflow.com/questions/2449461/convert-existing-eclipse-project-to-maven-project ( Converting Java project to Maven project )

9.   http://tuventytuventy.wordpress.com/2011/12/06/installing-selenium-2-0-maventestng-and-eclipse/ ( Selenium + Maven + TestNG + Eclipse )

10.   https://github.com/freynaud/testng-support/wiki ( Tutorial on how to start a selenium + testng + maven )

11.   Importing Maven project into Eclipse

12.   what is POM.xml

13.   Gradle Tool ( Build Automation )

14.   Gradle Summit  ( Selenium And Gradle )

15.   Maven Eclipse plug-in

16.    http://books.sonatype.com/mvnref-book/reference/ – Maven Complete Reference

17.   Hello World ( Maven, M2Eclipse, Eclipse )

10 . Cucumber ( BDD )

                       As this is quite critical and exhaustive topic , have decided to move content 

         into new post. You can check it in same blog itself .       

https://vikramviknowledgesharing.wordpress.com/2017/01/01/behavior-driven-development-bdd-cucumber/

 

11.  Headless Testing ( GhostDriver & PhantomJs )

http://codeception.com/05-13-2013/phantom-js-headless-testing.html

http://www.assertselenium.com/headless-testing/getting-started-with-ghostdriver-phantomjs/

( Headless mode – email thread in Serenity Google Group )

http://stackoverflow.com/questions/28267809/phantomjs-getting-killed-9-for-anything-im-trying

http://elementalselenium.com/tips/46-headless-ghostdriver

http://phantomjs.org/

12. Parallel Execution 

1>  Challenges faced with longer test suite , Grid approach

http://www.pabich.eu/2014/06/how-to-run-selenium-tests-in-parallel.html


2>  Running Your Tests In Parallel 
https://saucelabs.com/selenium/selenium-webdriver 


3>  
Parallel Execution Methods ( TestNG , JUnit , Grid Approach ) Generic Google search

TestNG

1>  http://clearqa.blogspot.in/2013/04/run-selenium-tests-in-parallel-on.html ( Single Machine – Parallel Run on different browsers )

2>  http://rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/ – Parallel WebDriver Executions Using TestNG

JUnit

1> http://wakaleo.com/blog/running-junit-tests-in-parallel-with-maven

2> https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html

3> https://maven.apache.org/surefire/maven-failsafe-plugin/examples/fork-options-and-parallel-execution.html


Conclusion


In case your web app + Selenium does NOT support same machine – multiple browser approach ( as your webapp requires active state ) , then only option left to speed up testing is “Grid”

Advertisements