D
Dav Yaginuma
[Note: parts of this message were removed to make it a legal post.]
I've done some research on this and I'm fairly convinced it doesn't exist,
but I thought I would just ask here in case I missed something.
I want to be able to full-stack load test a Ruby on Rails site (not that
rails matters in this context) running dynamic test plans across multiple
concurrent users in order to better replicate real world usage.
In other words, I'd like to run say 50 concurrent user sessions where some
of them are signing up, some are just browsing around, some are logging in
and doing UserActivity1, some are doing UserActivity2, etc.
I want to script the test plans in ruby, similar to a seleinum-rc test plan
where I can use the same DSL to simulate user input and identify parts of
the response html, and use that to drive further test activity. I'd like to
use some of the same DSL from my selenium or integration test helper modules
already developed in these tests as well in order to be DRY.
I would like the test framework to mimc the browser behaviour: handling
cookies and even simulating caching to send the appropriate
If-Modified-Since headers.
Since I would like to replicate actual request load on the server, I want to
make sure that all page assets, even static ones like images/css/js/flash,
are requested during the test, so it would be nice if an HTTP Proxy could be
used to create the initial test plans by recording actual browser sessions.
Some things I've looked at so far:
JMeter:
- seems difficult to make dynamic test plans here that will modify requests
based on earlier responses
- test plans are in XML, although I suppose I could use a ruby DSL to
generate the XML, but since the proxy records to XML I'd also have to
generate ruby from XML
The Grinder:
- Looks awesome, and I may end up going with this, but it would be nicer to
use ruby instead of Jython in order to leverage my teams existing code and
skills.
shell/curl/ruby script mish mash:
- A lot of control, and curl handles cookies, but no real framework support
and no proxy recording
Ruby code:
- Doesn't really seem to be any test framework that deals with concurrent
requests like this
- I assume JRuby would be required (and would be sufficient) to get real
threading
- I feel like there are probably a lot of pieces that could be tied together
to make what I want, but unsure of what they are or which ones to
concentrate on. Hpricot? Mechanize?
Anyone have any ideas? Is anyone doing load testing via ruby?
I've done some research on this and I'm fairly convinced it doesn't exist,
but I thought I would just ask here in case I missed something.
I want to be able to full-stack load test a Ruby on Rails site (not that
rails matters in this context) running dynamic test plans across multiple
concurrent users in order to better replicate real world usage.
In other words, I'd like to run say 50 concurrent user sessions where some
of them are signing up, some are just browsing around, some are logging in
and doing UserActivity1, some are doing UserActivity2, etc.
I want to script the test plans in ruby, similar to a seleinum-rc test plan
where I can use the same DSL to simulate user input and identify parts of
the response html, and use that to drive further test activity. I'd like to
use some of the same DSL from my selenium or integration test helper modules
already developed in these tests as well in order to be DRY.
I would like the test framework to mimc the browser behaviour: handling
cookies and even simulating caching to send the appropriate
If-Modified-Since headers.
Since I would like to replicate actual request load on the server, I want to
make sure that all page assets, even static ones like images/css/js/flash,
are requested during the test, so it would be nice if an HTTP Proxy could be
used to create the initial test plans by recording actual browser sessions.
Some things I've looked at so far:
JMeter:
- seems difficult to make dynamic test plans here that will modify requests
based on earlier responses
- test plans are in XML, although I suppose I could use a ruby DSL to
generate the XML, but since the proxy records to XML I'd also have to
generate ruby from XML
The Grinder:
- Looks awesome, and I may end up going with this, but it would be nicer to
use ruby instead of Jython in order to leverage my teams existing code and
skills.
shell/curl/ruby script mish mash:
- A lot of control, and curl handles cookies, but no real framework support
and no proxy recording
Ruby code:
- Doesn't really seem to be any test framework that deals with concurrent
requests like this
- I assume JRuby would be required (and would be sufficient) to get real
threading
- I feel like there are probably a lot of pieces that could be tied together
to make what I want, but unsure of what they are or which ones to
concentrate on. Hpricot? Mechanize?
Anyone have any ideas? Is anyone doing load testing via ruby?