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包的问题,后来又有人说可能是参数出错,会提示引入的包报错,让人误以为是引入错误。但我自己真不知道怎么改了,请哪位大神帮我看看是哪里出问题了。

【源代码】

  1. import java.io.FileOutputStream;
  2. import java.io.InputStream;
  3. import java.io.OutputStream;
  4. import java.net.URL;
  5. import java.net.URLConnection;
  6.    
  7.         log.info("-----------------------------------------");
  8.         String urlString ="${questionUrl}";
  9.         urlString = urlString.trim();
  10.         String filename= "D:\\testpic.jpg";
  11.                
  12.     // 构造URL
  13.     URL url = new URL("http://"+urlString);  
  14.     log.info("url:" +url);

  15.     // 打开连接
  16.     URLConnection con = url.openConnection();
  17.    
  18.     // 输入流
  19.     InputStream is = con.getInputStream();
  20.    
  21.     // 1K的数据缓冲
  22.     byte[] bs = new byte[1024];
  23.      log.info("running line11 -----------------------------------------");
  24.     // 读取到的数据长度
  25.     int len;
  26.     log.info("running line12 -----------------------------------------");
  27.     // 输出的文件流
  28.     OutputStream os = new FileOutputStream(filename);

  29.     log.info("running line13 -----------------------------------------");
  30.     // 开始读取
  31.     while ((len = is.read(bs)) != -1) {
  32.       os.write(bs, 0, len);
  33.     }
  34.     // 完毕,关闭所有链接
  35.     os.close();
  36.     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