51Testing软件测试论坛
标题:
Day3-2测试积点任务
[打印本页]
作者:
测试积点老人
时间:
2018-8-21 10:19
标题:
Day3-2测试积点任务
问题:
jmeter导入jar包后,用beanshell时报引入包错误 Typed variable declaration : Obje
最近用jmeter的beanshell功能,我想根据图片的url地址,把图片下载并保存到指定目录,
1.我先在测试计划里把需要导入的jar包都导入进去了,如下图1所示:
2.然后添加了一个beanshell sampler,并在里面写上如下的源代码并运行(代码在java环境自测过,能下载图片并保存到本地);
3.运行时,发现走到这里( // 输出的文件流 OutputStream os = new FileOutputStream(filename);)就报错了,看错误日志,以为是导入jar包的问题,后来又有人说可能是参数出错,会提示引入的包报错,让人误以为是引入错误。但我自己真不知道怎么改了,请哪位大神帮我看看是哪里出问题了。
【源代码】
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
log.info("-----------------------------------------");
String urlString ="${questionUrl}";
urlString = urlString.trim();
String filename= "D:\\testpic.jpg";
// 构造URL
URL url = new URL("http://"+urlString);
log.info("url:" +url);
// 打开连接
URLConnection con = url.openConnection();
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
log.info("running line11 -----------------------------------------");
// 读取到的数据长度
int len;
log.info("running line12 -----------------------------------------");
// 输出的文件流
OutputStream os = new FileOutputStream(filename);
log.info("running line13 -----------------------------------------");
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完毕,关闭所有链接
os.close();
is.close();
复制代码
【jmeter报错日志】
[code]2017/06/22 17:35:44 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2017/06/22 17:35:44 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2017/06/22 17:35:44 INFO - jmeter.testelement.TestPlan: add D:\software\apache-jmeter-3.0\practicejar\tools.jar to classpath
2017/06/22 17:35:44 INFO - jmeter.testelement.TestPlan: add D:\software\apache-jmeter-3.0\practicejar\dt.jar to classpath
2017/06/22 17:35:44 INFO - jmeter.testelement.TestPlan: add D:\software\apache-jmeter-3.0\practicejar\junit-test.jar to classpath
2017/06/22 17:35:44 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2017/06/22 17:35:44 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : 正常卷判分
2017/06/22 17:35:44 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group 正常卷判分.
2017/06/22 17:35:44 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2017/06/22 17:35:44 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 0 perThread 0.0 delayedStart=false
2017/06/22 17:35:44 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2017/06/22 17:35:44 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2017/06/22 17:35:44 INFO - jmeter.threads.JMeterThread: Thread started: 正常卷判分 1-1
2017/06/22 17:35:44 INFO - jmeter.services.FileServer: Stored: D:\scriptFile\jmeter\parameter\yjxdata.csv
2017/06/22 17:35:45 INFO - jmeter.util.BeanShellTestElement: -----------------------------------------
2017/06/22 17:35:45 INFO - jmeter.util.BeanShellTestElement: url:
http://图片地址.jpg
2017/06/22 17:35:45 INFO - jmeter.util.BeanShellTestElement: running line11 -----------------------------------------
2017/06/22 17:35:45 INFO - jmeter.util.BeanShellTestElement: running line12 -----------------------------------------
2017/06/22 17:35:45 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval
作者:
海海豚
时间:
2018-8-22 10:09
log语句不能有空格,也不能把加号变为别的符号,改成如下的样式就正常了。
log.info("url:"+url);
作者:
梦想家
时间:
2018-8-22 10:29
log语句不能有空格,也不能把加号变为别的符号
作者:
jingzizx
时间:
2018-8-22 12:23
其他人的问题定位过程:
1 经过不断尝试,定位问题,以为BeanShell Sampler不允许实例化对象,只能使用匿名对象。
2 实际是因为有了类型变量声明:
下面声明了一个ChannelSftp的类型变量。也就是说代码中只能声明基础变量
3 实际是没有加载创建类型变量的jar包,在eclipse里面通过添加外部jar包加进去了所以是成功的。到了jmeter就会出现编译都失败。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2