You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by David Schulberg <Da...@objectconsulting.com.au> on 2007/08/14 07:58:49 UTC
Beanshell pre-processor
Hi,
Have added a beanshell preprocessor to a sampler for the purpose of setting variables to be used in the sampler request.
It doesn't work - get error in jmeter log:
jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("") = vars.get("4"); vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't assign to prefix.
My preprocessor script is attempting to set user variables Relation and Person:
vars.put("${Relation}") = vars.get("${Relation2}");
vars.put("${Person}") = vars.get("${Person2}");
if (vars.get("${Relation2}")) >= 6
{
vars.put("${Relation}") = vars.get("${Relation2}");
vars.put("${Person}") = vars.get("${Person2}");
}
else if (vars.get("${Relation3}")) >= 6
{
vars.put("${Relation}") = vars.get("${Relation3}");
vars.put("${Person}") = vars.get("${Person3}");
}
else if (vars.get("${Relation4}")) >= 6
{
vars.put("${Relation}") = vars.get("${Relation4}");
vars.put("${Person}") = vars.get("${Person4}");
}
else if (vars.get("${Relation5}")) >= 6
{
vars.put("${Relation}") = vars.get("${Relation5}");
vars.put("${Person}") = vars.get("${Person5}");
}
else if (vars.get("${Relation6}")) >= 6
{
vars.put("${Relation}") = vars.get("${Relation6}");
vars.put("${Person}") = vars.get("${Person6}");
}
David Schulberg
Object Consulting | Senior Consultant
email: david.schulberg@objectconsulting.com.au
----------------------------------------------------------------
consulting | development | training | support
our experience makes the difference
Re: Beanshell pre-processor
Posted by Ronan Klyne <ro...@groupbc.com>.
David Schulberg wrote:
> Hi,
>
> This issue is driving me nuts!
>
> The use of
> vars.put("Relation") = vars.get("Relation2");
>
> definitely does not work.
That's true, it doesn't work. The method 'put' takes two arguments, the
key and the value, like so:
vars.put("Relation", vars.get("Relation2"));
# r
--
Ronan Klyne
Business Collaborator Developer
Tel: +44 (0)870 163 2555
ronan.klyne@groupbc.com
www.groupbc.com
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
RE: Beanshell pre-processor
Posted by David Schulberg <Da...@objectconsulting.com.au>.
Hi,
This issue is driving me nuts!
The use of
vars.put("Relation") = vars.get("Relation2");
definitely does not work.
ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("Relation") = vars.get("Relation2"); vars.put("Person") = vars.get("Per . . . '' : Can't assign to prefix.
Now 'Relation' has been defined as a user variable and 'Relation2' is a CVS Data Config variable name.
When I use ${Relation2} in a script statement the value of the variable is at least displayed in the jmeter.log
Regards,
David Schulberg
Object Consulting | Senior Consultant
email: david.schulberg@objectconsulting.com.au
----------------------------------------------------------------
consulting | development | training | support
our experience makes the difference
________________________________
From: sebb [mailto:sebbaz@gmail.com]
Sent: Wed 15/08/2007 5:05 PM
To: jmeter-user@jakarta.apache.org
Subject: Re: Beanshell pre-processor
[Try again - last attempt failed with DNS error]
On 15/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> Hi,
>
> I changed my beanshell script as per the suggestion to
>
> vars.put("Relation") = vars.get("Relation2");
> vars.put("Person") = vars.get("Person2");
> if (vars.get("Relation2")) >= 6
That should be
if (vars.get("Relation2") >= 6)
> {
> vars.put("Relation") = vars.get("Relation2");
> vars.put("Person") = vars.get("Person2");
> }
> else if (vars.get("Relation3")) >= 6
> {
> vars.put("Relation") = vars.get("Relation3");
> vars.put("Person") = vars.get("Person3");
> }
> else if (vars.get("Relation4")) >= 6
> {
> vars.put("Relation") = vars.get("Relation4");
> vars.put("Person") = vars.get("Person4");
> }
> else if (vars.get("Relation5")) >= 6
> {
> vars.put("Relation") = vars.get("Relation5");
> vars.put("Person") = vars.get("Person5");
> }
> else if (vars.get("Relation6")) >= 6
> {
> vars.put("Relation") = vars.get("Relation6");
> vars.put("Person") = vars.get("Person6");
> }
>
> but that made no difference - same error.
That's not possible. There may be an error, but it cannot possibly be:
jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval
Sourced file: inline evaluation of: ``vars.put("") = vars.get("4");
vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't
assign to prefix.
... apart from the last part about the if.
See above.
> Regards,
> David Schulberg
>
> Object Consulting | Senior Consultant
> email: david.schulberg@objectconsulting.com.au
> ----------------------------------------------------------------
> consulting | development | training | support
> our experience makes the difference
>
> ________________________________
>
> From: sebb [mailto:sebbaz@gmail.com]
> Sent: Tue 14/08/2007 6:54 PM
> To: JMeter Users List
> Subject: Re: Beanshell pre-processor
>
>
>
> On 14/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> > Hi,
> >
> > Have added a beanshell preprocessor to a sampler for the purpose of setting variables to be used in the sampler request.
> >
> > It doesn't work - get error in jmeter log:
>
> Because you are doing double evaluation of the variables.
>
> > jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("") = vars.get("4"); vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't assign to prefix.
> >
> > My preprocessor script is attempting to set user variables Relation and Person:
> >
> > vars.put("${Relation}") = vars.get("${Relation2}");
>
> Assume Relation="aunt" and Relation2="uncle", then what Beanshell sees is
>
> vars.put("aunt") = vars.get("uncle");
>
> because the variables are textually substituted in the script field
> before handing to Beanshell.
>
> You need to use
>
> vars.put("Relation") = vars.get("Relation2");
>
>
> > vars.put("${Person}") = vars.get("${Person2}");
> > if (vars.get("${Relation2}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation2}");
> > vars.put("${Person}") = vars.get("${Person2}");
> > }
> > else if (vars.get("${Relation3}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation3}");
> > vars.put("${Person}") = vars.get("${Person3}");
> > }
> > else if (vars.get("${Relation4}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation4}");
> > vars.put("${Person}") = vars.get("${Person4}");
> > }
> > else if (vars.get("${Relation5}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation5}");
> > vars.put("${Person}") = vars.get("${Person5}");
> > }
> > else if (vars.get("${Relation6}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation6}");
> > vars.put("${Person}") = vars.get("${Person6}");
> > }
> >
> >
> > David Schulberg
> >
> > Object Consulting | Senior Consultant
> > email: david.schulberg@objectconsulting.com.au
> > ----------------------------------------------------------------
> > consulting | development | training | support
> > our experience makes the difference
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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: Beanshell pre-processor
Posted by sebb <se...@gmail.com>.
[Try again - last attempt failed with DNS error]
On 15/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> Hi,
>
> I changed my beanshell script as per the suggestion to
>
> vars.put("Relation") = vars.get("Relation2");
> vars.put("Person") = vars.get("Person2");
> if (vars.get("Relation2")) >= 6
That should be
if (vars.get("Relation2") >= 6)
> {
> vars.put("Relation") = vars.get("Relation2");
> vars.put("Person") = vars.get("Person2");
> }
> else if (vars.get("Relation3")) >= 6
> {
> vars.put("Relation") = vars.get("Relation3");
> vars.put("Person") = vars.get("Person3");
> }
> else if (vars.get("Relation4")) >= 6
> {
> vars.put("Relation") = vars.get("Relation4");
> vars.put("Person") = vars.get("Person4");
> }
> else if (vars.get("Relation5")) >= 6
> {
> vars.put("Relation") = vars.get("Relation5");
> vars.put("Person") = vars.get("Person5");
> }
> else if (vars.get("Relation6")) >= 6
> {
> vars.put("Relation") = vars.get("Relation6");
> vars.put("Person") = vars.get("Person6");
> }
>
> but that made no difference - same error.
That's not possible. There may be an error, but it cannot possibly be:
jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval
Sourced file: inline evaluation of: ``vars.put("") = vars.get("4");
vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't
assign to prefix.
... apart from the last part about the if.
See above.
> Regards,
> David Schulberg
>
> Object Consulting | Senior Consultant
> email: david.schulberg@objectconsulting.com.au
> ----------------------------------------------------------------
> consulting | development | training | support
> our experience makes the difference
>
> ________________________________
>
> From: sebb [mailto:sebbaz@gmail.com]
> Sent: Tue 14/08/2007 6:54 PM
> To: JMeter Users List
> Subject: Re: Beanshell pre-processor
>
>
>
> On 14/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> > Hi,
> >
> > Have added a beanshell preprocessor to a sampler for the purpose of setting variables to be used in the sampler request.
> >
> > It doesn't work - get error in jmeter log:
>
> Because you are doing double evaluation of the variables.
>
> > jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("") = vars.get("4"); vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't assign to prefix.
> >
> > My preprocessor script is attempting to set user variables Relation and Person:
> >
> > vars.put("${Relation}") = vars.get("${Relation2}");
>
> Assume Relation="aunt" and Relation2="uncle", then what Beanshell sees is
>
> vars.put("aunt") = vars.get("uncle");
>
> because the variables are textually substituted in the script field
> before handing to Beanshell.
>
> You need to use
>
> vars.put("Relation") = vars.get("Relation2");
>
>
> > vars.put("${Person}") = vars.get("${Person2}");
> > if (vars.get("${Relation2}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation2}");
> > vars.put("${Person}") = vars.get("${Person2}");
> > }
> > else if (vars.get("${Relation3}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation3}");
> > vars.put("${Person}") = vars.get("${Person3}");
> > }
> > else if (vars.get("${Relation4}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation4}");
> > vars.put("${Person}") = vars.get("${Person4}");
> > }
> > else if (vars.get("${Relation5}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation5}");
> > vars.put("${Person}") = vars.get("${Person5}");
> > }
> > else if (vars.get("${Relation6}")) >= 6
> > {
> > vars.put("${Relation}") = vars.get("${Relation6}");
> > vars.put("${Person}") = vars.get("${Person6}");
> > }
> >
> >
> > David Schulberg
> >
> > Object Consulting | Senior Consultant
> > email: david.schulberg@objectconsulting.com.au
> > ----------------------------------------------------------------
> > consulting | development | training | support
> > our experience makes the difference
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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: Beanshell pre-processor
Posted by David Schulberg <Da...@objectconsulting.com.au>.
Hi,
I changed my beanshell script as per the suggestion to
vars.put("Relation") = vars.get("Relation2");
vars.put("Person") = vars.get("Person2");
if (vars.get("Relation2")) >= 6
{
vars.put("Relation") = vars.get("Relation2");
vars.put("Person") = vars.get("Person2");
}
else if (vars.get("Relation3")) >= 6
{
vars.put("Relation") = vars.get("Relation3");
vars.put("Person") = vars.get("Person3");
}
else if (vars.get("Relation4")) >= 6
{
vars.put("Relation") = vars.get("Relation4");
vars.put("Person") = vars.get("Person4");
}
else if (vars.get("Relation5")) >= 6
{
vars.put("Relation") = vars.get("Relation5");
vars.put("Person") = vars.get("Person5");
}
else if (vars.get("Relation6")) >= 6
{
vars.put("Relation") = vars.get("Relation6");
vars.put("Person") = vars.get("Person6");
}
but that made no difference - same error.
Regards,
David Schulberg
Object Consulting | Senior Consultant
email: david.schulberg@objectconsulting.com.au
----------------------------------------------------------------
consulting | development | training | support
our experience makes the difference
________________________________
From: sebb [mailto:sebbaz@gmail.com]
Sent: Tue 14/08/2007 6:54 PM
To: JMeter Users List
Subject: Re: Beanshell pre-processor
On 14/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> Hi,
>
> Have added a beanshell preprocessor to a sampler for the purpose of setting variables to be used in the sampler request.
>
> It doesn't work - get error in jmeter log:
Because you are doing double evaluation of the variables.
> jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("") = vars.get("4"); vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't assign to prefix.
>
> My preprocessor script is attempting to set user variables Relation and Person:
>
> vars.put("${Relation}") = vars.get("${Relation2}");
Assume Relation="aunt" and Relation2="uncle", then what Beanshell sees is
vars.put("aunt") = vars.get("uncle");
because the variables are textually substituted in the script field
before handing to Beanshell.
You need to use
vars.put("Relation") = vars.get("Relation2");
> vars.put("${Person}") = vars.get("${Person2}");
> if (vars.get("${Relation2}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation2}");
> vars.put("${Person}") = vars.get("${Person2}");
> }
> else if (vars.get("${Relation3}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation3}");
> vars.put("${Person}") = vars.get("${Person3}");
> }
> else if (vars.get("${Relation4}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation4}");
> vars.put("${Person}") = vars.get("${Person4}");
> }
> else if (vars.get("${Relation5}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation5}");
> vars.put("${Person}") = vars.get("${Person5}");
> }
> else if (vars.get("${Relation6}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation6}");
> vars.put("${Person}") = vars.get("${Person6}");
> }
>
>
> David Schulberg
>
> Object Consulting | Senior Consultant
> email: david.schulberg@objectconsulting.com.au
> ----------------------------------------------------------------
> consulting | development | training | support
> our experience makes the difference
>
>
>
>
> ---------------------------------------------------------------------
> 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: Beanshell pre-processor
Posted by sebb <se...@gmail.com>.
On 14/08/07, David Schulberg <Da...@objectconsulting.com.au> wrote:
> Hi,
>
> Have added a beanshell preprocessor to a sampler for the purpose of setting variables to be used in the sampler request.
>
> It doesn't work - get error in jmeter log:
Because you are doing double evaluation of the variables.
> jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``vars.put("") = vars.get("4"); vars.put("${Person}") = vars.get("220780625"); if . . . '' : Can't assign to prefix.
>
> My preprocessor script is attempting to set user variables Relation and Person:
>
> vars.put("${Relation}") = vars.get("${Relation2}");
Assume Relation="aunt" and Relation2="uncle", then what Beanshell sees is
vars.put("aunt") = vars.get("uncle");
because the variables are textually substituted in the script field
before handing to Beanshell.
You need to use
vars.put("Relation") = vars.get("Relation2");
> vars.put("${Person}") = vars.get("${Person2}");
> if (vars.get("${Relation2}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation2}");
> vars.put("${Person}") = vars.get("${Person2}");
> }
> else if (vars.get("${Relation3}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation3}");
> vars.put("${Person}") = vars.get("${Person3}");
> }
> else if (vars.get("${Relation4}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation4}");
> vars.put("${Person}") = vars.get("${Person4}");
> }
> else if (vars.get("${Relation5}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation5}");
> vars.put("${Person}") = vars.get("${Person5}");
> }
> else if (vars.get("${Relation6}")) >= 6
> {
> vars.put("${Relation}") = vars.get("${Relation6}");
> vars.put("${Person}") = vars.get("${Person6}");
> }
>
>
> David Schulberg
>
> Object Consulting | Senior Consultant
> email: david.schulberg@objectconsulting.com.au
> ----------------------------------------------------------------
> consulting | development | training | support
> our experience makes the difference
>
>
>
>
> ---------------------------------------------------------------------
> 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