Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Replay Firefox's Tamper Data XML sessions in Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
= 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