You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Thom Hehl <Th...@pointsix.com> on 2011/05/05 14:58:04 UTC

Advice

OK, I've been through the manual and understand how to go about setting
up my tests technically. The thing that I seem to be missing is how to
set up tests meaningfully.

 

I have an application that receives packet data on a regular basis and
then allows people to log in and view reports of the data. I'd like to
write  a jmeter test that simultaneously simulates the data coming in
and the people logging in to review it.

 

So I've created a slew of UDP packets for coming in. It is important
that packets from the same source come in sequentially. When done I will
have 250 sources for these packets.

 

I started setting up a thread group for each of the sources with one
thread apiece, but it appears that jmeter wouldn't run more than 4 of
them. So now what do I do to simulate this load? Should I use threads?
How many, because the manual warns about too many.

 

Then how do I set up each of my tests. I want 50 users and each user
will own the data from 5 of the data sources. How do I set this part up?

 

Thanks.

 

 


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/06/2011 03:38 PM, sebb wrote:
> On 6 May 2011 14:33, Thom Hehl <Th...@pointsix.com> wrote:
>> It would be except when I started this exercise, I created 250 thread
>> groups, one for each device and put all of the packets in them. When I
>> ran the test, it only processed 4 thread groups. Jmeter evidently has
>> some kind of hard cap.
> 
> No, it does not.
> 
> But some error may have prevented all the groups from running; always
> check jmeter.log.

Depending on the structure of the original Test Plan, it is entirely
possible Java ran out of heapspace after a couple of Samplers.

Lean&mean may go a long way in this case.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by sebb <se...@gmail.com>.
On 6 May 2011 14:33, Thom Hehl <Th...@pointsix.com> wrote:
> It would be except when I started this exercise, I created 250 thread
> groups, one for each device and put all of the packets in them. When I
> ran the test, it only processed 4 thread groups. Jmeter evidently has
> some kind of hard cap.

No, it does not.

But some error may have prevented all the groups from running; always
check jmeter.log.

> -----Original Message-----
> From: apc [mailto:apc@apc.kg]
> Sent: Friday, May 06, 2011 9:33 AM
> To: jmeter-user@jakarta.apache.org
> Subject: RE: Advice
>
> It this applicable to you?:
>
> 1. Create 5 thread groups and set inside each of them Raw Data Source
> PreProcessor
> 2. Prepare 5 files in Raw Request format for 5 UDP streams
> 3. Set filenames in Raw Data Source
>
>
>
>
> --
> View this message in context:
> http://jmeter.512774.n5.nabble.com/Advice-tp4372716p4375918.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
It would be except when I started this exercise, I created 250 thread
groups, one for each device and put all of the packets in them. When I
ran the test, it only processed 4 thread groups. Jmeter evidently has
some kind of hard cap.

-----Original Message-----
From: apc [mailto:apc@apc.kg] 
Sent: Friday, May 06, 2011 9:33 AM
To: jmeter-user@jakarta.apache.org
Subject: RE: Advice

It this applicable to you?:

1. Create 5 thread groups and set inside each of them Raw Data Source
PreProcessor
2. Prepare 5 files in Raw Request format for 5 UDP streams
3. Set filenames in Raw Data Source




--
View this message in context:
http://jmeter.512774.n5.nabble.com/Advice-tp4372716p4375918.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by apc <ap...@apc.kg>.
It this applicable to you?:

1. Create 5 thread groups and set inside each of them Raw Data Source
PreProcessor
2. Prepare 5 files in Raw Request format for 5 UDP streams
3. Set filenames in Raw Data Source




--
View this message in context: http://jmeter.512774.n5.nabble.com/Advice-tp4372716p4375918.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by sebb <se...@gmail.com>.
Probably, but why?
What are you trying to achieve?

On 6 May 2011 15:02, Thom Hehl <Th...@pointsix.com> wrote:
> Could I use __StringFromFile instead? Then, is there a way for me to use
> this with the while controller to process the entire file?
>
> -----Original Message-----
> From: Felix Frank [mailto:ff@mpexnet.de]
> Sent: Friday, May 06, 2011 9:38 AM
> To: JMeter Users List
> Subject: Re: Advice
>
> On 05/06/2011 03:32 PM, Thom Hehl wrote:
>> Aha! Now we're getting somewhere. So if I have 250 CSV files, each of
>> which contains all of the packets for that device, and set up the UDV
> to
>> point to each of those CSV files, then wouldn't that do what I need?
>
> Yes. Or you name them "SensorData1.csv", "SensorData2.csv" ...
> and have each thread use 'SensorData${__threadNum}.csv' (I'm not sure
> about the syntax right now), in which case no UDV is needed. (Do this.)
>
> Cheers,
> Felix
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
Could I use __StringFromFile instead? Then, is there a way for me to use
this with the while controller to process the entire file?

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Friday, May 06, 2011 9:38 AM
To: JMeter Users List
Subject: Re: Advice

On 05/06/2011 03:32 PM, Thom Hehl wrote:
> Aha! Now we're getting somewhere. So if I have 250 CSV files, each of
> which contains all of the packets for that device, and set up the UDV
to
> point to each of those CSV files, then wouldn't that do what I need?

Yes. Or you name them "SensorData1.csv", "SensorData2.csv" ...
and have each thread use 'SensorData${__threadNum}.csv' (I'm not sure
about the syntax right now), in which case no UDV is needed. (Do this.)

Cheers,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Barrie Treloar <ba...@gmail.com>.
On Sat, May 7, 2011 at 12:29 AM, Thom Hehl <Th...@pointsix.com> wrote:
> OK, I think I have this working. Yeah!
>
> Can someone tell me how to read the chart produced by graph results? I
> don't understand what all of the values mean.

It is *VERY* important, for you to post your solution in detail so
that others can gain this experience by searching mail archives.

I know I get frustrated when there is a lot of advice in a thread and
then the last post is "solved, thanks" with no details.

Besides, we might tell you your solutions isn't quite there yet :)

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
OK, I think I have this working. Yeah!

Can someone tell me how to read the chart produced by graph results? I
don't understand what all of the values mean.

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Friday, May 06, 2011 9:38 AM
To: JMeter Users List
Subject: Re: Advice

On 05/06/2011 03:32 PM, Thom Hehl wrote:
> Aha! Now we're getting somewhere. So if I have 250 CSV files, each of
> which contains all of the packets for that device, and set up the UDV
to
> point to each of those CSV files, then wouldn't that do what I need?

Yes. Or you name them "SensorData1.csv", "SensorData2.csv" ...
and have each thread use 'SensorData${__threadNum}.csv' (I'm not sure
about the syntax right now), in which case no UDV is needed. (Do this.)

Cheers,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/06/2011 03:32 PM, Thom Hehl wrote:
> Aha! Now we're getting somewhere. So if I have 250 CSV files, each of
> which contains all of the packets for that device, and set up the UDV to
> point to each of those CSV files, then wouldn't that do what I need?

Yes. Or you name them "SensorData1.csv", "SensorData2.csv" ...
and have each thread use 'SensorData${__threadNum}.csv' (I'm not sure
about the syntax right now), in which case no UDV is needed. (Do this.)

Cheers,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
Aha! Now we're getting somewhere. So if I have 250 CSV files, each of
which contains all of the packets for that device, and set up the UDV to
point to each of those CSV files, then wouldn't that do what I need?

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Friday, May 06, 2011 9:31 AM
To: JMeter Users List
Subject: Re: Advice

On 05/06/2011 03:24 PM, Thom Hehl wrote:
> OK.
> 
> I need to simulate 250 devices in the field. Each of these devices is
> one of 1/2 dozen types of sensors that read whatever, often
temperature,
> and send it's information along via UDP packet to the host. The
packets
> are time encoded and must be sent sequentially for me to simulate the
> load I wish.
> 
> If I use Felix's approach, would I just have one set of packets that
> would get run 250 times?

No, each Thread reads an arbitrary number of values from one of your 250
CSVs, sequentially. Each of those values is stored in a variable that
gets fed to the UDP Sampler.

Test plan looks like

+ UDV
+ Thread Group
-+ Loop Controller ( x #of values per CSV )
--+ CSV Data Config
--+ UDP Sampler

The UDV tells each thread which CSV to use.

Cheers,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/06/2011 03:24 PM, Thom Hehl wrote:
> OK.
> 
> I need to simulate 250 devices in the field. Each of these devices is
> one of 1/2 dozen types of sensors that read whatever, often temperature,
> and send it's information along via UDP packet to the host. The packets
> are time encoded and must be sent sequentially for me to simulate the
> load I wish.
> 
> If I use Felix's approach, would I just have one set of packets that
> would get run 250 times?

No, each Thread reads an arbitrary number of values from one of your 250
CSVs, sequentially. Each of those values is stored in a variable that
gets fed to the UDP Sampler.

Test plan looks like

+ UDV
+ Thread Group
-+ Loop Controller ( x #of values per CSV )
--+ CSV Data Config
--+ UDP Sampler

The UDV tells each thread which CSV to use.

Cheers,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
OK.

I need to simulate 250 devices in the field. Each of these devices is
one of 1/2 dozen types of sensors that read whatever, often temperature,
and send it's information along via UDP packet to the host. The packets
are time encoded and must be sent sequentially for me to simulate the
load I wish.

If I use Felix's approach, would I just have one set of packets that
would get run 250 times?

-----Original Message-----
From: sebb [mailto:sebbaz@gmail.com] 
Sent: Friday, May 06, 2011 9:22 AM
To: JMeter Users List
Subject: Re: Advice

Maybe we could help more if you described the scenario in terms of the
external requests that you want to make.

For example, for a web site this might be:
GET URL 1
POST to URL 2 with parameters a,b,c
etc.

On 6 May 2011 14:12, Thom Hehl <Th...@pointsix.com> wrote:
> Nuts!
>
> OK, so what I think you're telling me is that I can set up thread
> variables and alter the individual packets so that they are compatible
> with the thread that they're running.
>
> The problem is that I can't do that. The packets from each device that
I
> have captured MUST run sequentially. I can't guarantee that with
jmeter
> picking which packet to run with which thread, so I can't use this
> solution if that's what you're telling me.
>
> So, then, we're back to square 1. How do I simulate these 250 devices
> with their 1,000-2,000 packets apiece that must be run sequentially?
>
> -----Original Message-----
> From: Felix Frank [mailto:ff@mpexnet.de]
> Sent: Friday, May 06, 2011 9:09 AM
> To: JMeter Users List
> Subject: Re: Advice
>
> On 05/06/2011 02:56 PM, Thom Hehl wrote:
>> Each UDP thread will represent a single device. The HTTP threads will
>> look at data with each HTTP user receiving 5 of the devices. I don't
>> have to wait until all of the UDP threads are done, just one from
each
>> device so the devices are all set up.
>>
>> I think, therefore, that the HTTP requests will be in their own
thread
>> group.
>
> Fair assumption.
>
> Don't use rampup in the HTTP group though - use the "Startup delay".
>
>> Everything I read about CSV data configuration is about assigning
>> variables. What I need to know is how to control the UDP Sampler
> packets
>> using these variables.
>
> Sorry, beats me. Looking at the TCP sampler, I would use variables in
> the "Text to send" field. My text to send could be 'This is the sample
> input ${MY_INPUT} end' or somesuch.
> Here, MY_INPUT would have been a variable I seeded e.g. using a CSV
> dataset config.
>
> I have no idea how that UDP sampler works in comparison.
>
> Regards,
> Felix
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by sebb <se...@gmail.com>.
Maybe we could help more if you described the scenario in terms of the
external requests that you want to make.

For example, for a web site this might be:
GET URL 1
POST to URL 2 with parameters a,b,c
etc.

On 6 May 2011 14:12, Thom Hehl <Th...@pointsix.com> wrote:
> Nuts!
>
> OK, so what I think you're telling me is that I can set up thread
> variables and alter the individual packets so that they are compatible
> with the thread that they're running.
>
> The problem is that I can't do that. The packets from each device that I
> have captured MUST run sequentially. I can't guarantee that with jmeter
> picking which packet to run with which thread, so I can't use this
> solution if that's what you're telling me.
>
> So, then, we're back to square 1. How do I simulate these 250 devices
> with their 1,000-2,000 packets apiece that must be run sequentially?
>
> -----Original Message-----
> From: Felix Frank [mailto:ff@mpexnet.de]
> Sent: Friday, May 06, 2011 9:09 AM
> To: JMeter Users List
> Subject: Re: Advice
>
> On 05/06/2011 02:56 PM, Thom Hehl wrote:
>> Each UDP thread will represent a single device. The HTTP threads will
>> look at data with each HTTP user receiving 5 of the devices. I don't
>> have to wait until all of the UDP threads are done, just one from each
>> device so the devices are all set up.
>>
>> I think, therefore, that the HTTP requests will be in their own thread
>> group.
>
> Fair assumption.
>
> Don't use rampup in the HTTP group though - use the "Startup delay".
>
>> Everything I read about CSV data configuration is about assigning
>> variables. What I need to know is how to control the UDP Sampler
> packets
>> using these variables.
>
> Sorry, beats me. Looking at the TCP sampler, I would use variables in
> the "Text to send" field. My text to send could be 'This is the sample
> input ${MY_INPUT} end' or somesuch.
> Here, MY_INPUT would have been a variable I seeded e.g. using a CSV
> dataset config.
>
> I have no idea how that UDP sampler works in comparison.
>
> Regards,
> Felix
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
Nuts!

OK, so what I think you're telling me is that I can set up thread
variables and alter the individual packets so that they are compatible
with the thread that they're running. 

The problem is that I can't do that. The packets from each device that I
have captured MUST run sequentially. I can't guarantee that with jmeter
picking which packet to run with which thread, so I can't use this
solution if that's what you're telling me.

So, then, we're back to square 1. How do I simulate these 250 devices
with their 1,000-2,000 packets apiece that must be run sequentially?

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Friday, May 06, 2011 9:09 AM
To: JMeter Users List
Subject: Re: Advice

On 05/06/2011 02:56 PM, Thom Hehl wrote:
> Each UDP thread will represent a single device. The HTTP threads will
> look at data with each HTTP user receiving 5 of the devices. I don't
> have to wait until all of the UDP threads are done, just one from each
> device so the devices are all set up.
> 
> I think, therefore, that the HTTP requests will be in their own thread
> group.

Fair assumption.

Don't use rampup in the HTTP group though - use the "Startup delay".

> Everything I read about CSV data configuration is about assigning
> variables. What I need to know is how to control the UDP Sampler
packets
> using these variables.

Sorry, beats me. Looking at the TCP sampler, I would use variables in
the "Text to send" field. My text to send could be 'This is the sample
input ${MY_INPUT} end' or somesuch.
Here, MY_INPUT would have been a variable I seeded e.g. using a CSV
dataset config.

I have no idea how that UDP sampler works in comparison.

Regards,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/06/2011 02:56 PM, Thom Hehl wrote:
> Each UDP thread will represent a single device. The HTTP threads will
> look at data with each HTTP user receiving 5 of the devices. I don't
> have to wait until all of the UDP threads are done, just one from each
> device so the devices are all set up.
> 
> I think, therefore, that the HTTP requests will be in their own thread
> group.

Fair assumption.

Don't use rampup in the HTTP group though - use the "Startup delay".

> Everything I read about CSV data configuration is about assigning
> variables. What I need to know is how to control the UDP Sampler packets
> using these variables.

Sorry, beats me. Looking at the TCP sampler, I would use variables in
the "Text to send" field. My text to send could be 'This is the sample
input ${MY_INPUT} end' or somesuch.
Here, MY_INPUT would have been a variable I seeded e.g. using a CSV
dataset config.

I have no idea how that UDP sampler works in comparison.

Regards,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
Each UDP thread will represent a single device. The HTTP threads will
look at data with each HTTP user receiving 5 of the devices. I don't
have to wait until all of the UDP threads are done, just one from each
device so the devices are all set up.

I think, therefore, that the HTTP requests will be in their own thread
group.

Everything I read about CSV data configuration is about assigning
variables. What I need to know is how to control the UDP Sampler packets
using these variables.

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Friday, May 06, 2011 8:35 AM
To: JMeter Users List
Subject: Re: Advice

On 05/06/2011 02:24 PM, Thom Hehl wrote:
> I really appreciate all the advice here. My comprehension of the
basics
> is "fumbling in the dark." :)
> 
> Yes, I'm really doing load testing, so I don't need much co-ordination
> between the threads. All I need to make sure is that the UDP packets
> start coming in before I start with the users, which I will use the
> ramp-up period on the thread group. So I don't think this should be
too
> difficult. I'm using the UDPRequest Sampler that someone pointed me to
> in an open source jmeter plugins project.
> 
> So the important things are that the UDP packets for a particular
source
> device must run in that order and that one packet arrive from each
> device before I start HTTP testing. This is because the initial packet
> from the source device does set up in the DB so it can be used by one
of
> the HTTP users reporting.
> 
> So if I understand what you're saying, I can assign the variables from
a
> CSV file, which I'm fine with. I think I can figure that out or assign
> them in the UDV. This part is simple for me to understand.
> 
> What I can't seem to follow in the notes from you and Felix is how do
I
> tell each of my Sampler packets what thread it belongs to and how to
> tell Jmeter to run those samplers as part of that thread.
> 
> I will face a similar problem when I reach the HTTP thread group
because
> I'll want each of the users to have their packets together as well.
> 
> Felix, I looked for "sholw plan" but couldn't find anything.

Sorry, meant to write "whole plan" ;(

Is still don't get it.

If I read the top of your post right, each Thread should

1. fire a series of UDP datagrams to populate a DB
2. after that'd done, send a couple HTTP requests and look at the
results

If that's the case, your test plan will be simple

+ User Defined Variables
+ Thread Group
-+ CSV Data Config
-+ UDP Sampler 1
-+ UDP Sampler 2
-+ ...
-+ HTTP Sampler 1
-+ ...

Each thread gets its data from CSV and proceeds with UDP then HTTP.

The bottom of your post reads like something totally different though,
so you may need to get yet *more* specific on where this needs to go ;-)

HTH,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/06/2011 02:24 PM, Thom Hehl wrote:
> I really appreciate all the advice here. My comprehension of the basics
> is "fumbling in the dark." :)
> 
> Yes, I'm really doing load testing, so I don't need much co-ordination
> between the threads. All I need to make sure is that the UDP packets
> start coming in before I start with the users, which I will use the
> ramp-up period on the thread group. So I don't think this should be too
> difficult. I'm using the UDPRequest Sampler that someone pointed me to
> in an open source jmeter plugins project.
> 
> So the important things are that the UDP packets for a particular source
> device must run in that order and that one packet arrive from each
> device before I start HTTP testing. This is because the initial packet
> from the source device does set up in the DB so it can be used by one of
> the HTTP users reporting.
> 
> So if I understand what you're saying, I can assign the variables from a
> CSV file, which I'm fine with. I think I can figure that out or assign
> them in the UDV. This part is simple for me to understand.
> 
> What I can't seem to follow in the notes from you and Felix is how do I
> tell each of my Sampler packets what thread it belongs to and how to
> tell Jmeter to run those samplers as part of that thread.
> 
> I will face a similar problem when I reach the HTTP thread group because
> I'll want each of the users to have their packets together as well.
> 
> Felix, I looked for "sholw plan" but couldn't find anything.

Sorry, meant to write "whole plan" ;(

Is still don't get it.

If I read the top of your post right, each Thread should

1. fire a series of UDP datagrams to populate a DB
2. after that'd done, send a couple HTTP requests and look at the results

If that's the case, your test plan will be simple

+ User Defined Variables
+ Thread Group
-+ CSV Data Config
-+ UDP Sampler 1
-+ UDP Sampler 2
-+ ...
-+ HTTP Sampler 1
-+ ...

Each thread gets its data from CSV and proceeds with UDP then HTTP.

The bottom of your post reads like something totally different though,
so you may need to get yet *more* specific on where this needs to go ;-)

HTH,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
I really appreciate all the advice here. My comprehension of the basics
is "fumbling in the dark." :)

Yes, I'm really doing load testing, so I don't need much co-ordination
between the threads. All I need to make sure is that the UDP packets
start coming in before I start with the users, which I will use the
ramp-up period on the thread group. So I don't think this should be too
difficult. I'm using the UDPRequest Sampler that someone pointed me to
in an open source jmeter plugins project.

So the important things are that the UDP packets for a particular source
device must run in that order and that one packet arrive from each
device before I start HTTP testing. This is because the initial packet
from the source device does set up in the DB so it can be used by one of
the HTTP users reporting.

So if I understand what you're saying, I can assign the variables from a
CSV file, which I'm fine with. I think I can figure that out or assign
them in the UDV. This part is simple for me to understand.

What I can't seem to follow in the notes from you and Felix is how do I
tell each of my Sampler packets what thread it belongs to and how to
tell Jmeter to run those samplers as part of that thread.

I will face a similar problem when I reach the HTTP thread group because
I'll want each of the users to have their packets together as well.

Felix, I looked for "sholw plan" but couldn't find anything.

Thanks!


-----Original Message-----
From: Barrie Treloar [mailto:baerrach@gmail.com] 
Sent: Thursday, May 05, 2011 10:41 PM
To: JMeter Users List
Subject: Re: Advice

On Fri, May 6, 2011 at 12:50 AM, Felix Frank <ff...@mpexnet.de> wrote:
[del]
> I cannot be much more helpful without knowing more specifics about
your
> Test Plan. Most people just test HTTP. A common idea is to either have
> each thread use a distinct set of URLs from a CSV file, or read some
> specific parameters from CSV so each thread passes other information
to
> the web application.

Because most people use plain HTTP you will need to dig deeper into
the documentation and do a lot more trial and error.

I recommend that if you find anything lacking in documentation to
submit patches to fix them.

I know I've found the Java sampler request stuff more difficult than
it needed to be, but I recognise I'm out on the bleeding edge here.
(I'm also simulating a UDP client sending/receiving packets to a UDP
server)

>From your description of your test plan you should be able to get
JMeter to do what you want.

Where you will find problems is in coordinating thread communication.
e.g.
I envision you having a test plan something like this:
* one ThreadGroup where each Thread in that group represents one
source of information.
Then in the test plan for that ThreadGroup you would load the UDP test
data assigned for that Thread and then sequentially send each packet
until it runs out of data. (Source ID probably assigned via CSV, from
the Source ID you can find the packets you need to send)
* one ThreadGroup where each Thread in that group represents a user
browsing the UDP data.
Then in the test plan for that ThreadGroup you would assign which UDP
stream that Thread will browse.

Because you have independent threads running you will somehow need to
work out how to know your "user browsing" test plan is working
correctly.

Alternatively you merge these two ThreadGroups into one ThreadGroup
and at defined points in the test plan you "browse" instead of sending
a UDP packet to verify that what you are browsing is correct.

Perhaps this is tending too much away from "Load Testing" and into
"Functional Testing".
If your browsing plan just checked it got something sane back rather
than the details are what it expected that would make your tests
easier.  You will need to make the decision on how much effort you are
willing to put into the tests.


As an aside, how are you sending the UDP packets?
I had to write Java code implementing JavaSamplerClient in order to
simulate our application.

If you are writing Java code, then you can use a static class variable
as you "global" access point about how far a particular source has
reached and your user threads can verify that it can browse at least
that much data.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Barrie Treloar <ba...@gmail.com>.
On Fri, May 6, 2011 at 12:50 AM, Felix Frank <ff...@mpexnet.de> wrote:
[del]
> I cannot be much more helpful without knowing more specifics about your
> Test Plan. Most people just test HTTP. A common idea is to either have
> each thread use a distinct set of URLs from a CSV file, or read some
> specific parameters from CSV so each thread passes other information to
> the web application.

Because most people use plain HTTP you will need to dig deeper into
the documentation and do a lot more trial and error.

I recommend that if you find anything lacking in documentation to
submit patches to fix them.

I know I've found the Java sampler request stuff more difficult than
it needed to be, but I recognise I'm out on the bleeding edge here.
(I'm also simulating a UDP client sending/receiving packets to a UDP server)

>From your description of your test plan you should be able to get
JMeter to do what you want.

Where you will find problems is in coordinating thread communication.
e.g.
I envision you having a test plan something like this:
* one ThreadGroup where each Thread in that group represents one
source of information.
Then in the test plan for that ThreadGroup you would load the UDP test
data assigned for that Thread and then sequentially send each packet
until it runs out of data. (Source ID probably assigned via CSV, from
the Source ID you can find the packets you need to send)
* one ThreadGroup where each Thread in that group represents a user
browsing the UDP data.
Then in the test plan for that ThreadGroup you would assign which UDP
stream that Thread will browse.

Because you have independent threads running you will somehow need to
work out how to know your "user browsing" test plan is working
correctly.

Alternatively you merge these two ThreadGroups into one ThreadGroup
and at defined points in the test plan you "browse" instead of sending
a UDP packet to verify that what you are browsing is correct.

Perhaps this is tending too much away from "Load Testing" and into
"Functional Testing".
If your browsing plan just checked it got something sane back rather
than the details are what it expected that would make your tests
easier.  You will need to make the decision on how much effort you are
willing to put into the tests.


As an aside, how are you sending the UDP packets?
I had to write Java code implementing JavaSamplerClient in order to
simulate our application.

If you are writing Java code, then you can use a static class variable
as you "global" access point about how far a particular source has
reached and your user threads can verify that it can browse at least
that much data.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/05/2011 05:02 PM, Thom Hehl wrote:
> Uh-huh. Pretend like I'm fumbling in a dark room and your holding a
> candle about 100 feet away. It's helping, but you're either gonna have
> to shine brighter or I need to move closer.

No way for me to assert how far into the basics you are yet ;/

> Um, OK. So I understand that I need to set up UDVs in my thread group.
> OK, my thread group contains a bunch of UDP Request Samplers. How do I
> configure them to determine which thread to run in? Is this a logic
> controller?

Each Thread will proceed with the sholw plan defined in its Thread
Group. In the Thread Group proper you define the number of Threads you want.

If you want to do each Thread to do something different, you either have
to use Thread local items like the threadNum function, or use User
Defined Variables.

I cannot be much more helpful without knowing more specifics about your
Test Plan. Most people just test HTTP. A common idea is to either have
each thread use a distinct set of URLs from a CSV file, or read some
specific parameters from CSV so each thread passes other information to
the web application.

If you can infer from the links posted earlier how these goals can be
met, you may be able to map that to your own requirements.

Otherwise, you may want to share more specifics about those requirements.

HTH,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
Uh-huh. Pretend like I'm fumbling in a dark room and your holding a
candle about 100 feet away. It's helping, but you're either gonna have
to shine brighter or I need to move closer.

Um, OK. So I understand that I need to set up UDVs in my thread group.
OK, my thread group contains a bunch of UDP Request Samplers. How do I
configure them to determine which thread to run in? Is this a logic
controller?

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Thursday, May 05, 2011 9:36 AM
To: JMeter Users List
Subject: Re: Advice

On 05/05/2011 03:10 PM, Thom Hehl wrote:
> I am using a program to generate the XML packets for me in the test.
> 
> I understand that for this, I will set up 250 threads on the thread
> group. Unfortunately, that's the only thing that's clear to me from
what
> you said.
> 
> What will I be using the User Defined Variable for? How will a
> particular thread know which packets belong to it?

In the UDV, you can assign an arbitrary value unique to each thread (you
need not do this if you can take advantage of, say, the threadNum
function, see
http://jakarta.apache.org/jmeter/usermanual/functions.html#__threadNum)
or set of threads.

Each thread can use this value (or its own number) to seed e.g. a CSV
Dataset Config
(http://jakarta.apache.org/jmeter/usermanual/component_reference.html#CS
V_Data_Set_Config).

>From your CSV files, each of your thread configures itself so as to run
a distinct set of the tests you have already developed.

HTH,
Felix

> -----Original Message-----
> From: Felix Frank [mailto:ff@mpexnet.de] 
> Sent: Thursday, May 05, 2011 9:07 AM
> To: JMeter Users List
> Subject: Re: Advice
> 
> On 05/05/2011 02:58 PM, Thom Hehl wrote:
>> OK, I've been through the manual and understand how to go about
> setting
>> up my tests technically. The thing that I seem to be missing is how
to
>> set up tests meaningfully.
>>
>>  
>>
>> I have an application that receives packet data on a regular basis
and
>> then allows people to log in and view reports of the data. I'd like
to
>> write  a jmeter test that simultaneously simulates the data coming in
>> and the people logging in to review it.
>>
>>  
>>
>> So I've created a slew of UDP packets for coming in. It is important
>> that packets from the same source come in sequentially. When done I
> will
>> have 250 sources for these packets.
>>
>>  
>>
>> I started setting up a thread group for each of the sources with one
>> thread apiece, but it appears that jmeter wouldn't run more than 4 of
>> them. So now what do I do to simulate this load? Should I use
threads?
>> How many, because the manual warns about too many.
>>
>>  
>>
>> Then how do I set up each of my tests. I want 50 users and each user
>> will own the data from 5 of the data sources. How do I set this part
> up?
> 
> Hi,
> 
> sounds like a job for 250 Threads and some User Defined Variables
> elements.
> You can define variable values for each Thread, or define, say, 50
> values, so that each value will be shared by 5 Threads.
> 
> Managing this in the GUI is bound to be painful, so you may want to
> start out small and then expand the .jmx file with an editor or
> scripting language.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Barrie Treloar <ba...@gmail.com>.
On Thu, May 5, 2011 at 11:06 PM, Felix Frank <ff...@mpexnet.de> wrote:
[del]
>> What will I be using the User Defined Variable for? How will a
>> particular thread know which packets belong to it?
>
> In the UDV, you can assign an arbitrary value unique to each thread (you
> need not do this if you can take advantage of, say, the threadNum
> function, see
> http://jakarta.apache.org/jmeter/usermanual/functions.html#__threadNum)
> or set of threads.

Beware of the small print
http://jakarta.apache.org/jmeter/usermanual/component_reference.html#User_Defined_Variables

"Note that all the UDV elements in a test plan - no matter where they
are - are processed at the start."

I recommend placing the UDVs at the start as well, so there is no confusion.
If you place them under thread groups it looks like the UDVs are
per-Group or pre-Component, which is not correct and will only cause
you grief.

Just bare this in mind when you start to develop the complexity of
your test plans.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/05/2011 03:10 PM, Thom Hehl wrote:
> I am using a program to generate the XML packets for me in the test.
> 
> I understand that for this, I will set up 250 threads on the thread
> group. Unfortunately, that's the only thing that's clear to me from what
> you said.
> 
> What will I be using the User Defined Variable for? How will a
> particular thread know which packets belong to it?

In the UDV, you can assign an arbitrary value unique to each thread (you
need not do this if you can take advantage of, say, the threadNum
function, see
http://jakarta.apache.org/jmeter/usermanual/functions.html#__threadNum)
or set of threads.

Each thread can use this value (or its own number) to seed e.g. a CSV
Dataset Config
(http://jakarta.apache.org/jmeter/usermanual/component_reference.html#CSV_Data_Set_Config).

>From your CSV files, each of your thread configures itself so as to run
a distinct set of the tests you have already developed.

HTH,
Felix

> -----Original Message-----
> From: Felix Frank [mailto:ff@mpexnet.de] 
> Sent: Thursday, May 05, 2011 9:07 AM
> To: JMeter Users List
> Subject: Re: Advice
> 
> On 05/05/2011 02:58 PM, Thom Hehl wrote:
>> OK, I've been through the manual and understand how to go about
> setting
>> up my tests technically. The thing that I seem to be missing is how to
>> set up tests meaningfully.
>>
>>  
>>
>> I have an application that receives packet data on a regular basis and
>> then allows people to log in and view reports of the data. I'd like to
>> write  a jmeter test that simultaneously simulates the data coming in
>> and the people logging in to review it.
>>
>>  
>>
>> So I've created a slew of UDP packets for coming in. It is important
>> that packets from the same source come in sequentially. When done I
> will
>> have 250 sources for these packets.
>>
>>  
>>
>> I started setting up a thread group for each of the sources with one
>> thread apiece, but it appears that jmeter wouldn't run more than 4 of
>> them. So now what do I do to simulate this load? Should I use threads?
>> How many, because the manual warns about too many.
>>
>>  
>>
>> Then how do I set up each of my tests. I want 50 users and each user
>> will own the data from 5 of the data sources. How do I set this part
> up?
> 
> Hi,
> 
> sounds like a job for 250 Threads and some User Defined Variables
> elements.
> You can define variable values for each Thread, or define, say, 50
> values, so that each value will be shared by 5 Threads.
> 
> Managing this in the GUI is bound to be painful, so you may want to
> start out small and then expand the .jmx file with an editor or
> scripting language.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Advice

Posted by Thom Hehl <Th...@pointsix.com>.
I am using a program to generate the XML packets for me in the test.

I understand that for this, I will set up 250 threads on the thread
group. Unfortunately, that's the only thing that's clear to me from what
you said.

What will I be using the User Defined Variable for? How will a
particular thread know which packets belong to it?

-----Original Message-----
From: Felix Frank [mailto:ff@mpexnet.de] 
Sent: Thursday, May 05, 2011 9:07 AM
To: JMeter Users List
Subject: Re: Advice

On 05/05/2011 02:58 PM, Thom Hehl wrote:
> OK, I've been through the manual and understand how to go about
setting
> up my tests technically. The thing that I seem to be missing is how to
> set up tests meaningfully.
> 
>  
> 
> I have an application that receives packet data on a regular basis and
> then allows people to log in and view reports of the data. I'd like to
> write  a jmeter test that simultaneously simulates the data coming in
> and the people logging in to review it.
> 
>  
> 
> So I've created a slew of UDP packets for coming in. It is important
> that packets from the same source come in sequentially. When done I
will
> have 250 sources for these packets.
> 
>  
> 
> I started setting up a thread group for each of the sources with one
> thread apiece, but it appears that jmeter wouldn't run more than 4 of
> them. So now what do I do to simulate this load? Should I use threads?
> How many, because the manual warns about too many.
> 
>  
> 
> Then how do I set up each of my tests. I want 50 users and each user
> will own the data from 5 of the data sources. How do I set this part
up?

Hi,

sounds like a job for 250 Threads and some User Defined Variables
elements.
You can define variable values for each Thread, or define, say, 50
values, so that each value will be shared by 5 Threads.

Managing this in the GUI is bound to be painful, so you may want to
start out small and then expand the .jmx file with an editor or
scripting language.

HTH,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Advice

Posted by Felix Frank <ff...@mpexnet.de>.
On 05/05/2011 02:58 PM, Thom Hehl wrote:
> OK, I've been through the manual and understand how to go about setting
> up my tests technically. The thing that I seem to be missing is how to
> set up tests meaningfully.
> 
>  
> 
> I have an application that receives packet data on a regular basis and
> then allows people to log in and view reports of the data. I'd like to
> write  a jmeter test that simultaneously simulates the data coming in
> and the people logging in to review it.
> 
>  
> 
> So I've created a slew of UDP packets for coming in. It is important
> that packets from the same source come in sequentially. When done I will
> have 250 sources for these packets.
> 
>  
> 
> I started setting up a thread group for each of the sources with one
> thread apiece, but it appears that jmeter wouldn't run more than 4 of
> them. So now what do I do to simulate this load? Should I use threads?
> How many, because the manual warns about too many.
> 
>  
> 
> Then how do I set up each of my tests. I want 50 users and each user
> will own the data from 5 of the data sources. How do I set this part up?

Hi,

sounds like a job for 250 Threads and some User Defined Variables elements.
You can define variable values for each Thread, or define, say, 50
values, so that each value will be shared by 5 Threads.

Managing this in the GUI is bound to be painful, so you may want to
start out small and then expand the .jmx file with an editor or
scripting language.

HTH,
Felix

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org