Ich versuche, 3 Variablen aus 3 verschiedenen HTTP-Anfragen in derselben Thread-Gruppe zu drucken. schrieb ich folgendes in Jmeter Beanshell:jmeter Beanshell - Fehler beim Aufrufen der bsh-Methode: eval
try {
hash1 = vars.get("var_Hash_1");
hash2 = vars.get("var_Hash_2");
hash3 = vars.get("var_Hash_3");
FileWriter fstream = new FileWriter("/tmp/result.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(hash1);
out.write(",");
out.write(hash2);
out.write(",");
out.write(hash3);
out.write(",");
out.write("\n");
out.close();
fstream.close();
}
catch (Throwable e) {
log.error("Errror in Beanshell", e);
throw e;
}
Und die Ausnahme ist:
2017/04/26 16:16:25 WARN - jmeter.extractor.BeanShellPostProcessor: Problem in Beanshell Skript org. apache.jorphan.util.JMeterException: Fehler beim Aufrufen der bsh-Methode: eval Ausgelagerte Datei: Inline-Auswertung von: `` try {hash1 = vars.get ("var_Hash_1"); hash2 = vars.get ("var_Hash_2"); hash3 = va. . . TargetError
Was interessant geschnitten ist, dass wenn ich versuche nur hash1 und hash2 gleiche Ausnahme zu schreiben kommen, aber es ist etwas, was zu einer result.txt Datei geschrieben (hash1, hash2) mit hash1, hash2, hash3: ‚‘ nichts ist ausgeschrieben.
Alle 3 Variablen sollen existieren, da ich 3 ähnliche Anfragen ausführe und sie erfolgreich sind. Irgendwelche Ideen?
Edited: Datei von Ausnahme Log:
2017/04/26 17:30:29 ERROR - jmeter.util.BeanShellTestElement: Errror in Beanshell java.lang.NullPointerException
at java.io.Writer.write(Writer.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at bsh.Reflect.invokeMethod(Reflect.java:134)
at bsh.Reflect.invokeObjectMethod(Reflect.java:80)
at bsh.Name.invokeMethod(Name.java:858)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BSHBlock.eval(BSHBlock.java:46)
at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
at bsh.Interpreter.eval(Interpreter.java:645)
at bsh.Interpreter.eval(Interpreter.java:739)
at bsh.Interpreter.eval(Interpreter.java:728)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:170)
at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:197)
at org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151)
at org.apache.jmeter.extractor.BeanShellPostProcessor.process(BeanShellPostProcessor.java:64)
at org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:750)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:452)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261)
at java.lang.Thread.run(Thread.java:745)
Ich habe Sie Code ausgeführt, es scheint, ich bin in der Lage, den Wert in die Datei zu schreiben. Ich änderte nur diese Zeile 'FileWriter fstream = neuer FileWriter (" C: /Projects/result.txt ", wahr);' –