Watir

Watir
Developer(s) Bret Pettichord, Charley Baker, Angrez Singh, Jari Bakken, Jarmo Pertman, Hugh McGowan, Andreas Tolf Tolfsen, Paul Rogers, Dave Hoover, Sai Venkatakrishnan, Tom Copeland
Stable release 2.0.2 / September 10, 2011; 5 months ago (2011-09-10)
Development status Active
Written in Ruby (programming language)
Operating system Cross-platform
Type software testing framework for web applications
License BSD license
Website watir.com

Web Application Testing in Ruby (or Watir, pronounced "water") is a toolkit used to automate browser-based tests during web application development. This automated test tool uses the Ruby programming language to drive Internet Explorer, Mozilla Firefox, Google Chrome, Opera and Safari, and is available as a RubyGems gem. Watir was primarily developed by Bret Pettichord and Paul Rogers.

Contents

Functionality

Watir makes use of the fact that Ruby has built in OLE capabilities. As such it is possible to drive Internet Explorer programmatically. Watir operates differently than HTTP based test tools, which operate by simulating a browser. Instead Watir directly drives the browser through the Object Linking and Embedding protocol, which is implemented over the Component Object Model (COM) architecture.

The COM permits interprocess communication (such as between Ruby and Internet Explorer) and dynamic object creation and manipulation (which is what the Ruby program does to the Internet Explorer). Microsoft calls this OLE automation, and calls the manipulating program an automation controller. Technically, the Internet Explorer process is the server and serves the automation objects, exposing their methods; while the Ruby program then becomes the client which manipulates the automation objects.

Similar tools

Recorders

There are a few recorders that can create Watir scripts, but none of them are supported by the Watir community. Watir forums normally do not entertain questions on recorders as they expect such questions to be raised in forums specific to the recorder(s).

See also

External links