If you put your sampler in a for-each controller, your sampler can
iterate through a set of user defined variables. I use this with a HTTP
request sampler when I want my test to hit a list of urls; this way I
only have to edit the urls in one place.

http://jakarta.apache.org/jmeter/usermanual/component_reference.html#For
Each_Controller
 

-matt

-----Original Message-----
From: sebb [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, April 16, 2008 10:28 AM
To: JMeter Users List
Subject: Re: junit sampler accepting variables

On 16/04/2008, John Hawkins <[EMAIL PROTECTED]> wrote:
> You're right, the only way to do this is via System.properties. What I
was looking for was a way to set the System.properties for the Junit
test from within jmeter rather than having to do it globally. At the
moment, using jmeter system.properties each test will see the same set
of values. What I'd like to do is change it so that each test can have
it's individual system.properties set just before it's invoked.
>

Note that System properties are shared between all threads in all
thread groups, so you can only safely change the values if you know
that there are no tests currently executing.

>  I've hacked the Junit sampler so that it does this so far
>
>  public SampleResult sample(Entry entry) {
>         PropertyIterator iterator = this.propertyIterator();
>         while(iterator.hasNext())
>         {
>             JMeterProperty property= iterator.next();
>             System.setProperty(property.getName(),
property.getObjectValue().toString());
>         }
>
>  This gets the alll the properties around available to the junit.

Yes, but this won't be safe.

>  I was wondering if by using eg. a csv file I could do some more
interesting stuff e.g. each line in the csv file was a new set of test
properties and these could be set so that the thread group for the
producer could run and each call to the junit got the next line in the
csv file as a property name. e.g.
>  csv =
>  1,2
>  2,3
>  3,4
>
>  thread group and thus junit first time round go the system properties
NUMBER_OF_MESSAGES=1 & SIZE_OF_MESSAGES=2. the second time round the
values were 2, 3 etc.
>
>  It look like JMeter gets close to this but I haven't sat down and
looked at what it looks like in the code yet to hack it into the junit
sampler.
>  what do you think?
>

DIfficult to get this right for the reasons explained above.

The only safe way to do this is to set all the properties before you
start the test - in which case you might as well add them to the
system.properties file or supply them on the JMeter command-line.

>
>
>
>
>
>
>
>  On 16/04/2008, John Hawkins <[EMAIL PROTECTED]> wrote:
>  > Hi,
>  >
>  >  Not quite sure what you're asking me so I'll tell you my
scenario...
>  >
>  >  I have a test-plan which has two thread groups. each thread group
has a JUnit request in it one thread group is a producer Junit request
and the other a consumer Junit request. I'd like to pass in some global
properties so that they both see them; for instance, how many messages
to send and how big the messages should be I would like the consumer and
producer JUnit tests to be able to pick up these variables (e.g. using
system.getProperty() )and change their behaviour accordingly. I can then
use the same producer and consumer junit classes for the same tests just
with different parameters for the message size and number of messages.
>  >
>  >  I can see that I can set variables in various ways but I can't see
any doc that says that they'll get seen by the junit tests themselves.
>  >
>  JUnit tests won't have access to JMeter properties, nor will they
have
>  access to JMeter variables.
>  However, if you set System properties they will be visible to all
code.
>  >  If there's a better way to do this then I'm all ears. To be honest
I'm struggling with the concepts here.
>  If you were not using JMeter, how would you pass parameters to the
JUnit tests?
>  As far as I know, there is no way to pass values to JUnit tests
except
>  via properties - or perhaps files.
>  >  many thanks,
>  >  John.
>  >
>  >
>  >
>  >  sebb <[EMAIL PROTECTED]>
>  >  16/04/2008 11:13
>  >  Please respond to
>  >  "JMeter Users List" <[email protected]>
>  >
>  >         To
>  >         "JMeter Users List" <[email protected]>
>  >         cc
>  >
>  >         Subject
>  >         Re: junit sampler accepting variables
>  >
>  >
>  >
>  >
>  >
>  >
>  >
>  >  On 16/04/2008, John Hawkins <[EMAIL PROTECTED]> wrote:
>  >  > Hi,
>  >  >
>  >  >
>  >  >  I mean so that the junit test can pick up system.properties
that have been set in a user defined variables "node"? It would also be
useful if the junit could pick up variables from the testplan level user
defined variables.
>  >  >
>  >  But which parameters on the JUnit sampler GUI need to be able to
pick
>  >  up these variables?
>  >  >  cheers,
>  >  >
>  >  > John.
>  >  >
>  >  >
>  >  >
>  >  >  On 15/04/2008, John Hawkins <[EMAIL PROTECTED]> wrote:
>  >  >  > hi,
>  >  >  >
>  >  >  >  I saw on a 2006 mail that the Junit sampler can't take in
variables e.g. from user defined variables. This would be a really
useful thing in order to be able to re-use tests with different
parameters.
>  >  >  Which parameters are you referring to?
>  >  >  >  Has this function been put in since?
>  >  >  >
>  >  >  >  cheers,
>  >  >  >  John.
>  >  >  >
>  >  >  >
---------------------------------------------------------------------
>  >  >  >  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]
>  >  >>
---------------------------------------------------------------------
>  >  >  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]
>  >
>  >
>  >
---------------------------------------------------------------------
>  >  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]
>
>  ---------------------------------------------------------------------
>  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]

Reply via email to