Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Ruby replacement for ab?

Reply
Thread Tools

Ruby replacement for ab?

 
 
Mat Schaffer
Guest
Posts: n/a
 
      12-21-2006
So I've been hunting for a way to stress test a web application and
haven't been terribly satisfied so far.

I'd really love something where I could define a script that
determined the way an agent would behave. Basically a set of
requests where each request had the potential to use information
contained in the return of a previous request.

My brain is slowly churning around the possibilities of putting
ruby's benchmark.rb, mechanize, maybe drb to manage multiple test
hosts.... Some sort of ruby DSL would be sweet. But before I get
too ahead of myself: Does anyone here know of a tool does this?

I'm looking at JMeter right now. It at least allows for assertions
on HTTP requests as part of an agent script, but I don't see any
facility to do computations on the returned content from a previous
request.

Thoughts? Suggestions?

Thanks in advance,
Mat

 
Reply With Quote
 
 
 
 
hemant
Guest
Posts: n/a
 
      12-21-2006
On 12/22/06, Mat Schaffer <(E-Mail Removed)> wrote:
> So I've been hunting for a way to stress test a web application and
> haven't been terribly satisfied so far.
>
> I'd really love something where I could define a script that
> determined the way an agent would behave. Basically a set of
> requests where each request had the potential to use information
> contained in the return of a previous request.
>
> My brain is slowly churning around the possibilities of putting
> ruby's benchmark.rb, mechanize, maybe drb to manage multiple test
> hosts.... Some sort of ruby DSL would be sweet. But before I get
> too ahead of myself: Does anyone here know of a tool does this?
>
> I'm looking at JMeter right now. It at least allows for assertions
> on HTTP requests as part of an agent script, but I don't see any
> facility to do computations on the returned content from a previous
> request.
>
> Thoughts? Suggestions?
>
> Thanks in advance,
> Mat
>
>


Did you see, : http://rfuzz.rubyforge.org/

--
gnufied
-----------
There was only one Road; that it was like a great river: its springs
were at every doorstep, and every path was its tributary.

 
Reply With Quote
 
 
 
 
khaines@enigo.com
Guest
Posts: n/a
 
      12-21-2006
On Fri, 22 Dec 2006, hemant wrote:

> On 12/22/06, Mat Schaffer <(E-Mail Removed)> wrote:
>>
>> I'd really love something where I could define a script that
>> determined the way an agent would behave. Basically a set of
>> requests where each request had the potential to use information
>> contained in the return of a previous request.
>>
>> My brain is slowly churning around the possibilities of putting
>> ruby's benchmark.rb, mechanize, maybe drb to manage multiple test
>> hosts.... Some sort of ruby DSL would be sweet. But before I get
>> too ahead of myself: Does anyone here know of a tool does this?
>>
>> I'm looking at JMeter right now. It at least allows for assertions
>> on HTTP requests as part of an agent script, but I don't see any
>> facility to do computations on the returned content from a previous
>> request.
>>

>
> Did you see, : http://rfuzz.rubyforge.org/


rfuzz is nice but isn't really what he's asking about.

What he is asking about is something that I have wanted for a long time.
I want to be able to quickly and easily setup a test script for a site.

Go to a URL. Follow a link on the page returned. Maybe pick randomly
from a few choices of links to follow. Repeat a few times to simulate
people clicking around a site. Go to a page with a form, and fill in form
fields, etc...

Basically, a DSL to write scripts for driving interactions to a site or
application that would somewhat simulate what real traffic is expected to
look like.

That would be dandy.


Kirk Haines


 
Reply With Quote
 
Fred Wulff
Guest
Posts: n/a
 
      12-21-2006
It seems like it would be fairly easy to set up something with
WWW::Mechanize, although there might be performance problems if you
wanted to use it for stress testing.

-Fred

On 12/21/06, http://www.velocityreviews.com/forums/(E-Mail Removed) <(E-Mail Removed)> wrote:
> On Fri, 22 Dec 2006, hemant wrote:
>
> > On 12/22/06, Mat Schaffer <(E-Mail Removed)> wrote:
> >>
> >> I'd really love something where I could define a script that
> >> determined the way an agent would behave. Basically a set of
> >> requests where each request had the potential to use information
> >> contained in the return of a previous request.
> >>
> >> My brain is slowly churning around the possibilities of putting
> >> ruby's benchmark.rb, mechanize, maybe drb to manage multiple test
> >> hosts.... Some sort of ruby DSL would be sweet. But before I get
> >> too ahead of myself: Does anyone here know of a tool does this?
> >>
> >> I'm looking at JMeter right now. It at least allows for assertions
> >> on HTTP requests as part of an agent script, but I don't see any
> >> facility to do computations on the returned content from a previous
> >> request.
> >>

> >
> > Did you see, : http://rfuzz.rubyforge.org/

>
> rfuzz is nice but isn't really what he's asking about.
>
> What he is asking about is something that I have wanted for a long time.
> I want to be able to quickly and easily setup a test script for a site.
>
> Go to a URL. Follow a link on the page returned. Maybe pick randomly
> from a few choices of links to follow. Repeat a few times to simulate
> people clicking around a site. Go to a page with a form, and fill in form
> fields, etc...
>
> Basically, a DSL to write scripts for driving interactions to a site or
> application that would somewhat simulate what real traffic is expected to
> look like.
>
> That would be dandy.
>
>
> Kirk Haines
>
>
>


 
Reply With Quote
 
khaines@enigo.com
Guest
Posts: n/a
 
      12-21-2006
On Fri, 22 Dec 2006, Fred Wulff wrote:

> It seems like it would be fairly easy to set up something with
> WWW::Mechanize, although there might be performance problems if you
> wanted to use it for stress testing.


Yeah, possibly. Mechanize or hpricot could be part of a solution, but the
real challenge is in devising a DSL that makes it _easy_ for me to, for
example:

1) Hit the homepage.

2) Go to a random URL on the site.
Repeat 2-5 times.

3) Go to the fund information page.

4 Click through to the distributions display.

5) Randomly select 1-4 fund information links.

Repeat 100000 times, collecting timing information, failure information,
etc....



Then, if I can run that on two or three machines at the same time, and can
collate their logs and run an analysis on the collated logs, I'd be a
happy fellow.

Another thing that I'd love to be able to do is to run something like the
above set of actions, but do it more slowly, with pauses between each
request, so that the site may only get, on average, one request a second
but I can let it run for days.

I have encountered failures on occasion that didn't seem to happen as a
result of short term heavy loading, but more as a result of steady hits
over a longer period of time.

I'd like to be able to easily simulate that usage pattern in a development
environment.


Kirk Haines


 
Reply With Quote
 
pat eyler
Guest
Posts: n/a
 
      12-21-2006
On 12/21/06, Mat Schaffer <(E-Mail Removed)> wrote:
> So I've been hunting for a way to stress test a web application and
> haven't been terribly satisfied so far.
>
> I'd really love something where I could define a script that
> determined the way an agent would behave. Basically a set of
> requests where each request had the potential to use information
> contained in the return of a previous request.
>
> My brain is slowly churning around the possibilities of putting
> ruby's benchmark.rb, mechanize, maybe drb to manage multiple test
> hosts.... Some sort of ruby DSL would be sweet. But before I get
> too ahead of myself: Does anyone here know of a tool does this?
>
> I'm looking at JMeter right now. It at least allows for assertions
> on HTTP requests as part of an agent script, but I don't see any
> facility to do computations on the returned content from a previous
> request.
>
> Thoughts? Suggestions?


I'm not really maintaining it at this point, but RWB might help. it's
available as a gem. I've depracated it in favor of RFuzz, but RFuzz
still hasn't caught all the features.


>
> Thanks in advance,
> Mat
>
>



--
thanks,
-pate
-------------------------
http://on-ruby.blogspot.com

 
Reply With Quote
 
Mat Schaffer
Guest
Posts: n/a
 
      12-22-2006
On 12/21/06, pat eyler <(E-Mail Removed)> wrote:
> I'm not really maintaining it at this point, but RWB might help. it's
> available as a gem. I've depracated it in favor of RFuzz, but RFuzz
> still hasn't caught all the features.


Both RFuzz and RWB look like really good starts toward what I'm after.
Tough to say if I'll decide to really code something at this point.
But I'll certainly start browsing the source of both projects to get
some ideas.

I'd love to have something that made it easy to take a script (like in
rfuzz or rwb), then just drop it straight into a harness that was
responsible for multi-threading, distribution across slave nodes,
aggregating data and generating reports.

But given the state of things, it'd be a big problem to tackle.
Possibly too big for me at this point.

Thanks for the feedback. This list never disappoints!
-Mat

 
Reply With Quote
 
pat eyler
Guest
Posts: n/a
 
      12-22-2006
On 12/21/06, Mat Schaffer <(E-Mail Removed)> wrote:
> On 12/21/06, pat eyler <(E-Mail Removed)> wrote:
> > I'm not really maintaining it at this point, but RWB might help. it's
> > available as a gem. I've depracated it in favor of RFuzz, but RFuzz
> > still hasn't caught all the features.

>
> Both RFuzz and RWB look like really good starts toward what I'm after.
> Tough to say if I'll decide to really code something at this point.
> But I'll certainly start browsing the source of both projects to get
> some ideas.


If you're planning on writing something, either coordinate with Zed
to work on RFuzz, or take over RWB and go for it.


>
> I'd love to have something that made it easy to take a script (like in
> rfuzz or rwb), then just drop it straight into a harness that was
> responsible for multi-threading, distribution across slave nodes,
> aggregating data and generating reports.
>


That's sort of where I was headed with RWB. It's already multithreaded,
but it really should use dRb to coordinate across multiple nodes. I
don't think there's too much code needed to do that.

> But given the state of things, it'd be a big problem to tackle.
> Possibly too big for me at this point.
>


If you decide to go with RWB, I'd be happy to answer any questions.
It might be a plateful, but you can take small bites and it won't be
that hard. (Same is true of RFuzz, except that I can't answer the
questions.)

> Thanks for the feedback. This list never disappoints!
> -Mat
>
>



--
thanks,
-pate
-------------------------
http://on-ruby.blogspot.com

 
Reply With Quote
 
Xavier Noria
Guest
Posts: n/a
 
      12-22-2006
On Dec 21, 2006, at 11:51 PM, (E-Mail Removed) wrote:

> Go to a URL. Follow a link on the page returned. Maybe pick
> randomly from a few choices of links to follow. Repeat a few times
> to simulate people clicking around a site. Go to a page with a
> form, and fill in form fields, etc...
>
> Basically, a DSL to write scripts for driving interactions to a
> site or application that would somewhat simulate what real traffic
> is expected to look like.


Do you know Watir?

-- fxn




 
Reply With Quote
 
khaines@enigo.com
Guest
Posts: n/a
 
      12-22-2006
On Fri, 22 Dec 2006, Nathan Smith wrote:

> Watir (http://wtr.rubyforge.org/) and FireWatir (which uses jSSh) look
> promising. Those along with the tools mentioned earlier might be a start.


Those actually drive a real browser session, though. That's not really
what I need.


Kirk Haines

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
rdoc/usage replacement in ruby 1.9 for a CLI app? Juan felipe Alvarez saldarriaga Ruby 3 09-30-2009 07:53 PM
ruby-talk, comp.lang.ruby, ruby-talk-google Phrogz Ruby 4 09-06-2006 06:43 PM
#!/usr/bin/ruby , #!/usr/bin/ruby -w , #!/usr/bin/ruby -T?, #!/usr/bin/ruby -T1... anne001 Ruby 1 04-23-2006 03:02 PM
ruby replacement for net::patricia needed jm Ruby 5 05-10-2004 01:04 AM
[ANN] ruby-freedb, ruby-serialport, ruby-mp3info moved to Rubyforge guillaume.pierronnet@ratp.fr Ruby 0 08-31-2003 11:57 PM



Advertisments