51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5617|回复: 5
打印 上一主题 下一主题

[求助] jmeterbeanshellPosterProcessor取json

[复制链接]
  • TA的每日心情
    擦汗
    8 小时前
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-11-6 10:00:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    用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,万分感谢。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情

    2020-2-2 12:43
  • 签到天数: 630 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2018-11-7 10:44:37 | 只看该作者
    fastjson是android中的json解析工具,有二进制包也有源码包,你这个是二进制包
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 1516 天

    连续签到: 5 天

    [LV.Master]测试大本营

    3#
    发表于 2018-11-7 11:08:56 | 只看该作者
    用正则
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 1801 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2018-11-7 11:56:28 | 只看该作者
    不太懂,学习一下
    回复

    使用道具 举报

  • TA的每日心情

    2024-7-8 09:00
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2018-11-7 12:00:05 | 只看该作者

    fastjson是android中的json解析工具,有二进制包也有源码包,你这个是二进制包
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 2812 天

    连续签到: 5 天

    [LV.Master]测试大本营

    6#
    发表于 2018-11-7 13:06:43 | 只看该作者
    为什么不用正则表达式提取
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 18:00 , Processed in 0.075349 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表