beanshell Sampler引入jar测试成功,JSR223 Sampler 失败记录
同样的jar包使用beanshell Sampler可以测试,使用JSR223 Sampler报错
Java方法导出jar包,使用测试计划添加,或放入lib包,或ext包下
public class Aal { public int add(int a,int b){ return a+b; } }
jar包内容:

jmeter beanshell Sampler脚本
import Aal;
Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+res);
beanshell Sampler调用测试
日志输出:
INFO o.a.j.u.BeanShellTestElement: ***********************6
JSR223 Sampler 调用测试
日志输出:说明引入的jar包有问题
ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: Sourced file: inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' : Typed variable declaration : Class: Aal not found in namespace : at Line: 1 : in file: inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' : Aal
in inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' at line number 1
javax.script.ScriptException: Sourced file: inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' : Typed variable declaration : Class: Aal not found in namespace : at Line: 1 : in file: inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' : Aal
in inline evaluation of: ``Aal aal = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . '' at line number 1
at bsh.engine.BshScriptEngine.evalSource(BshScriptEngine.java:93) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.engine.BshScriptEngine.eval(BshScriptEngine.java:46) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) ~[java.scripting:?]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:219) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:72) [ApacheJMeter_java.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.1]
at java.lang.Thread.run(Thread.java:834) [?:?]
重写打包测试成功

JSR223 Sampler 调用测试,日志输出成功
import Test.*; Add add = new Add(); int res=add.add(1,5); //System.out.println("*********res:"+res); log.info("***********************"+res);
总结:
1、打完jar后,查看jar里面是class文件,还是java文件,java 用JSR223 Sampler可能引用不到;
2、用JSR223 Sampler时,注意打jar包时的类文件在一个package下面,没有package用JSR223 Sampler可能引用不到;
3、测试计划加入jar后,在JSR223 Sampler中要引入,不引入JSR223 Sampler可能找不到类;
4、有时候引入jar后,可能要重启jmeter;
JSR223 Sampler 直接写方法测试
public class Aal {
public int add(int a,int b){
return a+b;
}
}
Aal aal = new Aal();
int res1=aal.add(1,5);
log.info("********************************************res1:"+res1);
日志输出:
INFO o.a.j.p.j.s.J.JSR223 Sampler: ********************************************res1:6
浙公网安备 33010602011771号