用jmeter发送请求,输入内容已参数化,返回为json串,举例如下(工作中实际返回的远远大于3组):
"person": [{ "id":1, "name":"张三"},{ "id":1, "name":"李四" },{ "id":3, "name":"王二" }]
在网上找了一段提取json的代码(代码能力弱,只能先抄抄啦@@),并且把需要导入的包fastjson-1.2.47.jar(这个包没弄清楚到底应该用哪个,搜了一堆试了也没成)放在了jmeter的lib目录下,jmeter的测试计划里也将这个包加入了Library。但是最后运行完还是报一堆错。
---------------------------------------------------------------------------------------------------------
import org.json.*;
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);
String persons_str = data_obj.get("person").toString();
log.info(persons_str);
JSONArray persons_array = new JSONArray(persons_str);
String[] result = new String[persons_array.length()];
for(int i=0;i<persons_array.length();i++){
JSONObject person_obj = new JSONObject(perons_array.get(i).toString());
String personName = person_obj.get("name").toString;
result[i] = personName;
log.info("--------result-------"+"i"+result[i]);
}
log.info("--------result-------"+results);
//将结果保存到本地csv文件里
FileWriter fstream = new FileWriter("D:\\pk.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(results);
out.flush();
out.newLine();
out.close();
-------------------------------------------------------------------------------------------------------
报错信息:
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
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,万分感谢。