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시 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
뭐죠 intersting입니다 난 단지 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); –