G'day Screen shots sent privately
Ian Blavins Contract Performance Engineer Temenos -----Original Message----- From: Sonam Chauhan [mailto:[EMAIL PROTECTED] Sent: 11 September 2007 10:22 To: JMeter Users List Subject: RE: running multiple JMeter instance in parallel Thanks Ian. I'm hankering after a visual picture. Do you mind outlining the structure of the top level include controller and at what level you find the include controller most useful? i.e. Do your tests look something like this? -------------------- Test Plan - Thread Group 1 ---Include Controller: Initialise test ---Include Controller: Run test 1 ---Include Controller: Run test 2 ... - Thread Group 2 ... -------------------- Do you know if JMeter 'property' variables (e.g., ${__P(some.property)} ) are accessible in the included test plans? Kind regards, Sonam Chauhan -- Corporate Express Australia Ltd. Phone: +61-2-93350725, Email: [EMAIL PROTECTED] -----Original Message----- From: iblavins [mailto:[EMAIL PROTECTED] Sent: Tuesday, 11 September 2007 7:03 PM To: 'JMeter Users List' Subject: RE: running multiple JMeter instance in parallel G'day Yes, I mean the include controller. It is not possible to pass variables in the sense of passing parameters. But from the perspective of include modules variables defined in the calling test plan are global (which is what makes this approach workable). Note that include modules can't include other modules - you can only go one level deep. (But you can invoke multiple level 1 include modules from the one test plan so you can further distribute complexity into multiple include modules). Ian Blavins Contract Performance Engineer Temenos -----Original Message----- From: Sonam Chauhan [mailto:[EMAIL PROTECTED] Sent: 11 September 2007 09:48 To: JMeter Users List Subject: RE: running multiple JMeter instance in parallel Thanks Ian - your setup is quite an eye opener. Can you describe it a bit more as I'm not clear how it works? >> INB I broke my test plan into two parts - a very simple test plan and a general purpose include module invoked by the plan to do the work. Were you referring to the JMeter include controller that includes other JMXs? Is it possible to pass variables between the top level test plan and the include module? Kind regards, Sonam Chauhan -- Corporate Express Australia Ltd. Phone: +61-2-93350725, Email: [EMAIL PROTECTED] -----Original Message----- From: iblavins [mailto:[EMAIL PROTECTED] Sent: Tuesday, 11 September 2007 6:21 PM To: 'JMeter Users List' Subject: RE: running multiple JMeter instance in parallel G'day See interspersed comments. Ian Blavins Contract Performance Engineer Temenos -----Original Message----- From: Sonam Chauhan [mailto:[EMAIL PROTECTED] Sent: 11 September 2007 08:25 To: JMeter Users List Subject: running multiple JMeter instance in parallel Hi JMeter users - I wanted your comments on large scale load testing approaches, and specifically on running multiple JMeter instances running different tests. Approach 1. One Big Plan One approach is to have a single humungous test plan with several thread groups. The disadvantages of this are the test plan becomes big and brittle, and the JVM size is susceptible to the 2GB Java memory limit (on 32 bit systems). >> INB I broke my test plan into two parts - a very simple test plan and a general purpose include module invoked by the plan to do the work. The design is intended so that I can have many test plans without having to worry about maintaining them - all the complexity is in the include module and I only have to maintain one copy of that. This may work for you since the thread groups can be simple invocations of the include module. Done right this will reduce the size, complexity, and brittleness of the test plans. >> INB Note that this doesn't address your 2G limit. Approach 2. JMeter Distributed Testing A second approach is JMeter distributed testing. I've not tried it because I assume each JMeter instances must run the same test plan (i.e., the same JMX -- is this right?), plus it seemed complicated. >> INB Approaches 1 and 2 aren't mutually exclusive. Assuming that by large scale you mean high volume and possibly also a large selection of transactions then you will probably need approach 2 just to get the throughput. Being Java JMeter can run on large scale server class machines and exploit them. So if you have a sufficiently large machine you may not need distributed testing but most people will need it for high throughput testing. High throughput here is, somewhat unhelpfully, throughput in excess of what one box can provide. Say a few hundred threads, depending on think time between transactions and complexity of the test plan and sampler. >> INB If you combine this with an include module be aware that JMeter will automatically refresh the test plan down from the driver to the slaves but you have to keep the include module up to date on the slaves manually. >> INB The investment to overcome the complexity is probably worth it. Once you have done it it will be a very long time before you need to worry about the size of your JMeter tests again Approach 3. External Script runs JMeter Instances in Parallel Another approach I've had success with for several years is to run multiple JMeter instances in parallel. I use a Perl script that forks separate processes, each running JMeter with a different testcase. The Perl script waits for all processes to complete, then collates the consolidated results by parsing the JMeter XML logfiles. I use this approach to run 15 JMeter concurrent instances on a server with 2 GB RAM. These issue about 1500 sampler requests in 10 minutes. The tests all end after 10 minutes and are iterated by rerunning the Perl script. All this is in non-GUI mode, of course. To get the 15 tests to run on the one machine, I had to pare down JMeter memory requirements (see the JVM parameters below). I basically reduced HEAP memory usage down and downshifted other parameters to match. >> INB If you can do this you don't need to be scared by getting distributed JMeter testing working The Challenge I've now got to scale the testing up to about 30 concurrent JMeter instances issuing a total of about 30,000 sampler requests in 30 minutes. I'm hoping the same approach should work, by increasing the server memory to 4 GB should help. Any comments on this approach and/or the JVM parameters I'm using below? Kind regards, Sonam Chauhan This email (and any attachments) contains confidential information, and is intended only for the named recipient. Distribution or copying of this email by anyone other than the named recipient is prohibited. If you are not the named or intended recipient, please notify TEMENOS or the sender immediately and permanently destroy this email (and any attachments) and all copies of it. No member of TEMENOS Group AG or any of its associated or affiliated companies is liable for any errors or omissions in the content or transmission of this email. Any opinions contained in this email are solely those of the author and, unless clearly indicated otherwise in writing, are not endorsed by any member of TEMENOS Group AG or any of its associated and affiliated companies. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This email (and any attachments) contains confidential information, and is intended only for the named recipient. Distribution or copying of this email by anyone other than the named recipient is prohibited. If you are not the named or intended recipient, please notify TEMENOS or the sender immediately and permanently destroy this email (and any attachments) and all copies of it. No member of TEMENOS Group AG or any of its associated or affiliated companies is liable for any errors or omissions in the content or transmission of this email. Any opinions contained in this email are solely those of the author and, unless clearly indicated otherwise in writing, are not endorsed by any member of TEMENOS Group AG or any of its associated and affiliated companies. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This email (and any attachments) contains confidential information, and is intended only for the named recipient. Distribution or copying of this email by anyone other than the named recipient is prohibited. If you are not the named or intended recipient, please notify TEMENOS or the sender immediately and permanently destroy this email (and any attachments) and all copies of it. No member of TEMENOS Group AG or any of its associated or affiliated companies is liable for any errors or omissions in the content or transmission of this email. Any opinions contained in this email are solely those of the author and, unless clearly indicated otherwise in writing, are not endorsed by any member of TEMENOS Group AG or any of its associated and affiliated companies. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

