Yep. You really need to implement what loadrunner has had for nigh on 15 years or so, now :)
Not to say it's a small job or anything, just that the open source tools really have a lot of catching up to do.. and I for one would welcome the existence of actual competition. :)
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+u...@googlegroups.com.
+10
Transactions.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--REALITY.SYS corrupted. Reboot Universe? (Y/N/Q)
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--REALITY.SYS corrupted. Reboot Universe? (Y/N/Q)
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+unsubscribe@googlegroups.com.
The difference between hitting URL's with raw data and simulating clicks on buttons can actually be quite large in terms of resource consumption, especially if that means running the half-a-million lines of javascript certain sites dump into your browser nowadays.This may not *yet* apply to gatling, but I guarantee you, once you start making the client simulation closer to what modern browsers do you're going to need more horsepower.
2) More complicated protocols require quite a lot more resources / CPU power.
Ajax/Trueclient, Citrix, "web services", ...
There are several possible reasons to scale out beyond "generators have limited resources".
1) Load balancers.
If you have a loadbalancer set to be IP-sticky then you'll need at a minimum more than one IP just to make sure the load gets spread across the backend machines properly. This can be done with IP spoofing, but often it's simpler (and less likely to upset network security people) to just have more than one generator.
The difference between hitting URL's with raw data and simulating clicks on buttons can actually be quite large in terms of resource consumption, especially if that means running the half-a-million lines of javascript certain sites dump into your browser nowadays.This may not *yet* apply to gatling, but I guarantee you, once you start making the client simulation closer to what modern browsers do you're going to need more horsepower.
2) More complicated protocols require quite a lot more resources / CPU power.
Ajax/Trueclient, Citrix, "web services", ...
3) Network bandwidth.
As Stéphane points out, if you are going to send really large amounts of data you can exceed the total capacity of the nic. This is really a variant of the "generators have limited resources" theme.
It happens less and less though. ;-)
4) Seperation of responsibilities.
Seperating the generator from the controller, the controller from the scheduler, the scheduler from the user interface etc is quite simply just good engineering.
If you want to offer your tester live views of what is going on inside the test you don't want the gui code to be running in the same JVM as the generator itself.
Nor do you want multiple users to be able to stomp all over each other's tests or analysis by accident - while you *do* want to offer a view of who ran what tests when. With a single monolithic app you simply can't do that.
"Scaling out" really is just a tiny subset of the things you can start doing once you have a properly architected set of components that talk to each other, rather than a monolithic application.
LR has 5 components:- Generator (LR agents)- Controller (controls a single test/one user simultaneously, can be used standalone to get a live view on whatever test you're running)
- Scripting interface (vugen, desktop app)- Analysis tool (also a desktop app)- ALM - aka "Performance Center" - Web interface useable by multiple people to run multiple tests simultaneously using any number of controllers and generators. Also offers live test views and tracks all the test assets (scripts, scenario's and what not)
The latter thing is pretty complicated stuff but it's really just a management interface around the first three items.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I agree on most of your points, but I have some comments
On Thursday, 19 December 2013 10:28:52 UTC+1, Floris Kraak wrote:There are several possible reasons to scale out beyond "generators have limited resources".
1) Load balancers.
If you have a loadbalancer set to be IP-sticky then you'll need at a minimum more than one IP just to make sure the load gets spread across the backend machines properly. This can be done with IP spoofing, but often it's simpler (and less likely to upset network security people) to just have more than one generator.Makes sense. However, most of the time, faulty load balancer configuration will end up routing all traffic from a single ip to one node. At the same time, it can easily be verified that all servers are being hit. I don't know about you guys, but we tend to use Big Ip LTM in our projects, and seldom have to modify the config. In addition, I believe one should be able to trust commercial grade enterprise hw/sw, considering that they perform lots of testing too on their side (using IXIA and the like).
The difference between hitting URL's with raw data and simulating clicks on buttons can actually be quite large in terms of resource consumption, especially if that means running the half-a-million lines of javascript certain sites dump into your browser nowadays.This may not *yet* apply to gatling, but I guarantee you, once you start making the client simulation closer to what modern browsers do you're going to need more horsepower.
2) More complicated protocols require quite a lot more resources / CPU power.
Ajax/Trueclient, Citrix, "web services", ...
Well, in my opinion, going down this pathway, will give you trouble. Until now, people have been focusing on writing applications that are unit testable. I believe it's about time people start writing apps that are performance testable - and drop using application frameworks that masks the HTTP protocol. If you're using JSF or Wicket or all kinds of portal-systems, you'll get in trouble. IMHO, REST-based (single page) applications are the way forward from a performance testing perspective.
3) Network bandwidth.
As Stéphane points out, if you are going to send really large amounts of data you can exceed the total capacity of the nic. This is really a variant of the "generators have limited resources" theme.
It happens less and less though. ;-)I've never had any issues during performance testing of regular web applications. Streaming and the likes might be a different story though.
4) Seperation of responsibilities.
Seperating the generator from the controller, the controller from the scheduler, the scheduler from the user interface etc is quite simply just good engineering.If you want to offer your tester live views of what is going on inside the test you don't want the gui code to be running in the same JVM as the generator itself.
Well, I believe it is a trade-off. If you gui uses lets say reactive programming techniques, then you should be ok.
Nor do you want multiple users to be able to stomp all over each other's tests or analysis by accident - while you *do* want to offer a view of who ran what tests when. With a single monolithic app you simply can't do that.
Agreed, however from my experience, most shops only have a few performance testers, and those guys should be able to talk to each other.
"Scaling out" really is just a tiny subset of the things you can start doing once you have a properly architected set of components that talk to each other, rather than a monolithic application.Agreed.- 1 generator 'spare'- 1 generator out of order or in maintenance.I've had some pretty interesting discussions with certain senior loadtesters over on the LR boards some time back. James Pulley for instance believes that all test farms should have at least 5 generators:5) Measurement quality.Quite simply put: If you are going to use just one generator, you can't be 100% sure that a bad response time is the result of the system under test being slow, or *the generator* being slow. Especially when generators are virtualized it isn't necessarily guaranteed that that generator has all of the resources on the physical hardware to itself. Nor can it be guaranteed that all of the components in that system are problem-free. A faulty nic can cause very large problems and it would be very easy to blame those on the system under test.
- 2 regular load generators
- 1 generator that runs only a fraction of the load, to measure the impact of the test load on responstimes for the first two machines.
That's a bit on the extreme side, though. ;-)>>>> Agreed. Faulty servers are troublesome.
LR has 5 components:- Generator (LR agents)
- Controller (controls a single test/one user simultaneously, can be used standalone to get a live view on whatever test you're running)
- Scripting interface (vugen, desktop app)- Analysis tool (also a desktop app)- ALM - aka "Performance Center" - Web interface useable by multiple people to run multiple tests simultaneously using any number of controllers and generators. Also offers live test views and tracks all the test assets (scripts, scenario's and what not)
The latter thing is pretty complicated stuff but it's really just a management interface around the first three items.I had to use a performance center setup recently. It's a nasty beast, and at least my installation was full of bugs and caused me lots of trouble. Mega hard to debug what was going on, too.I'd prefer a simpler architecture with one controller and a bunch of generators. Fewer components, less trouble.
Of course, it would be really nice to have all the features you mention. It comes at a price though, and that is less other features.
I also said "Citrix", remember? Things like that (or RDP, as another example) tend to be quite heavy.
Anyway, to get back to your point: HP has been trying to do that for years, with various degrees of success. Remember that "Ajax protocol" I was talking about as an example of something with horrible performance? That was one attempt.
The latest attempt has been TrueClient - and that's pretty much an embedded firefox instance used as a load generation tool.For some reason there is this idea floating around in upper management layers that performance testing has to be cheap, done by the cheapest people, using smart tools that do all the thinking for them. HP has been making steps towards unifying their functional test tool with loadrunner over the years, precisely for this reason.
Personally, I don't really agree. Performance is and always has been a complicated game, that require knowledgeable people. But that opinion isn't shared by everyone.
--
You received this message because you are subscribed to the Google Groups "Gatling User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gatling+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to a topic in the Google Groups "Gatling User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gatling/MZQKEQcgNeQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gatling+u...@googlegroups.com.