>UDVs are shared between Thread Groups
>By Default variables have thread scope, but variables defined in User
..Defined Variables components have global scope.
Two different things. If you define a UDV , then it is available to all
threads in the sense if you use ${variable} you will get the value in all
threads. But the mechanism used is a copy - so each thread gets its own
copy of the variable - effectively if you change the value in one of the
threads , the other threads wont see it.
If you try something like
+UDV(variable x , value=y)
+Threadgroup (10 threads, 10 loops)
++Sampler
+++PostProcessor that changes the value of X to something else - say thread
number

Then initially the value of x for each thread will be y , but after the
post processor executes each thread will have its own value




On Wed, Jun 1, 2016 at 10:32 PM, Pratapi Hemant Patel <
[email protected]> wrote:

> From component reference page
>
> http://jmeter.apache.org/usermanual/component_reference.html#User_Defined_Variables
>
> UDVs are shared between Thread Groups
>
> By Default variables have thread scope, but variables defined in User
> Defined Variables components have global scope.
>
>
> With Best Regards
> Hemant
> 9810752184 / 9013982184 <%209013982184>
> <https://in.linkedin.com/pub/pratapi-hemant-patel/39/3b9/5a5>
>
> On Thu, Jun 2, 2016 at 9:37 AM, Deepak Shetty <[email protected]> wrote:
>
> > variables do not have "global" scope - in the sense that they are not
> > shared across threads (even if the initial value could be same , changes
> > are not reflected in a different thread)
> >
> > On Wed, Jun 1, 2016 at 8:58 PM, Pratapi Hemant Patel <
> > [email protected]
> > > wrote:
> >
> > > AS far as i understand, if you want to define some variable that can be
> > > shared among thread groups, use USER DEFINED VARIABLE component. The
> > > variables defined in it have global scope.
> > >
> > > Best Regards,
> > > Hemant
> > > 9810752184 / 9013982184 <%209013982184> <%209013982184>
> > > On 02-Jun-2016 5:47 AM, "David Luu" <[email protected]> wrote:
> > >
> > > > Is there any facility in JMeter already to define code/script based
> > > > configuration once for threads or thread groups to then use later on?
> > > > Meaning a single execution is done to dynamically generate the needed
> > > test
> > > > data (and utility methods) at test startup, then this whole config
> > > "object"
> > > > is referenced by threads in thread groups later on during the actual
> > test
> > > > run.
> > > >
> > > > Browsing over the JMeter docs, I'm not aware if that already exists,
> or
> > > how
> > > > best to implement this. Basically, in terms of JMeter
> > extensions/plugins,
> > > > I'm thinking of a config element that's like a static class or
> > singleton,
> > > > don't want each thread trying to instantiate their own instance.
> And/or
> > > > something similar to user defined variables at the test plan root
> > level,
> > > > only the variable is a Java object/struct rather than simple string
> > (that
> > > > could be typecasted to int) - or that defining the Java object is a
> lot
> > > of
> > > > logic that can't simply be done with JMeter functions to then flatten
> > > > object (serialized) to JSON string.
> > > >
> > > > If there already is such facility & best practice, that would be
> great
> > > as I
> > > > don't want to have to deal with instance checking, synchronization,
> and
> > > > thread safety myself unless I have to, when instantiating the
> globally
> > > > shared data across threads. Nor do I want each thread to have their
> own
> > > > "copy" as that eats up memory/resources as we scale the load up.
> > > >
> > > > I'm currently using a Java-based config element based off the CSV
> Data
> > > Set
> > > > Config (from kafkameter project). Would placing the config element
> > under
> > > > test plan rather than under a thread group affect how it executes?
> E.g.
> > > > execute once and result/output global to all threads, or would it
> also
> > be
> > > > executed X times for X threads, being globally used by them all, but
> > not
> > > > global in the sense of being already executed once with its output
> > > readily
> > > > accessible?
> > > >
> > > > This discussion would be with respect to things like config elements,
> > or
> > > > say pre-processors, in Java, Beanshell, javascript - but in the
> global
> > > > execute once context rather than execute per thread, while providing
> > its
> > > > output (as JMeter variables, etc.) being global to all threads.
> > > >
> > >
> >
>

Reply via email to