我想在同一個線程組中打印來自3個不同HTTP請求的3個變量。 我寫了下面的JMeter BeanShell的:jmeter Beanshell - 錯誤調用bsh方法: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;
}
,異常是:
2017年4月26日十六點16分25秒WARN - jmeter.extractor.BeanShellPostProcessor:問題中的BeanShell腳本組織。 apache.jorphan.util.JMeterException:調用bsh方法時出錯:eval 源文件:內聯評估:try {hash1 = vars.get(「var_Hash_1」); hash2 = vars.get(「var_Hash_2」); hash3 = va。 。 。 「」:TargetError
請告訴我野趣的是,如果我只嘗試HASH1和HASH2同樣出現異常時寫的,但有一些東西寫到一個文件的Result.txt(HASH1,HASH2) 與HASH1,HASH2,hash3沒有什麼是寫出來的。
當我執行3個類似的請求並且它們是成功的時候,所有3個變量都應該存在。有任何想法嗎?
編輯:從異常日誌文件:
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)
我執行你的代碼,似乎我能夠寫入文件的值。我只改變了這一行'FileWriter fstream = new FileWriter(「C:/Projects/result.txt」,true);' –