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]

