Hi,

Following up from my thread yesterday, I'm trying to use a BeanShell function 
in a Http Request Sampler that POSTs a form.  This function transforms the 
contents of a variable called viewstate containing a string grabbed from the 
form in a RegEx Extractor attached to the Http Request Sampler that did a GET 
of the form.

I've tried two versions of the function without success.  A succint version 
and a more verbose one.  My Java is more than a little rusty, so I probably 
made a newbie error somewhere.  Here are the functions:

1st function was derived from print(java.net.URLEncoder.encode(viewstate, 
"UTF-8"));

${__BeanShell(return java.net.URLEncoder.encode(vars.get("${viewstate}"), 
"UTF-8"); )}

2006/02/08 17:10:33 ERROR - jmeter.util.BeanShellInterpreter: Error invoking 
bsh method eval
 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:136)
        at 
org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:172)
        at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:114)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:125)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:93)
        at 
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:85)
        at 
org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:195)
        at org.apache.jmeter.config.Argument.getValue(Argument.java:121)
        at 
org.apache.jmeter.protocol.http.util.HTTPArgument.getEncodedValue(HTTPArgument.java:140)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getQueryString(HTTPSamplerBase.java:430)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setupConnection(HTTPSampler.java:157)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:422)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)
        at java.lang.Thread.run(Unknown Source)
Caused by: Parse error at line 1, column 34.  Encountered: (
        at bsh.Parser.generateParseException(Unknown Source)
        at bsh.Parser.jj_consume_token(Unknown Source)
        at bsh.Parser.ReturnStatement(Unknown Source)
        at bsh.Parser.Statement(Unknown Source)
        at bsh.Parser.BlockStatement(Unknown Source)
        at bsh.Parser.Line(Unknown Source)
        at bsh.Interpreter.Line(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        ... 20 more

2006/02/08 17:10:33 WARN  - jmeter.functions.BeanShell: Error running BSH 
script org.apache.jorphan.util.JMeterException: Error invoking bsh method 
eval
        at 
org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:147)
        at 
org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:172)
        at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:114)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:125)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:93)
        at 
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:85)
        at 
org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:195)
        at org.apache.jmeter.config.Argument.getValue(Argument.java:121)
        at 
org.apache.jmeter.protocol.http.util.HTTPArgument.getEncodedValue(HTTPArgument.java:140)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getQueryString(HTTPSamplerBase.java:430)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setupConnection(HTTPSampler.java:157)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:422)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)
        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:136)
        ... 15 more
Caused by: Parse error at line 1, column 34.  Encountered: (
        at bsh.Parser.generateParseException(Unknown Source)
        at bsh.Parser.jj_consume_token(Unknown Source)
        at bsh.Parser.ReturnStatement(Unknown Source)
        at bsh.Parser.Statement(Unknown Source)
        at bsh.Parser.BlockStatement(Unknown Source)
        at bsh.Parser.Line(Unknown Source)
        at bsh.Interpreter.Line(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        ... 20 more

2006/02/08 17:10:33 ERROR - jmeter.protocol.http.sampler.HTTPSampler: 
java.io.IOException: Server returned HTTP response code: 500 for URL: 
http://192.168.254.215/Login/Login.aspx 
2006/02/08 17:10:33 ERROR - jmeter.protocol.http.sampler.HTTPSampler: 
<html>
    <head>
        <title>Value was invalid.</title>
        <style>
                body 
{font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
                p 
{font-family:"Verdana";font-weight:normal;color:black;margin-top: 
-5px}
                b 
{font-family:"Verdana";font-weight:bold;color:black;margin-top: 
-5px}
                H1 
{ font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
                H2 
{ font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
                pre {font-family:"Lucida Console";font-size: .9em}
                .marker {font-weight: bold; color: black;text-decoration: none;}
                .version {color: gray;}
                .error {margin-bottom: 10px;}
                .expandable { text-decoration:underline; font-weight:bold; 
color:navy; cursor:hand; }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Server Error in '/' Application.<hr width=100% size=1 
color=silver></H1>

            <h2> <i>Value was 
        ... 

The 2nd function:

${__BeanShell( vstate = vars.get("${viewstate}"); print(vstate); newViewstate 
= java.net.URLEncoder.encode(vstate, "UTF-8"); print(newViewstate); return 
newViewstate;)}

2006/02/08 16:54:28 ERROR - jmeter.util.BeanShellInterpreter: Error invoking 
bsh method eval
 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:136)
        at 
org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:172)
        at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:114)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:125)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:93)
        at 
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:85)
        at 
org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:195)
        at org.apache.jmeter.config.Argument.getValue(Argument.java:121)
        at 
org.apache.jmeter.protocol.http.util.HTTPArgument.getEncodedValue(HTTPArgument.java:140)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getQueryString(HTTPSamplerBase.java:430)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setupConnection(HTTPSampler.java:157)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:422)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)
        at java.lang.Thread.run(Unknown Source)
Caused by: Parse error at line 1, column 81.  Encountered: (
        at bsh.Parser.generateParseException(Unknown Source)
        at bsh.Parser.jj_consume_token(Unknown Source)
        at bsh.Parser.Statement(Unknown Source)
        at bsh.Parser.BlockStatement(Unknown Source)
        at bsh.Parser.Line(Unknown Source)
        at bsh.Interpreter.Line(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        ... 20 more

2006/02/08 16:54:28 WARN  - jmeter.functions.BeanShell: Error running BSH 
script org.apache.jorphan.util.JMeterException: Error invoking bsh method 
eval
        at 
org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:147)
        at 
org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:172)
        at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:114)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:125)
        at 
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:93)
        at 
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:85)
        at 
org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:195)
        at org.apache.jmeter.config.Argument.getValue(Argument.java:121)
        at 
org.apache.jmeter.protocol.http.util.HTTPArgument.getEncodedValue(HTTPArgument.java:140)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.getQueryString(HTTPSamplerBase.java:430)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setupConnection(HTTPSampler.java:157)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:422)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:514)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:503)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:247)
        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:136)
        ... 15 more
Caused by: Parse error at line 1, column 81.  Encountered: (
        at bsh.Parser.generateParseException(Unknown Source)
        at bsh.Parser.jj_consume_token(Unknown Source)
        at bsh.Parser.Statement(Unknown Source)
        at bsh.Parser.BlockStatement(Unknown Source)
        at bsh.Parser.Line(Unknown Source)
        at bsh.Interpreter.Line(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        ... 20 more

2006/02/08 16:54:28 ERROR - jmeter.protocol.http.sampler.HTTPSampler: 
java.io.IOException: Server returned HTTP response code: 500 for URL: 
http://192.168.254.215/Login/Login.aspx 
2006/02/08 16:54:28 ERROR - jmeter.protocol.http.sampler.HTTPSampler: 
<html>
    <head>
        <title>Value was invalid.</title>
        <style>
                body 
{font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
                p 
{font-family:"Verdana";font-weight:normal;color:black;margin-top: 
-5px}
                b 
{font-family:"Verdana";font-weight:bold;color:black;margin-top: 
-5px}
                H1 
{ font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
                H2 
{ font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
                pre {font-family:"Lucida Console";font-size: .9em}
                .marker {font-weight: bold; color: black;text-decoration: none;}
                .version {color: gray;}
                .error {margin-bottom: 10px;}
                .expandable { text-decoration:underline; font-weight:bold; 
color:navy; cursor:hand; }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Server Error in '/' Application.<hr width=100% size=1 
color=silver></H1>

            <h2> <i>Value was 
        ... 

Can anybody spot obvious errors or point me to a working example of a 
BeanShell function that uses a JMeter variable.  I did look for an example in 
the mailing list archive but didn't find one.

-- 
Qmediastream http://qmediastream.com
design, commerce, hosting, streaming, multimedia

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to