jmeter Beanshell - Fehler aufrufen bsh-Methode: eval

Ich versuche zu drucken 3 Variablen aus 3 verschiedenen HTTP-requests in der gleichen Thread-Gruppe .
Ich schrieb folgenden BeanShell in Jmeter:

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 bei der BeanShell-Skript org.apache.jorphan.util.JMeterException: Fehler beim Aufruf bsh-Methode: eval
Bezogen Datei: inline-Bewertung: `try { hash1 = vars.get("var_Hash_1"); hash2 = vars.get("var_Hash_2"); hash3 = va . . . ": TargetError

Was interessant ist, dass, wenn ich zu schreiben versuche nur hash1 und hash2 gleichen-Ausnahme tritt auf, aber es ist etwas geschrieben, um eine result.txt Datei (hash1,hash2)
mit hash1,hash2,hash3 nichts geschrieben.

Alle 3 Variablen sind vorhanden, wie führe ich 3 ähnliche Anfrage, und Sie sind erfolgreich. Irgendwelche Ideen?

Bearbeitet: Log-Datei von der Ausnahme:

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 ausgeführt Sie code, es scheint, ich bin in der Lage, schreiben Sie den Wert in die Datei. Ich änderte nur diese Zeile FileWriter fstream = new FileWriter("C:/Projects/result.txt",true);
InformationsquelleAutor Wojtas.Zet | 2017-04-26
Schreibe einen Kommentar