Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Replay Firefox's Tamper Data XML sessions in Ruby

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README
Octocat-spinner-32 SPEED
Octocat-spinner-32 TODO
Octocat-spinner-32 example.rb
README
= Meddle

A less resource-heavy way to do realistic regression tests (and
eventually load tests) than controlling an actual web browser 
a la watir.  

* Interact with your web site using Firefox.  
* Capture the requests sent with Tamper Data, and export as XML
* Replay them from the command line
 - with realistic timing
 - with SSL support
 - with a 'rewrite' step that lets you programmatically change the
   request data before sending it (e.g. to switch hostnames from
   production to test, or vice versa)
 - using the single-threaded low-overhead goodness of EventMachine
 - using "approximately real" rules for number of parallel requests
   per hostname (default 2), persistent connections, and timeout values

== Usage

See example.rb


== BUGS/ISSUES/TODO

0) It's pre-pre-pre alpha in a big way.  I put it on github in the
expectation that it will *someday* be generally useful, not as an
advertisement that it is currently.  Because it's not.

1) See the TODO file for more rapidly changing detail


== Other Tools

1) what about watir?

Tried it, didn't like it ;-)

More seriously, it doesn't do the same job.  Meddle replays real
human-generated sessions: watir simulates them.  Meddle runs from the
command line and doesn't need a web browser to be installed or
running.  Eventually, if I can make it run fast enough (or if it's run
against sites slow enough ;-), it will be useful for load testing.

2) What about Mechanize?

Again, it doesn't do the same job.  Mechanize will do you for
functional testing ("did I get this page when I clicked that button or
followed the link?") but the headers it sends aren't the headers your
browser sent, and it doesn't download images, and so on and so forth.

3) What about WWW::TamperData (on CPAN)?

That's actually pretty similar to what this does.  But it's in Perl
and I wanted one in Ruby.

Also, as of v 0.08 it sends out all the requests at once and pays no
heed to the timings in the XML.  This is fine for a single shot but
probably not so hot for simulating actual user load


Something went wrong with that request. Please try again.