Currently, both of these expressions in my UDVs work properly for me, though according to you they shouldn't:

${__javaScript('${__P(delay)}'*'${__P(mythreads)}')}

${__javaScript(Math.floor('${__property(maxcnt,,512)}'/'${__P(mythreads)}'))}


I suspect that Javascript is doing implicit type conversion, because both of these contexts are numeric (there is no string concatenation operator). If he were using '+' he would need to watch out.

I'm not saying this is the right way to do things and I agree that we should get to the root of the problem, but I believe that if he tries it, it will tied him over for the time being.

Regards,
Marc

sebb wrote:
On 04/04/2009, Marc Chiarini (Tufts) <marc.chiar...@tufts.edu> wrote:
 Hi Michael,

 Try putting your variables in quotes, for example:
 ${__javaScript('${VARONE}'*'${VARTWO}'/'${VARTHREE}')}

 I'm not sure why this is necessary, but it's the only thing that worked for
me when I had a similar problem.

That does not apply to numeric values.

1*2/3 is a valid numeric expression, but '1' * '2' / '3' is not.

 The relevant reference is in the bottom green box at
http://jakarta.apache.org/jmeter/usermanual/functions.html#__javaScript

Which refers to text strings " ... and JMeter variables."
That should also say " which represent text strings"

 Regards,
 Marc

 --------------------
 Marc Chiarini
 PhD Candidate
 Tufts University
 Halligan Hall Extension 003C
 Medford, MA 02155


 Michael P. McDonnell wrote:
 When utilizing the Javascript function in Jmeter 2.3.2 (r665936):

I have a Thread Group set up as follows:

WebService (SOAP) Request
 -XPath Assertion
 -Counter
Constant Throughput Timer

First of all I would like to note that the WebService Sampler rocks. Thank
you for making it. The counter + the assertion are also great.

The constant throughput timer USUALLY works very well.

However today I decided I was going to see if I could adjust my test by
passing one new variable from the command line, so I needed to do some
calculations within Jmeter.
I set the target throughput to:



Values of Variables:
VARONE = 146.17 (which is set in the "User Defined Variables" for the test
plan)
VARTWO = 1000 (which is currently set in the "User Defined Variables" for
the test plan but will eventually be passed in)
VARTHREE = ${__javaScript(16*60)} (which is set in the "User Defined
Variables" for the test plan)

When I start the test, only one sample goes through and then nothing until I
try to stop the test. At this point, I get this exception:

Exception in thread "Thread-77"
org.mozilla.javascript.EvaluatorException:
missing ; before statement (<cmd>#1)
 at
org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:98)
 at
org.mozilla.javascript.DefaultErrorReporter.error(DefaultErrorReporter.java:85)
 at org.mozilla.javascript.Parser.addError(Parser.java:126)
 at
org.mozilla.javascript.Parser.reportError(Parser.java:132)
 at
org.mozilla.javascript.Parser.statementHelper(Parser.java:1175)
 at
org.mozilla.javascript.Parser.statement(Parser.java:623)
 at org.mozilla.javascript.Parser.parse(Parser.java:355)
 at org.mozilla.javascript.Parser.parse(Parser.java:293)
 at
org.mozilla.javascript.Context.compileImpl(Context.java:2238)
 at
org.mozilla.javascript.Context.compileString(Context.java:1284)
 at
org.mozilla.javascript.Context.compileString(Context.java:1273)
 at
org.mozilla.javascript.Context.evaluateString(Context.java:1129)
 at
org.apache.jmeter.functions.JavaScript.execute(JavaScript.java:94)
 at
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:138)
 at
org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:107)
 at
org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:78)
 at
org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:69)
 at
org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:248)
 at
org.apache.jmeter.engine.StandardJMeterEngine$StopTest.run(StandardJMeterEngine.java:326)
 at java.lang.Thread.run(Unknown Source)

Did I set up my Javascript wrong?

Also: if I do this:
${__javaScript((${VARONE}*${VARTWO})/${VARTHREE})} //(Note
the extra
parenthesis)

I will get a similar error at the same place and time (when I go to stop the
test):
Exception in thread "Thread-77"
org.mozilla.javascript.EvaluatorException:
missing ) in parenthetical (<cmd>#1)

Any help would be greatly appreciated!

Thanks!

-Michael P.



 --
Marc Chiarini
CompSci PhD Candidate
Tufts University
Medford, MA 02155
http://www.cs.tufts.edu/~mchiar01



---------------------------------------------------------------------
 To unsubscribe, e-mail:
jmeter-user-unsubscr...@jakarta.apache.org
 For additional commands, e-mail:
jmeter-user-h...@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-user-h...@jakarta.apache.org

Reply via email to