51Testing软件测试论坛

标题: jmeterbeanshellPosterProcessor取json [打印本页]

作者: 测试积点老人    时间: 2018-11-6 10:00
标题: jmeterbeanshellPosterProcessor取json
用jmeter发送请求,输入内容已参数化,返回为json串,举例如下(工作中实际返回的远远大于3组):
"person": [{ "id":1, "name":"张三"},{ "id":1, "name":"李四" },{ "id":3, "name":"王二" }]
在网上找了一段提取json的代码(代码能力弱,只能先抄抄啦@@),并且把需要导入的包fastjson-1.2.47.jar(这个包没弄清楚到底应该用哪个,搜了一堆试了也没成)放在了jmeter的lib目录下,jmeter的测试计划里也将这个包加入了Library。但是最后运行完还是报一堆错。
  1. import org.json.*;

  2. String response_data = prev.getResponseDataAsString();

  3. JSONObject data_obj = new JSONObject(response_data);

  4. String persons_str = data_obj.get("person").toString();

  5. log.info(persons_str);

  6. JSONArray persons_array = new JSONArray(persons_str);

  7. String[] result = new String[persons_array.length()];

  8. for(int i=0;i<persons_array.length();i++){

  9.     JSONObject person_obj = new JSONObject(perons_array.get(i).toString());

  10.     String personName = person_obj.get("name").toString;

  11.     result[i] = personName;

  12. log.info("--------result-------"+"i"+result[i]);   

  13. }

  14. log.info("--------result-------"+results);

  15. //将结果保存到本地csv文件里

  16. FileWriter fstream = new FileWriter("D:\\pk.csv",true);

  17. BufferedWriter out = new BufferedWriter(fstream);

  18. out.write(results);

  19. out.flush();

  20. out.newLine();

  21. out.close();
复制代码
报错信息:
  1. ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval        Sourced file: inline evaluation of: ``import org.json.*;   String response_data = prev.getResponseDataAsString(); JSON . . . '' : Typed variable declaration : Method Invocation person_obj.get

  2. WARN o.a.j.e.BeanShellPostProcessor: Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval        Sourced file: inline evaluation of: ``import org.json.*;   String response_data = prev.getResponseDataAsString(); JSON . . . '' : Typed variable declaration : Method Invocation person_obj.get
复制代码
---请问哪位大神能告知一下这里需要用的json处理的包到底应该是哪个,然后这个包能帮忙提供一下吗?我的jemeter 版本是3.3,万分感谢。


作者: libingyu135    时间: 2018-11-7 10:44
fastjson是android中的json解析工具,有二进制包也有源码包,你这个是二进制包
作者: qqq911    时间: 2018-11-7 11:08
用正则
作者: 海海豚    时间: 2018-11-7 11:56
不太懂,学习一下
作者: 梦想家    时间: 2018-11-7 12:00

fastjson是android中的json解析工具,有二进制包也有源码包,你这个是二进制包
作者: jingzizx    时间: 2018-11-7 13:06
为什么不用正则表达式提取




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2