There are MUCH more efficient ways of doing this... I'm pretty sure the WATiR FAQ has text regarding the fact that it's not intended for stress testing...

Anyways, there was a recently released package to the ruby community called : RWB

It's not yet released as a gem so installation is slightly more involved.

But sample code would look like:

require 'rwb'

urls = RWB::Builder.new()
urls.add_url(1, "http://www.example.com")

tests = RWB:: Runner.new(urls, 50, 5)

tests.run
tests.report_header
tests.report_overall([0.5, 0.9, 0.99, 0.999])

... this would run the same URL 50 times with 5 concurrent requests. Output would look something like:

completed 5 runs
completed 10 runs
completed 15 runs
completed 20 runs
completed 25 runs
completed 30 runs
completed 35 runs
completed 40 runs
completed 45 runs
completed 50 runs
Concurrency Level:       5
Total Requests:          50
Total time for testing:  0.23 secs
Requests per second:     217.391304347826
Mean time per request:   21  msecs
Standard deviation:      6
Overall results:
        Shortest time:  10 msecs
        50.0%ile time:  20 msecs
        90.0%ile time:  30 msecs
        99.0%ile time:  40 msecs
        99.9%ile time:  40 msecs
        Longest time:   40 msecs


I think that's much more along the lines of what you are after.

j.

On 11/22/05, Steve Tang <[EMAIL PROTECTED]> wrote:







Hi everyone I was wondering if anyone has any tips or suggestion about using Ruby/Watir to stress test a web application.
 
I'm trying to run pretty basic load test on one of our servers, it's really simple, just a simple access to a single webpage and then that's it. I'm using the code
 
ie = Watir::IE.new()
ie.goto(page)
ie.close()
 
I'm wondering what is the best way to create thousands (more than 25K) of these processes and have them all storm the server at once. I've tried the approach of creating a shell script that just calls the ruby script multiple times I found out that though it works, it's does not generate enough traffic for my needs.
 
Is there a more efficient way to be doing this?
 
Thanks for your help
 
Steve Tang

_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general





--
"Remember. Understand. Believe. Yield! -> http://ruby-lang.org"

Jeff Wood
_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to