WATIR Presentation - Sumanth Krishna. A

27  Download (0)

Full text

(1)

Sumanth Krishna. A

www.sumanthkrishna.com

(2)

Agenda

Introducing the topic

Discussion on Testing frameworks/tools and

it’s necessity Ruby Installations Architecture Testcases Scope

(3)

TAG CLOUD

ruby Apache Nginx assertions

install webserver FireWatir

temp-user

WATIR

goto html DOM

web-applications

opensource

tests

Assertions get_string firefox-addon

click hudson SVN COM open-source

IE gems

open-QA ruby regression loadrunner mercury

automatio deployment browers tools

(4)

Prerequisites

Can you believe you really don’t need any

(5)

What is WATIR?

open-source functional testing tool for

web-applications

Simulate the user actions (filling/submitting

forms…)

Drives Internet Explorer browser

FireWatir – for FireFox

Ruby based

Various assertions (content-based) Connects to databases

Reading data files

(6)

Why use WATIR?

Free

Powerful

Simple (easy to use and learn)

Excellent Support

Strongest Presence

Watir/Watin/Watij [Web Application Testing In

Ruby/.NET/Java ]

Huge resource of supporting tools –

Firewatir, Watir Recorder ++, Wet, Cubictest,

(7)

Is not?

Watir is not a record/playback tool.

However, there are several recorders “out

there”

WatirMaker

Watir WebRecorder

Webmetrics RIA Script Recorder (most recent

discussion…they are considering open sourcing their application)

Watir is not a link checker

However, you can easily write your own link

checker and customize it to your specific needs.

Watir is not a test case management tool.

However, you can write one in Ruby if

desired.

(8)

IE-WATIR

Web Application

Automation Interface

Use the OLE/COM Automation

interface to

Internet Explorer IE DOM Watir/Ruby

(9)

FF-FireWATIR

Web Application Automation Interface FF DOM FireWatir/Ruby JSSh

(10)

Browser Support

IE COM

Test Script

Component 1

FF JSSH Apple Events V8 Debugger Dragonfly

Component 2 Component 3 Component 4

(11)

Installing: Windows

 Install Ruby: Use the Ruby one-click installer for windows  Install the latest gem watir (ruby packages are called gems)

gem install watir

And you find the following gems installing…

Successfully installed xml-simple-1.0.11 Successfully installed s4t-utils-1.0.4

Successfully installed builder-2.1.2

Successfully installed user-choices-1.1.6 Successfully installed commonwatir-1.6.2

Successfully installed firewatir-1.6.2 (to support Firefox) Successfully installed watir-1.6.2

Successfully installed win32-api-1.3.0-x86-mswin32-60 Successfully installed windows-api-0.3.0

Successfully installed rubyforge-1.0.2 10 gems installed

(12)

What Next?

Since we are here to test the

web-application

Navigate the browser?

Find elements on the page?

Interact with elements on the page? Check output on the page?

Create and use Methods? Create formal test cases?

(13)

Step by Step

Navigate to the browser

#Always Load the Watir library at the top of

your script

require ‘watir’

Start IE and navigate to a given/different

URL IE = Watir::IE.start(‘http://www.qvnatel.com’)  IE.goto(“http://free-opensource.qvantel.net/mediawiki//index.php /Main_Page ”) IE.close

(14)

Finding <HTML> Elements

IE.frame(how, what) Frame

And many, many more (div, label, image, etc…)… IE.form(how, what) Form IE.link(how, what) HyperLink IE.radio(how, what) RadioButton IE.checkbox(how, what) CheckBox IE.select_list(how, what) DropDownList IE.button(how, what) Button IE.text_field(how, what) TextBox

(15)

Interacting with Elements

#Set the text field (or text area) specified

name specified value.

ie.text_field(:name,'name').set('value')

#Sets the select with to the specified value

ie.select_list(:name,'name').select('value')

#Click the button with the specified value

(label)

ie.button(:value,'value').click

#Clicks the link matching 'text'

ie.link(:text,'text').click

#Accessing elements in a "frame" or

"iframe"

ie.frame(:name,"someFrame").text_field(:na

(16)

Closer view

browser.button(

:value

, "Click Me").click

(17)

Checking Output

#Get the title of the page

ie.title

#Get all the text displayed on the page

ie.text

#Get all the HTML in the body of the page

ie.html

#Return true if ‘text’ is displayed on the page

(18)
(19)

Ruby advantage

Since WATIR is ruby based web application

testing framework, we can customize the script according to our needs.

Taking Ruby’s Object Oriented concepts,

create more dynamic/customized scripts

Use classes & methods effectively

Access even the database to validate the

(20)
(21)

Methods

 #Here is an example method for logging into a web

application. Its two parameters are a user and password (both of which have defaults). It returns an instance of IE

def login(user=“test_admin”,password = “Password123”)

ie=Watir::IE.start(‘http://someURL.com/login’) ie.text_field(:name,/user/i).set(user) ie.text_field(:name,/password/i).set(password) ie.button(:value,/login/i).click return ie end

 #Now we can easily login with the default user..  ie = login

 #or with a unique user

(22)

Full Fledge Test Case

require 'test/unit' #includes Ruby's test case functionality

require util #Assuming our login method is saved in util.rb

#Test cases are contained within classes which extend Ruby’s base test case class

class MyTest < Test::Unit::TestCase

def setup #Optional, will be run before each test method. @ie = login() #call our login function.

end

def test_some_link #Test methods must begin with "test_“ @ie.link(:text,”some_link”).click #click on some link #verify that the proper page loaded

assert(@ie.contains_text(“My Some Link Page”)) end

def teardown #Optional, will be run after each test method. @ie.close

end end

(23)

Installing: Ubuntu

Install Ruby:

sudo apt-get install ruby

Install the latest gem firewatir (ruby packages are called

gems)

sudo gem install firewatir

And you find the following gems installing…

Successfully installed xml-simple-1.0.11 Successfully installed s4t-utils-1.0.4

Successfully installed builder-2.1.2

Successfully installed user-choices-1.1.6 Successfully installed commonwatir-1.6.2 Successfully installed firewatir-1.6.2

Successfully installed rubyforge-1.0.2

7 gems installed (3gems to support IE/Windows environment are not

installed)

(24)

Tweaks/Tips

While working on Linux platform need to

specify

require “rubygems” at the top of test case

ff = FireWatir::Firefox.new

Start firefox in jssh mode

For Windows:

Close instances of firefox (if any)

Type “firefox.exe –p –jssh” in the “Run”

(25)

Scope

Using Watir for all web applications

Integrate it with Automation/Building

(26)

References

Watir

Wikipedia: http://en.wikipedia.org/wiki/Watir

Watir main site: http://wiki.openqa.org/display/WTR/

Watir user guide: wtr.rubyforge.org/watir_user_guide.html

Watir API: wtr.rubyforge.org/rdoc/index.html

Mailing List: rubyforge.org/mailman/listinfo/wtr-general

Project site: http://wiki.openqa.org/display/WTR/

User Contributions/examples:

http://wiki.openqa.org/display/WTR/Contributions

Watir FAQ: http://wiki.openqa.org/display/WTR/FAQ

Watir Recorder http://www.hanselman.com/blog/IntroducingWatirMakerRecordingForRubybasedWatir.aspx http://www.hanselman.com/blog/NewReleaseOfWatirMakerNowWatirRecorder. aspx  FireWatir Source: http://code.google.com/p/firewatir/wiki/Firewatir  Ruby

Ruby site: http://ruby-lang.org

Ruby docs: http://ruby-doc.org/

(27)

Thanks

tosumanthkrishna@gmail.com www.sumanthkrishna.com

Figure

Updating...

References

Related subjects :