51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1722|回复: 2
打印 上一主题 下一主题

Jmeter 解析 response 并传递 value

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-8 16:05:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
解析response中的内容,并把获取到的value传递到后续的request中,常用的方法就是在想要解析response
的request上添加后置处理器
本章介绍两种常用的组件

BeanShell PostProcessor
JSON Extractor
添加后置处理器:BeanShell PostProcessor

获取response中的字符串,并对内容进行判断,当response中包含“The wait operation timed out”或者“Oops.
  1. Something went wrong ... sorry”时,都认为该request的response不正确
  2. String response = prev.getResponseDataAsString();
  3. String code = prev.getResponseCode();
  4. log.info("Respnse is " + response);
  5. log.info(code);
  6. int result1 = response.indexOf("The wait operation timed out");
  7. int result2 = response.indexOf("Oops. Something went wrong ... sorry");
  8. if(code == "200" && result1>=0 || result2>=0){
  9. FailureMessage = "OK,check current";
  10. }
  11. else{
  12. Failure = true;
  13. FailureMessage = "ERROR,check error";
  14. }
复制代码
解析返回的Jason数据,获取name字段的值赋给变量result
  1. {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}}

  2. import org.json.*;
复制代码
脚本中的导入的json包需要自己去网络下载后放到\lib\ext下
  1. String response_data = prev.getResponseDataAsString();
  2. JSONObject data_obj = new JSONObject(response_data);
  3. String apps_str = data_obj.get("body").get("apps").toString();
  4. JSONArray apps_array = new JSONArray(apps_str);
  5. String[] result = new String[apps_array.length()];
  6. for(int i=0;i<apps_array.length();i++){
  7. JSONObject app_obj = new JSONObject(apps_array.get(i).toString());
  8. String name = app_obj.get("name").toString();
  9. result[i] = name;
  10. }
  11. vars.put("result", Arrays.toString(result));

  12. 添加后置处理器:JSON Extractor

  13. 解析返回的Jason数据,获取name字段的值带入参数到后边的request中

  14. {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}}
复制代码

变量t1的值是111,变量t2的值是222


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-12 10:01 , Processed in 0.063492 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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