You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by mwolfe38 <mw...@gmail.com> on 2009/11/06 02:01:50 UTC
How do I call function passing in script variables
I was able to get jMeter to include a file with beanshell functions in it
automatically by using the
property:
beanshell.function.init=BeanShellFunction.bshrc
However, I have a function which I want to use that will take a SampleResult
and do some modifications (basically its an xml document but its not well
formed in that it has multiple top level nodes, I want to wrap it and modify
it.. I've got all this working but I can't get it working within a
function).
here is what I have:
print("including functions");
wrapResponse(SampleResult result, String prefix,String suffix, ) {
log.info("Calling wrapResponse");
encoding = result.getDataEncodingWithDefault();
String data = prefix + (new String(result.getResponseData())) + suffix;
result.setResponseData(data.getBytes(encoding));
}
I know that this file is being included but i can't seem to pass the result
value to the function.
This is within a BSF PostProcessor which has a prev variable which has the
response in it (like I said, i've verified this works when not in a
function).
The string values pass just fine though..
I'm calling it like this:
${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
Here is the error message:
2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error running BSH
script org.apache.jorphan.util.JMeterException: Error invoking bsh method:
eval Sourced file: inline evaluation of:
``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
at
org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
at
org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
at
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
at
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
at
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
at
org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
at
org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
at
org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
... 10 more
Caused by: Sourced file: inline evaluation of:
``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev : at
Line: 1 : in file: inline evaluation of:
``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" , "<tiqs>" )
at bsh.BSHArguments.getArguments(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
... 15 more
--
View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225188.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: How do I call function passing in script variables
Posted by sebb <se...@gmail.com>.
On 08/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>
> Your right!
> Setting the property to
> beanshell.postprocessor.init=functions.bsh
> did the trick.
> I also had to switch my post processor from BSF to beanshell (which i
> suppose is basically on the same thing since I was using the beanshell
> language from the bsf post processor).
It's not the same. The beanshell.<type>.init properties only apply to
the BeanShell test elements.
> Thanks for you help
The properties are described in the jmeter.properties file.
>
> sebb-2-2 wrote:
> >
> > On 07/11/2009, mwolfe38 <mw...@gmail.com> wrote:
> >>
> >> Sorry maybe what I said was confusing.
> >> I was using a BSF PostProcessor which mentions a "prev" variable which I
> >> originally was using in a script right within jmeter, and it worked
> >> fine..
> >> Problem was I needed to do that same thing over and over, so I figured
> >> it
> >> would be better to put the logic into a function that would be available
> >> to
> >> any beanshell script. So i made my own beanshell file with functions in
> >> it,
> >> used the property:
> >> beanshell.function.init (as described in the documentation)
> >
> > That won't work with a postprocessor, it's only for actual BeanShell
> > function calls.
> > You need
> >
> > beanshell.postprocessor.init=etc
> >
> >> and referenced
> >> the file from a user.properties file, and pointed it to my beanshell
> >> script. I got that working just fine but couldn't figure out how to pass
> >> the
> >> prev variable to the script.
> >
> > I don't think you need to - just reference the variable.
> >
> >> Originally I tried calling the function
> >> directly from the script, but that didn't work (btw, is there anyway to
> >> do
> >> that without using the __BeanShell function?)
> >
> > You can call functions directly.
> >
> >> It would sure be great if in the script section of the bsf postprocessor
> >> if
> >> I could just call the function I created directly. Anyways, I figured
> >> that
> >> the SampleResult value was the same thing as the prev variable in this
> >> case,
> >> i was just kind of curious if I could use the variables exposed in the
> >> script section rather than just those exposed to the __BeanShell
> >> function.
> >>
> >
> > You can, but you need to use the correct init file ...
> >
> >>
> >> sebb-2-2 wrote:
> >> >
> >> > On 06/11/2009, mwolfe38 <mw...@gmail.com> wrote:
> >> >>
> >> >> After playing around with it and reading some more documentation I
> >> >> figured
> >> >> out how to do it.
> >> >> I needed to 1. Import the right package to use a SampleResult in my
> >> >> script
> >> >> file:
> >> >> import org.apache.jmeter.samplers.SampleResult;
> >> >>
> >> >> print("Including user defined functions");
> >> >>
> >> >> wrapResponse(SampleResult result, String prefix,String suffix) {
> >> >> log.info("Calling wrapResponse");
> >> >> encoding = result.getDataEncodingWithDefault();
> >> >> String data = prefix + (new String(result.getResponseData()))
> >> +
> >> >> suffix;
> >> >> result.setResponseData(data.getBytes(encoding));
> >> >> }
> >> >>
> >> >>
> >> >> Then I called it like this:
> >> >>
> >> >> ${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
> >> >>
> >> >> I'm not sure how I could have accessed the prev value that is set
> >> for
> >> >> the
> >> >> script, but the documentation said that there was a SampleResult
> >> >> variable
> >> >> for the __BeanShell function and that did in fact work.
> >> >
> >> > The BeanShell function documentation does not mention "prev" at all:
> >> >
> >> > http://jakarta.apache.org/jmeter/usermanual/functions.html#__BeanShell
> >> >
> >> > However, "prev" is set for some of the BeanShell test elements - but
> >> > they are not functions...
> >> >
> >> >>
> >> >>
> >> >>
> >> >> mwolfe38 wrote:
> >> >> >
> >> >> > I was able to get jMeter to include a file with beanshell
> >> functions in
> >> >> it
> >> >> > automatically by using the
> >> >> > property:
> >> >> > beanshell.function.init=BeanShellFunction.bshrc
> >> >> >
> >> >> > However, I have a function which I want to use that will take a
> >> >> > SampleResult and do some modifications (basically its an xml
> >> document
> >> >> but
> >> >> > its not well formed in that it has multiple top level nodes, I
> >> want to
> >> >> > wrap it and modify it.. I've got all this working but I can't get
> >> it
> >> >> > working within a function).
> >> >> >
> >> >> > here is what I have:
> >> >> > print("including functions");
> >> >> > wrapResponse(SampleResult result, String prefix,String suffix, ) {
> >> >> > log.info("Calling wrapResponse");
> >> >> > encoding = result.getDataEncodingWithDefault();
> >> >> > String data = prefix + (new
> >> String(result.getResponseData())) +
> >> >> suffix;
> >> >> > result.setResponseData(data.getBytes(encoding));
> >> >> > }
> >> >> >
> >> >> > I know that this file is being included but i can't seem to pass
> >> the
> >> >> > result value to the function.
> >> >> >
> >> >> > This is within a BSF PostProcessor which has a prev variable which
> >> has
> >> >> the
> >> >> > response in it (like I said, i've verified this works when not in
> >> a
> >> >> > function).
> >> >> >
> >> >> > The string values pass just fine though..
> >> >> >
> >> >> > I'm calling it like this:
> >> >> > ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
> >> >> >
> >> >> >
> >> >> >
> >> >> > Here is the error message:
> >> >> >
> >> >> > 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error
> >> running
> >> >> BSH
> >> >> > script org.apache.jorphan.util.JMeterException: Error invoking bsh
> >> >> method:
> >> >> > eval Sourced file: inline evaluation of:
> >> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument:
> >> prev
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
> >> >> > at
> >> >> org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
> >> >> > at
> >> >> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
> >> >> > at java.lang.Thread.run(Unknown Source)
> >> >> > Caused by: java.lang.reflect.InvocationTargetException
> >> >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> >> Method)
> >> >> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
> >> Source)
> >> >> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> >> >> Source)
> >> >> > at java.lang.reflect.Method.invoke(Unknown Source)
> >> >> > at
> >> >> >
> >> >>
> >> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
> >> >> > ... 10 more
> >> >> > Caused by: Sourced file: inline evaluation of:
> >> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument:
> >> prev
> >> >> : at
> >> >> > Line: 1 : in file: inline evaluation of:
> >> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" ,
> >> >> "<tiqs>" )
> >> >> >
> >> >> > at bsh.BSHArguments.getArguments(Unknown Source)
> >> >> > at bsh.BSHMethodInvocation.eval(Unknown Source)
> >> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> >> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> >> >> > at bsh.Interpreter.eval(Unknown Source)
> >> >> > at bsh.Interpreter.eval(Unknown Source)
> >> >> > at bsh.Interpreter.eval(Unknown Source)
> >> >> > ... 15 more
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >>
> >> >> View this message in context:
> >> >>
> >> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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
> >> >
> >> >
> >> >
> >>
> >>
> >> --
> >> View this message in context:
> >> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26238884.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
> >
> >
> >
>
> --
>
> View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26250887.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: How do I call function passing in script variables
Posted by mwolfe38 <mw...@gmail.com>.
Your right!
Setting the property to
beanshell.postprocessor.init=functions.bsh
did the trick.
I also had to switch my post processor from BSF to beanshell (which i
suppose is basically on the same thing since I was using the beanshell
language from the bsf post processor).
Thanks for you help
sebb-2-2 wrote:
>
> On 07/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>>
>> Sorry maybe what I said was confusing.
>> I was using a BSF PostProcessor which mentions a "prev" variable which I
>> originally was using in a script right within jmeter, and it worked
>> fine..
>> Problem was I needed to do that same thing over and over, so I figured
>> it
>> would be better to put the logic into a function that would be available
>> to
>> any beanshell script. So i made my own beanshell file with functions in
>> it,
>> used the property:
>> beanshell.function.init (as described in the documentation)
>
> That won't work with a postprocessor, it's only for actual BeanShell
> function calls.
> You need
>
> beanshell.postprocessor.init=etc
>
>> and referenced
>> the file from a user.properties file, and pointed it to my beanshell
>> script. I got that working just fine but couldn't figure out how to pass
>> the
>> prev variable to the script.
>
> I don't think you need to - just reference the variable.
>
>> Originally I tried calling the function
>> directly from the script, but that didn't work (btw, is there anyway to
>> do
>> that without using the __BeanShell function?)
>
> You can call functions directly.
>
>> It would sure be great if in the script section of the bsf postprocessor
>> if
>> I could just call the function I created directly. Anyways, I figured
>> that
>> the SampleResult value was the same thing as the prev variable in this
>> case,
>> i was just kind of curious if I could use the variables exposed in the
>> script section rather than just those exposed to the __BeanShell
>> function.
>>
>
> You can, but you need to use the correct init file ...
>
>>
>> sebb-2-2 wrote:
>> >
>> > On 06/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>> >>
>> >> After playing around with it and reading some more documentation I
>> >> figured
>> >> out how to do it.
>> >> I needed to 1. Import the right package to use a SampleResult in my
>> >> script
>> >> file:
>> >> import org.apache.jmeter.samplers.SampleResult;
>> >>
>> >> print("Including user defined functions");
>> >>
>> >> wrapResponse(SampleResult result, String prefix,String suffix) {
>> >> log.info("Calling wrapResponse");
>> >> encoding = result.getDataEncodingWithDefault();
>> >> String data = prefix + (new String(result.getResponseData()))
>> +
>> >> suffix;
>> >> result.setResponseData(data.getBytes(encoding));
>> >> }
>> >>
>> >>
>> >> Then I called it like this:
>> >>
>> >> ${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
>> >>
>> >> I'm not sure how I could have accessed the prev value that is set
>> for
>> >> the
>> >> script, but the documentation said that there was a SampleResult
>> >> variable
>> >> for the __BeanShell function and that did in fact work.
>> >
>> > The BeanShell function documentation does not mention "prev" at all:
>> >
>> > http://jakarta.apache.org/jmeter/usermanual/functions.html#__BeanShell
>> >
>> > However, "prev" is set for some of the BeanShell test elements - but
>> > they are not functions...
>> >
>> >>
>> >>
>> >>
>> >> mwolfe38 wrote:
>> >> >
>> >> > I was able to get jMeter to include a file with beanshell
>> functions in
>> >> it
>> >> > automatically by using the
>> >> > property:
>> >> > beanshell.function.init=BeanShellFunction.bshrc
>> >> >
>> >> > However, I have a function which I want to use that will take a
>> >> > SampleResult and do some modifications (basically its an xml
>> document
>> >> but
>> >> > its not well formed in that it has multiple top level nodes, I
>> want to
>> >> > wrap it and modify it.. I've got all this working but I can't get
>> it
>> >> > working within a function).
>> >> >
>> >> > here is what I have:
>> >> > print("including functions");
>> >> > wrapResponse(SampleResult result, String prefix,String suffix, ) {
>> >> > log.info("Calling wrapResponse");
>> >> > encoding = result.getDataEncodingWithDefault();
>> >> > String data = prefix + (new
>> String(result.getResponseData())) +
>> >> suffix;
>> >> > result.setResponseData(data.getBytes(encoding));
>> >> > }
>> >> >
>> >> > I know that this file is being included but i can't seem to pass
>> the
>> >> > result value to the function.
>> >> >
>> >> > This is within a BSF PostProcessor which has a prev variable which
>> has
>> >> the
>> >> > response in it (like I said, i've verified this works when not in
>> a
>> >> > function).
>> >> >
>> >> > The string values pass just fine though..
>> >> >
>> >> > I'm calling it like this:
>> >> > ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
>> >> >
>> >> >
>> >> >
>> >> > Here is the error message:
>> >> >
>> >> > 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error
>> running
>> >> BSH
>> >> > script org.apache.jorphan.util.JMeterException: Error invoking bsh
>> >> method:
>> >> > eval Sourced file: inline evaluation of:
>> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument:
>> prev
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
>> >> > at
>> >> org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
>> >> > at
>> >> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
>> >> > at java.lang.Thread.run(Unknown Source)
>> >> > Caused by: java.lang.reflect.InvocationTargetException
>> >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> >> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
>> Source)
>> >> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> >> Source)
>> >> > at java.lang.reflect.Method.invoke(Unknown Source)
>> >> > at
>> >> >
>> >>
>> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
>> >> > ... 10 more
>> >> > Caused by: Sourced file: inline evaluation of:
>> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument:
>> prev
>> >> : at
>> >> > Line: 1 : in file: inline evaluation of:
>> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" ,
>> >> "<tiqs>" )
>> >> >
>> >> > at bsh.BSHArguments.getArguments(Unknown Source)
>> >> > at bsh.BSHMethodInvocation.eval(Unknown Source)
>> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
>> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
>> >> > at bsh.Interpreter.eval(Unknown Source)
>> >> > at bsh.Interpreter.eval(Unknown Source)
>> >> > at bsh.Interpreter.eval(Unknown Source)
>> >> > ... 15 more
>> >> >
>> >> >
>> >>
>> >> --
>> >>
>> >> View this message in context:
>> >>
>> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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
>> >
>> >
>> >
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26238884.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
>
>
>
--
View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26250887.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: How do I call function passing in script variables
Posted by sebb <se...@gmail.com>.
On 07/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>
> Sorry maybe what I said was confusing.
> I was using a BSF PostProcessor which mentions a "prev" variable which I
> originally was using in a script right within jmeter, and it worked fine..
> Problem was I needed to do that same thing over and over, so I figured it
> would be better to put the logic into a function that would be available to
> any beanshell script. So i made my own beanshell file with functions in it,
> used the property:
> beanshell.function.init (as described in the documentation)
That won't work with a postprocessor, it's only for actual BeanShell
function calls.
You need
beanshell.postprocessor.init=etc
> and referenced
> the file from a user.properties file, and pointed it to my beanshell
> script. I got that working just fine but couldn't figure out how to pass the
> prev variable to the script.
I don't think you need to - just reference the variable.
> Originally I tried calling the function
> directly from the script, but that didn't work (btw, is there anyway to do
> that without using the __BeanShell function?)
You can call functions directly.
> It would sure be great if in the script section of the bsf postprocessor if
> I could just call the function I created directly. Anyways, I figured that
> the SampleResult value was the same thing as the prev variable in this case,
> i was just kind of curious if I could use the variables exposed in the
> script section rather than just those exposed to the __BeanShell function.
>
You can, but you need to use the correct init file ...
>
> sebb-2-2 wrote:
> >
> > On 06/11/2009, mwolfe38 <mw...@gmail.com> wrote:
> >>
> >> After playing around with it and reading some more documentation I
> >> figured
> >> out how to do it.
> >> I needed to 1. Import the right package to use a SampleResult in my
> >> script
> >> file:
> >> import org.apache.jmeter.samplers.SampleResult;
> >>
> >> print("Including user defined functions");
> >>
> >> wrapResponse(SampleResult result, String prefix,String suffix) {
> >> log.info("Calling wrapResponse");
> >> encoding = result.getDataEncodingWithDefault();
> >> String data = prefix + (new String(result.getResponseData())) +
> >> suffix;
> >> result.setResponseData(data.getBytes(encoding));
> >> }
> >>
> >>
> >> Then I called it like this:
> >>
> >> ${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
> >>
> >> I'm not sure how I could have accessed the prev value that is set for
> >> the
> >> script, but the documentation said that there was a SampleResult
> >> variable
> >> for the __BeanShell function and that did in fact work.
> >
> > The BeanShell function documentation does not mention "prev" at all:
> >
> > http://jakarta.apache.org/jmeter/usermanual/functions.html#__BeanShell
> >
> > However, "prev" is set for some of the BeanShell test elements - but
> > they are not functions...
> >
> >>
> >>
> >>
> >> mwolfe38 wrote:
> >> >
> >> > I was able to get jMeter to include a file with beanshell functions in
> >> it
> >> > automatically by using the
> >> > property:
> >> > beanshell.function.init=BeanShellFunction.bshrc
> >> >
> >> > However, I have a function which I want to use that will take a
> >> > SampleResult and do some modifications (basically its an xml document
> >> but
> >> > its not well formed in that it has multiple top level nodes, I want to
> >> > wrap it and modify it.. I've got all this working but I can't get it
> >> > working within a function).
> >> >
> >> > here is what I have:
> >> > print("including functions");
> >> > wrapResponse(SampleResult result, String prefix,String suffix, ) {
> >> > log.info("Calling wrapResponse");
> >> > encoding = result.getDataEncodingWithDefault();
> >> > String data = prefix + (new String(result.getResponseData())) +
> >> suffix;
> >> > result.setResponseData(data.getBytes(encoding));
> >> > }
> >> >
> >> > I know that this file is being included but i can't seem to pass the
> >> > result value to the function.
> >> >
> >> > This is within a BSF PostProcessor which has a prev variable which has
> >> the
> >> > response in it (like I said, i've verified this works when not in a
> >> > function).
> >> >
> >> > The string values pass just fine though..
> >> >
> >> > I'm calling it like this:
> >> > ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
> >> >
> >> >
> >> >
> >> > Here is the error message:
> >> >
> >> > 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error running
> >> BSH
> >> > script org.apache.jorphan.util.JMeterException: Error invoking bsh
> >> method:
> >> > eval Sourced file: inline evaluation of:
> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
> >> > at
> >> >
> >> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
> >> > at
> >> >
> >> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
> >> > at
> >> org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
> >> > at
> >> >
> >> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
> >> > at
> >> >
> >> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
> >> > at
> >> >
> >> org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
> >> > at
> >> >
> >> org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
> >> > at
> >> >
> >> org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
> >> > at
> >> >
> >> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
> >> > at
> >> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
> >> > at java.lang.Thread.run(Unknown Source)
> >> > Caused by: java.lang.reflect.InvocationTargetException
> >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> >> Source)
> >> > at java.lang.reflect.Method.invoke(Unknown Source)
> >> > at
> >> >
> >> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
> >> > ... 10 more
> >> > Caused by: Sourced file: inline evaluation of:
> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
> >> : at
> >> > Line: 1 : in file: inline evaluation of:
> >> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" ,
> >> "<tiqs>" )
> >> >
> >> > at bsh.BSHArguments.getArguments(Unknown Source)
> >> > at bsh.BSHMethodInvocation.eval(Unknown Source)
> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> >> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> >> > at bsh.Interpreter.eval(Unknown Source)
> >> > at bsh.Interpreter.eval(Unknown Source)
> >> > at bsh.Interpreter.eval(Unknown Source)
> >> > ... 15 more
> >> >
> >> >
> >>
> >> --
> >>
> >> View this message in context:
> >> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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
> >
> >
> >
>
>
> --
> View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26238884.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: How do I call function passing in script variables
Posted by mwolfe38 <mw...@gmail.com>.
Sorry maybe what I said was confusing.
I was using a BSF PostProcessor which mentions a "prev" variable which I
originally was using in a script right within jmeter, and it worked fine..
Problem was I needed to do that same thing over and over, so I figured it
would be better to put the logic into a function that would be available to
any beanshell script. So i made my own beanshell file with functions in it,
used the property:
beanshell.function.init (as described in the documentation) and referenced
the file from a user.properties file, and pointed it to my beanshell
script. I got that working just fine but couldn't figure out how to pass the
prev variable to the script. Originally I tried calling the function
directly from the script, but that didn't work (btw, is there anyway to do
that without using the __BeanShell function?)
It would sure be great if in the script section of the bsf postprocessor if
I could just call the function I created directly. Anyways, I figured that
the SampleResult value was the same thing as the prev variable in this case,
i was just kind of curious if I could use the variables exposed in the
script section rather than just those exposed to the __BeanShell function.
sebb-2-2 wrote:
>
> On 06/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>>
>> After playing around with it and reading some more documentation I
>> figured
>> out how to do it.
>> I needed to 1. Import the right package to use a SampleResult in my
>> script
>> file:
>> import org.apache.jmeter.samplers.SampleResult;
>>
>> print("Including user defined functions");
>>
>> wrapResponse(SampleResult result, String prefix,String suffix) {
>> log.info("Calling wrapResponse");
>> encoding = result.getDataEncodingWithDefault();
>> String data = prefix + (new String(result.getResponseData())) +
>> suffix;
>> result.setResponseData(data.getBytes(encoding));
>> }
>>
>>
>> Then I called it like this:
>>
>> ${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
>>
>> I'm not sure how I could have accessed the prev value that is set for
>> the
>> script, but the documentation said that there was a SampleResult
>> variable
>> for the __BeanShell function and that did in fact work.
>
> The BeanShell function documentation does not mention "prev" at all:
>
> http://jakarta.apache.org/jmeter/usermanual/functions.html#__BeanShell
>
> However, "prev" is set for some of the BeanShell test elements - but
> they are not functions...
>
>>
>>
>>
>> mwolfe38 wrote:
>> >
>> > I was able to get jMeter to include a file with beanshell functions in
>> it
>> > automatically by using the
>> > property:
>> > beanshell.function.init=BeanShellFunction.bshrc
>> >
>> > However, I have a function which I want to use that will take a
>> > SampleResult and do some modifications (basically its an xml document
>> but
>> > its not well formed in that it has multiple top level nodes, I want to
>> > wrap it and modify it.. I've got all this working but I can't get it
>> > working within a function).
>> >
>> > here is what I have:
>> > print("including functions");
>> > wrapResponse(SampleResult result, String prefix,String suffix, ) {
>> > log.info("Calling wrapResponse");
>> > encoding = result.getDataEncodingWithDefault();
>> > String data = prefix + (new String(result.getResponseData())) +
>> suffix;
>> > result.setResponseData(data.getBytes(encoding));
>> > }
>> >
>> > I know that this file is being included but i can't seem to pass the
>> > result value to the function.
>> >
>> > This is within a BSF PostProcessor which has a prev variable which has
>> the
>> > response in it (like I said, i've verified this works when not in a
>> > function).
>> >
>> > The string values pass just fine though..
>> >
>> > I'm calling it like this:
>> > ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
>> >
>> >
>> >
>> > Here is the error message:
>> >
>> > 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error running
>> BSH
>> > script org.apache.jorphan.util.JMeterException: Error invoking bsh
>> method:
>> > eval Sourced file: inline evaluation of:
>> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
>> > at
>> >
>> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
>> > at
>> >
>> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
>> > at
>> org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
>> > at
>> >
>> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
>> > at
>> >
>> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
>> > at
>> >
>> org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
>> > at
>> >
>> org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
>> > at
>> >
>> org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
>> > at
>> >
>> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
>> > at
>> org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
>> > at java.lang.Thread.run(Unknown Source)
>> > Caused by: java.lang.reflect.InvocationTargetException
>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
>> > ... 10 more
>> > Caused by: Sourced file: inline evaluation of:
>> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
>> : at
>> > Line: 1 : in file: inline evaluation of:
>> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" ,
>> "<tiqs>" )
>> >
>> > at bsh.BSHArguments.getArguments(Unknown Source)
>> > at bsh.BSHMethodInvocation.eval(Unknown Source)
>> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
>> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
>> > at bsh.Interpreter.eval(Unknown Source)
>> > at bsh.Interpreter.eval(Unknown Source)
>> > at bsh.Interpreter.eval(Unknown Source)
>> > ... 15 more
>> >
>> >
>>
>> --
>>
>> View this message in context:
>> http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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
>
>
>
--
View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26238884.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: How do I call function passing in script variables
Posted by sebb <se...@gmail.com>.
On 06/11/2009, mwolfe38 <mw...@gmail.com> wrote:
>
> After playing around with it and reading some more documentation I figured
> out how to do it.
> I needed to 1. Import the right package to use a SampleResult in my script
> file:
> import org.apache.jmeter.samplers.SampleResult;
>
> print("Including user defined functions");
>
> wrapResponse(SampleResult result, String prefix,String suffix) {
> log.info("Calling wrapResponse");
> encoding = result.getDataEncodingWithDefault();
> String data = prefix + (new String(result.getResponseData())) + suffix;
> result.setResponseData(data.getBytes(encoding));
> }
>
>
> Then I called it like this:
>
> ${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
>
> I'm not sure how I could have accessed the prev value that is set for the
> script, but the documentation said that there was a SampleResult variable
> for the __BeanShell function and that did in fact work.
The BeanShell function documentation does not mention "prev" at all:
http://jakarta.apache.org/jmeter/usermanual/functions.html#__BeanShell
However, "prev" is set for some of the BeanShell test elements - but
they are not functions...
>
>
>
> mwolfe38 wrote:
> >
> > I was able to get jMeter to include a file with beanshell functions in it
> > automatically by using the
> > property:
> > beanshell.function.init=BeanShellFunction.bshrc
> >
> > However, I have a function which I want to use that will take a
> > SampleResult and do some modifications (basically its an xml document but
> > its not well formed in that it has multiple top level nodes, I want to
> > wrap it and modify it.. I've got all this working but I can't get it
> > working within a function).
> >
> > here is what I have:
> > print("including functions");
> > wrapResponse(SampleResult result, String prefix,String suffix, ) {
> > log.info("Calling wrapResponse");
> > encoding = result.getDataEncodingWithDefault();
> > String data = prefix + (new String(result.getResponseData())) + suffix;
> > result.setResponseData(data.getBytes(encoding));
> > }
> >
> > I know that this file is being included but i can't seem to pass the
> > result value to the function.
> >
> > This is within a BSF PostProcessor which has a prev variable which has the
> > response in it (like I said, i've verified this works when not in a
> > function).
> >
> > The string values pass just fine though..
> >
> > I'm calling it like this:
> > ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
> >
> >
> >
> > Here is the error message:
> >
> > 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error running BSH
> > script org.apache.jorphan.util.JMeterException: Error invoking bsh method:
> > eval Sourced file: inline evaluation of:
> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
> > at
> > org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
> > at
> > org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
> > at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
> > at
> > org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
> > at
> > org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
> > at
> > org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
> > at
> > org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
> > at
> > org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
> > at
> > org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
> > at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
> > at java.lang.Thread.run(Unknown Source)
> > Caused by: java.lang.reflect.InvocationTargetException
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > at java.lang.reflect.Method.invoke(Unknown Source)
> > at
> > org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
> > ... 10 more
> > Caused by: Sourced file: inline evaluation of:
> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev : at
> > Line: 1 : in file: inline evaluation of:
> > ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" , "<tiqs>" )
> >
> > at bsh.BSHArguments.getArguments(Unknown Source)
> > at bsh.BSHMethodInvocation.eval(Unknown Source)
> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> > at bsh.BSHPrimaryExpression.eval(Unknown Source)
> > at bsh.Interpreter.eval(Unknown Source)
> > at bsh.Interpreter.eval(Unknown Source)
> > at bsh.Interpreter.eval(Unknown Source)
> > ... 15 more
> >
> >
>
> --
>
> View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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: How do I call function passing in script variables
Posted by mwolfe38 <mw...@gmail.com>.
After playing around with it and reading some more documentation I figured
out how to do it.
I needed to 1. Import the right package to use a SampleResult in my script
file:
import org.apache.jmeter.samplers.SampleResult;
print("Including user defined functions");
wrapResponse(SampleResult result, String prefix,String suffix) {
log.info("Calling wrapResponse");
encoding = result.getDataEncodingWithDefault();
String data = prefix + (new String(result.getResponseData())) + suffix;
result.setResponseData(data.getBytes(encoding));
}
Then I called it like this:
${__BeanShell(wrapResponse(SampleResult\,"<tiqs>"\,"<tiqs>"))}
I'm not sure how I could have accessed the prev value that is set for the
script, but the documentation said that there was a SampleResult variable
for the __BeanShell function and that did in fact work.
mwolfe38 wrote:
>
> I was able to get jMeter to include a file with beanshell functions in it
> automatically by using the
> property:
> beanshell.function.init=BeanShellFunction.bshrc
>
> However, I have a function which I want to use that will take a
> SampleResult and do some modifications (basically its an xml document but
> its not well formed in that it has multiple top level nodes, I want to
> wrap it and modify it.. I've got all this working but I can't get it
> working within a function).
>
> here is what I have:
> print("including functions");
> wrapResponse(SampleResult result, String prefix,String suffix, ) {
> log.info("Calling wrapResponse");
> encoding = result.getDataEncodingWithDefault();
> String data = prefix + (new String(result.getResponseData())) + suffix;
> result.setResponseData(data.getBytes(encoding));
> }
>
> I know that this file is being included but i can't seem to pass the
> result value to the function.
>
> This is within a BSF PostProcessor which has a prev variable which has the
> response in it (like I said, i've verified this works when not in a
> function).
>
> The string values pass just fine though..
>
> I'm calling it like this:
> ${__BeanShell(wrapResponse(prev\,"<tiqs>"\,"<tiqs>"))}
>
>
>
> Here is the error message:
>
> 2009/11/05 17:04:03 WARN - jmeter.functions.BeanShell: Error running BSH
> script org.apache.jorphan.util.JMeterException: Error invoking bsh method:
> eval Sourced file: inline evaluation of:
> ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev
> at
> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:192)
> at
> org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:198)
> at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:106)
> at
> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:143)
> at
> org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112)
> at
> org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:89)
> at
> org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
> at
> org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:622)
> at
> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:356)
> at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:243)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:171)
> ... 10 more
> Caused by: Sourced file: inline evaluation of:
> ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : Undefined argument: prev : at
> Line: 1 : in file: inline evaluation of:
> ``wrapResponse(prev,"<tiqs>","<tiqs>");'' : ( prev , "<tiqs>" , "<tiqs>" )
>
> at bsh.BSHArguments.getArguments(Unknown Source)
> at bsh.BSHMethodInvocation.eval(Unknown Source)
> at bsh.BSHPrimaryExpression.eval(Unknown Source)
> at bsh.BSHPrimaryExpression.eval(Unknown Source)
> at bsh.Interpreter.eval(Unknown Source)
> at bsh.Interpreter.eval(Unknown Source)
> at bsh.Interpreter.eval(Unknown Source)
> ... 15 more
>
>
--
View this message in context: http://old.nabble.com/How-do-I-call-function-passing-in-script-variables-tp26225188p26225648.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