同样的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脚本
java;gutter:true;
import Aal;Aal aal = new Aal();
int res=aal.add(1,5);
log.info("<strong><em>*</em></strong><strong><em>*</em></strong><strong><em>*</em></strong>**"+res);</p>
<pre><code>
**beanshell Sampler调用测试**
日志输出:
INFO o.a.j.u.BeanShellTestElement: ***********************6
**JSR223 Sampler 调用测试**
日志输出:说明引入的jar包有问题
;gutter:true;
ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: Sourced file: inline evaluation of: 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 = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . ” : Aal
in inline evaluation of: 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 = 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 = new Aal(); int res=aal.add(1,5); log.info("***********************"+re . . . ” : Aal
in inline evaluation of: 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 直接写方法测试
java;gutter:true;
public class Aal {
public int add(int a,int b){
return a+b;
}</p>
<p>}
Aal aal = new Aal();
int res1=aal.add(1,5);
log.info("<strong><em>*</em></strong><strong><em>*</em></strong><strong><em>*</em></strong><strong><em>*</em></strong><strong><em>*</em></strong><strong><em>*</em></strong>**res1:"+res1);
日志输出:
INFO o.a.j.p.j.s.J.JSR223 Sampler: ********res1:6
Original: https://www.cnblogs.com/tfqfdr/p/16508201.html
Author: 颓废且努力奋斗的人
Title: beanshell Sampler引入jar测试成功,JSR223 Sampler 失败记录
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588473/
转载文章受原作者版权保护。转载请注明原作者出处!