jmeter BeanShell PostProcessor处理响应数据作为下个请求的参数

  • 响应数据
{"id":26028,"itemCode":"Y00000002049","itemName":"布洛芬(芬必得缓释)","drugType":"药品","specs":"300mg*20粒","factoryName":"中美史克天津","unitPrice":12.97,"hospitalId":100,"hospitalName":"西安交通大学第一附属医院","isValid":null,"pic1":"picture/3f13e79026b3413ebd0151af2e2d9505.png","frequencyCode":"BID","frequencyName":"日两次","urgentCode":"P.O:口服","perCnt":null,"perUnit":null,"inspectionDeptCode":null,"inspectionDeptName":null,"inspectionArea":null,"materials":null,"orgId":null,"storeSum":3260,"totalPrice":"12.97","tableId":"2","maxCount":"3","packUnit":"盒","extendName":null,"validFlag":null,"count":1,"selectId":26028,"type":"药品","urgent":"P.O:口服","patUserId":null}
  • 作处理,需要将部分字段的值赋给另外的字段,且需要在json串中添加字段
import net.sf.json.JSONObject;
import net.sf.json.JSONAarry;
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("0.00"); 
String drugdetail = vars.get("drugdetail");
log.info("drugdetail----------"+drugdetail);
JSONObject drugjson = JSONObject.fromObject(drugdetail);
log.info("drugjson---------"+drugjson);
String id = drugjson.getString("id");
String unitPrice = drugjson.getString("unitPrice");
log.info("id------------"+id);
log.info("unitPrice----------"+unitPrice);
drugjson.put("count",1);
drugjson.put("selectId",Double.parseDouble(id));
drugjson.put("type","药品");
drugjson.put("urgent","P.O:口服");
drugjson.put("patUserId","null");
drugjson.put("totalPrice",df.format(Double.parseDouble(unitPrice)));
log.info("drugjson222---------"+drugjson);
//drugdetail=drugjson.toString();
//log.info("oooooooooooooooooooooooooooo"+drugdetail);
vars.put("drugdetail",drugjson.toString());
  • 响应数据,有3个json串
{"version":null,"createTime":null,"createUser":null,"updateUser":null,"updateTime":null,"comments":null,"id":null,"patUserId":null,"selectId":1000027297,"type":"检验","itemCode":null,"itemName":"血清载脂蛋白B测定","count":1,"unitPrice":13,"totalPrice":13,"frequencyCode":null,"frequencyName":null,"urgent":null,"perCnt":null,"perUnit":null,"inspectionDeptCode":null,"inspectionDeptName":null,"inspectionArea":null,"materials":null,"hospitalId":100,"hospitalName":"西安交通大学第一附属医院","maxCount":1,"packUnit":null,"diagnosics":null,"docCombinePreDetails":null,"docCombineDiaInspections":[{"version":1,"createTime":1552635876277,"createUser":128,"updateUser":null,"updateTime":1552635876004,"comments":null,"id":1000001451,"combineId":1000027297,"type":2,"itemCode":"F00000001869","itemName":"血清载脂蛋白B测定","inspectionDeptCode":"3002","inspectionDeptName":"检验科","inspectionArea":null,"materials":["血清"],"urgent":false,"number":1,"groupNo":null,"unit":"项","sysInspectionCatalogId":72904,"valid":false,"hisPk":"100_7593792_7603792","syncFlag":1,"hisOperateTime":"2019-03-15 15:44:36","source":0,"deleteFlag":1,"checkInfo":null,"pinyin":"xqzzdbBcd|xueqingzaizhidanbaiBceding","groupId":"7593792","seqId":"7603792","unitPrice":13,"finalCount":null,"count":null,"combineName":null,"packUnit":"项","execReason":null}],"docCombineAdvices":null,"productId":1000027297,"usage":null,"frequency":null},{"version":null,"createTime":null,"createUser":null,"updateUser":null,"updateTime":null,"comments":null,"id":null,"patUserId":null,"selectId":1000027285,"type":"检查","itemCode":null,"itemName":"CT增强(三期)","count":1,"unitPrice":475,"totalPrice":475,"frequencyCode":null,"frequencyName":null,"urgent":null,"perCnt":null,"perUnit":null,"inspectionDeptCode":null,"inspectionDeptName":null,"inspectionArea":null,"materials":null,"hospitalId":100,"hospitalName":"西安交通大学第一附属医院","maxCount":2,"packUnit":null,"diagnosics":null,"docCombinePreDetails":null,"docCombineDiaInspections":[{"version":1,"createTime":1552635666569,"createUser":128,"updateUser":null,"updateTime":1552635666007,"comments":null,"id":1000001439,"combineId":1000027285,"type":1,"itemCode":"F00000237167","itemName":"CT增强(三期)[复]","inspectionDeptCode":"3001","inspectionDeptName":"医学影像科","inspectionArea":null,"materials":null,"urgent":false,"number":1,"groupNo":null,"unit":"复合项","sysInspectionCatalogId":77510,"valid":false,"hisPk":"100_7473792_7483792","syncFlag":1,"hisOperateTime":"2019-03-15 15:41:06","source":0,"deleteFlag":1,"checkInfo":null,"pinyin":"CTzq(sq)[f]|CTzengqiang(sanqi)[fu]","groupId":"7473792","seqId":"7483792","unitPrice":475,"finalCount":null,"count":null,"combineName":null,"packUnit":"复合项","execReason":null}],"docCombineAdvices":null,"productId":1000027285,"usage":null,"frequency":null},{"version":null,"createTime":null,"createUser":null,"updateUser":null,"updateTime":null,"comments":null,"id":null,"patUserId":null,"selectId":26028,"type":"药品","itemCode":"Y00000002049","itemName":"布洛芬(芬必得缓释)","count":1,"unitPrice":12.97,"totalPrice":12.97,"frequencyCode":"BID","frequencyName":"日两次","urgent":"P.O:口服","perCnt":null,"perUnit":null,"inspectionDeptCode":null,"inspectionDeptName":null,"inspectionArea":null,"materials":null,"hospitalId":100,"hospitalName":"西安交通大学第一附属医院","maxCount":3,"packUnit":"盒","diagnosics":null,"docCombinePreDetails":null,"docCombineDiaInspections":null,"docCombineAdvices":null,"productId":26028,"usage":"P.O:口服","frequency":"日两次"}
  • 作处理,分割字符串,一个一个json串进行处理
import net.sf.json.JSONObject;
import net.sf.json.JSONAarry;
String temp;
String datadetail1="";
Double total=0;
String datadetail = vars.get("datadetail");
String[] strArray = datadetail.split("},");
for(int i=0;i<3;i++){
	if(i<2){
		temp = strArray[i]+"}";
		}
	else{
		temp = strArray[i];
		}
	JSONObject tempjson = JSONObject.fromObject(temp);
	String id = tempjson.getString("selectId");
	String frequency = tempjson.getString("frequencyName");
	String usage = tempjson.getString("urgent");
	String totalPrice = tempjson.getString("totalPrice");
	tempjson.put("productId",Long.parseLong(id));
	tempjson.put("usage",usage);
	tempjson.put("frequency",frequency);
	total  = total+Double.parseDouble(totalPrice);
	if(i==0){
		datadetail1 = datadetail1+tempjson.toString();
		}		
	else{
		datadetail1 = datadetail1+","+tempjson.toString();
		}
}
vars.put("total",total.toString());
vars.put("datadetail",datadetail1);
log.info("total----------"+total);
log.info("datadetail----------"+datadetail1);

猜你喜欢

转载自blog.csdn.net/python222/article/details/89706896