jmeter之Bean Shell Sampler使用四则运算

jmeter使用四则运算,1.可以写好java代码然后在jmeter中引用,2.直接在Bean Shell Sampler 写四则

比如:数据库或者上一个请求响应中提取的参数,需要加减乘除处理后传递给下一个接口请求参数,请求中的参数在body不能做处理,所以只能在Bean Shell Sampler或者后置处理器中处理。

事列:1.要求先获取电量和消费总金额,2.通过处理传递给下一个请求补贴金额和结算金额(公式:补贴金额=消费总金额*15%,结算金额=消费总金额-补贴金额

图1:通过数据库查询,获取了电量和消费金额

 

图2:补贴金额和结算金额计算,vars.put变量仅对当前线程组内可见, 跨线程组则需要使用属性

 

图3:结果日志打印

 

 

 图4:请求body传递,传递的数值就是图3日志中显示的结果

 

 1 import java.text.DecimalFormat;
 2 import java.math.BigDecimal;
 3 
 4 String TotalPower = vars.get("order-TotalPower_1");
 5 log.info("充电电量------"+TotalPower);
 6 String TotalMoney = vars.get("order-TotalMoney_1");
 7 log.info("总消费-----"+TotalMoney);
 8 String SubsidyMoney1 = String.valueOf(Double.parseDouble(TotalMoney)*Double.parseDouble("0.15"));
 9 BigDecimal b = new BigDecimal(SubsidyMoney1);
10 SubsidyMoney = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
11 SubsidyMoney2 = String.valueOf(SubsidyMoney);
12 log.info("补贴金额-----"+SubsidyMoney2);
13 SettlementMoney = String.valueOf(Double.parseDouble(TotalMoney)-Double.parseDouble(SubsidyMoney2));  
14 log.info("结算金额-----"+SettlementMoney);
15 
16 vars.put("TotalPower",TotalPower);
17 vars.put("TotalMoney",TotalMoney);
18 vars.put("SubsidyMoney",SubsidyMoney2.toString());
19 vars.put("SettlementMoney1",SettlementMoney.toString());

 

posted @ 2019-11-25 09:28  작은악마  阅读(1196)  评论(0编辑  收藏  举报