smarter ways to do selenium automation @ work, selenium, automation

33
29-01-2011 Selenium Learning Ruturaj 1.0 1

Upload: ria-rui-society

Post on 20-Jan-2015

12.255 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 129-01-2011

Page 2: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 229-01-2011

Knowledge is free, it’s the experience which make’s it priceless - Ruturaj

Page 3: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 329-01-2011

Page 4: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 429-01-2011

Page 5: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium @ Work

“Smarter ways of doing Selenium Automation”Ruturaj

http://ruturajd.blogspot.com

Make Technology available for masses, to bottom of pyramid, you will see

how life will change after this !

Page 6: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 6

Objective

• Take away Thought’s from talk– Functional Test automation views, expectations

and preparation. – Understanding Selenium offering.– Pointers towards basic for Test automation for

tester to start automation.– Learning what not to do in Test automation.– Selenium RC Automation Framework what’s

generic what’s specific.

29-01-2011

Page 7: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 7

Context Driven Learning

Disclaimer – These are my views based on my experience, hence think of background(Context) before using them directly.

Context DrivenSelenium LearningOne Size Doesn’t Fit All.

29-01-2011

Page 8: Smarter ways to do selenium automation @ work, Selenium, automation

Functional Test Automation

Background ,views ,Thought process, Expectation

Page 9: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 9

Automation from different Perspective

• Product Managers/Test Manager Perspective.– Automation must for ‘Early cycle Testing ‘ in

Agile/Iterative development.

– Accuracy of verification in Automated ‘test cases’ is important as They would be fully replaced by “automated test script”.

– Can’t afford if tester/automation engineers makes ‘any mistake’.

29-01-2011

Page 10: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 10

Tester’s perspective – Bugs in Testers approach for technology

• Lazy, ‘why should I Change’ Approach.• Tester’s are less adaptive to technologies(less agile*).• After Realizing mistake, feeling of ‘missed the bus of

opportunity’.

• Black Box Testing – a mystery for me.• Big time missing = = Technical tester.

29-01-2011

Page 11: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 11

Tester’s perspective – what can be done better(Ideally !)

• Gel Well with Developers until you learn technology, if not at least learn Technology on your own.

• Understand What people do when they automate(that’s Montessori). How to automate(as per me) is PH. D .

• Learn basics of Web technology – HTML, java script, how browser works, what goes underline when we click something ?

29-01-2011

Page 12: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 12

Defining What to automate, what not to, when to automate.

• Automation Test Strategy / Automation Plan – only if its updated as per execution cycle.

• Selenium is one of the better tool I come across to automate web application(flow in website’s).

• Gradual approach to automation, do it in bits and pieces, do it perfect, gradually build it up.

• Experienced Tester must do automation or something in Non functional Requirement Testing (E.g. Security testing, Usability, Performance, …)

29-01-2011

Page 13: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium for Functional Test Automation(Web Apps)

Page 14: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 14

Selenium Learning Pyramid

Customization

HTML

Selenium

JavaScript & OO

Language

29-01-2011

Page 15: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 15

What you can automate using Selenium (Learning 0.1.0)

• Selenium - functional testing tool for web based application.

Multi Browser support. Support to write test cases in many OO

languages(java, C#, Perl, Python, Ruby).Simple API/functions for interaction with HTML

Elements. Easy to use Selenium IDE(recorder) for those

who want to start automation, just for Start. 29-01-2011

Page 16: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 16

Selenium Offering – what do we have to consume ;)

• Selenium Core Selenese languages(looks very similar to html). Selenium is bundled with all further offering like IDE,

RC, Grid.• Selenium IDE (Recorder for Firefox).• Selenium RC (allow you to run test written in

programming language to run from anywhere.)• Selenium Grid (Multiple RC server running on

same/different machine for parallel test run.)

29-01-2011

Page 17: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 17

Simple Selenium Core Action

Action Target ValueOpen http://www.google.com/

type q Ruturajd

clickAndWait btnG

29-01-2011

Page 18: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 18

Selenium Core References

• What not to do with while starting with Selenium Core.– Trying to automate website which is not following

Same origin policy.

• http://wiki.openqa.org/display/SEL/Selenium+Core+FAQ

29-01-2011

Page 19: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 19

Selenium IDE- Recorder for Firefox

• Firefox plug-in for easy record and playback of tests.• Intelligent field selection will use IDs, names, or XPath

as needed• Helpful for simple HTML script development and

execution(provides auto complete for common Selenium commands, debugging test execution , addition of custom extension)

• Save tests as HTML scripts, or any other language script.

• Option to automatically assert the title of every page

29-01-2011

Page 20: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 2029-01-2011

Page 21: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 21

Selenium IDE- Limitations

• Record and playback of IDE tests is possible only on fire fox browser.

• Selenium IDE can execute script created in Selenese (HTML like) only.

• It’s difficult to use Selenium IDE for checking complex test cases involving dynamic contents.

• No direct support for condition statements, iteration, error handling, particularly unexpected errors, test case grouping,

• Execution report not customizable to more extent.

29-01-2011

Page 22: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 22

Where/When to use IDE then ?

• Selenium IDE is best suited for simple happy path verification with least time to test script development.

• To make Tester’s life easier - faster sanity check, regression verification provided test script you have recorded have enough valid verification’s.

• In Agile team for quick and dirty automation(to start with..).

29-01-2011

Page 23: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 23

Selenium Remote Control

• A proxy server written in java, which automatically launches and kills browsers.

• Allows to write test code in your favorite language– Java– Python – C# (.NET )– Ruby– Perl

• Multi browser support by providing browser mode as *iehta, *firefox or *chrome in selenium object initialization.

• Selenium RC supports HTTP and HTTPS based sites.

29-01-2011

Page 24: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 24

Selenium RC Through my eye’s(Architecture)

Selenium Client

Language driver

Selenium RC server Browser

Web Applicatio

n

29-01-2011

Page 25: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 25

Selenium RC Setup

• Download the latest version of Selenium RC jar.

• Selenium RC gives freedom to run test/suites from your own machine by starting Selenium server on your machine.– Start Selenium Server(open command prompt,

go to directory where selenium-server.jar exist, type in below command.• java -jar selenium-server.jar

29-01-2011

Page 26: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 26

Selenium RC setup 2

• Download the selenium-client driver, add the jar to your automation project’s library folder.

• Your automation project should have a base class where selenium object is to be initiated.

• Eg. There are various ways in which you can get selenium object initialized, but its nice to do in common place.

• selenium = new DefaultSelenium(“localhost”, “4444″, “*firefox”, “http://www.google.com/”);

29-01-2011

Page 27: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 27

Choosing right ingredientsSelenium Flavor Language for

automationUnit testing

framework to be used

Selenium Remote Control

Java Junit/TestNG

.NET(C#) nUnit

Python puUnit

29-01-2011

Page 28: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 28

Language for Selenium automation, Owners of Script maintenance

• Thumb rule – Use same language as that of application development language.

• Also Keep in mind skill set possessed by team whose going to work on it(QA’s – Test Developers).

• Define owners for test script maintenance, in shorter teams, developer’s owns acceptance test script, QA’s own regression suites.

29-01-2011

Page 29: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 29

Problems I faced using Selenium

• When there were Ajax request/responses everywhere on page, writing custom waitFor method was painful.

• Few API doesn’t work on specific version of IE/FFX.• Slowness of IE test execution due to wrong usages of

locators.• Working on element involving recursive java script

calls on ‘onClick’ event.

29-01-2011

Page 30: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 30

What is tough to automate using Selenium

• If your website has lots of Flash/Flex component, Selenium automation is tricky.

• Similarly if test needs to interact with any non native object in html like calendar, Rich Text FCK Editor, it is tougher to do so.

• Automation of web page involving multiple frames.• Testing functionality provided by third party tools –

outside scope of test automation tool.

29-01-2011

Page 31: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 31

Generic subsets of Automation Frameworks

Test Driver-Selenium Customized Test

framework

Test Execution(Vmware,Testlab)

29-01-2011

Page 32: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 3229-01-2011

Page 33: Smarter ways to do selenium automation @ work, Selenium, automation

Selenium Learning Ruturaj 1.0 33

The Pareto Principle

29-01-2011