Am 11.01.2015 um 13:53 schrieb Felix Schumacher:
Am 11.01.2015 um 13:10 schrieb Shmuel Krakower:
Hi,
Maybe I'm taking the wrong approach here but I'm trying to create JSON
object nicely with a JSR223 preprocessor and provide it to the actual
HTTP
Sampler.
As JSON is native to java script, I am trying to use the javascipt
language
in the JSR233 pre-proc.
All is fine, but once I put the resulting JSON into a variable using
vars.put() it is rendered as [Object][Object] in the actual HTTP
sampler.
When I try to stringify the object prior to saving it with the
JSON.stringify() I get the following error:
ERROR - jmeter.modifiers.JSR223PreProcessor: Problem in JSR223 script
javax.script.ScriptException:
sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "JSON" is
not defined. (<Unknown source>#6) in <Unknown source> at line number 6
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
at
org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:202)
at
org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:42)
at
org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:749)
at
org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:414)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Unknown Source)
So obviously JSON is not defined in the scope of the pre processor.
Any ideas on how to create nicely JSON objects in jmeter?
(As I don't have the same json payload / structure, I must dynamically
create it inside the script)
There was a thread recently about this behavior (title: "JSON to
string in javascript via BSF post processor, etc.? Seem to come across
a problem. A bug? Any help or tips?") where one tip was to add an
empty javascript string to the java string to coerce it into a
javascript string.
The javascript engine will convert java strings to javascript strings,
if they are set directly on the context. The java string will not be
converted, if it is passed in through a Map (like the ctx variable).
I have done a simple test to show this, which I try to attach to this
mail. To see the error, you have to remove the adding of the
javascript string ('' +).
Oops, I haven't read your mail carefully enough. If JSON is not defined
in the interpreter, your interpreter is not new enough.
Do you use java6? I think the JSON object is only available in java7 and
newer.
Regards
Felix
Regards
Felix
Best,
Shmuel Krakower.
www.Beatsoo.org - re-use your jmeter scripts for application performance
monitoring from worldwide locations for free.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]