jmeter使用四则运算,1.能够写好java代码而后在jmeter中引用,2.直接在Bean Shell Sampler 写四则java
好比:数据库或者上一个请求响应中提取的参数,须要加减乘除处理后传递给下一个接口请求参数,请求中的参数在body不能作处理,因此只能在Bean Shell Sampler或者后置处理器中处理。数据库
事列:1.要求先获取电量和消费总金额,2.经过处理传递给下一个请求补贴金额和结算金额(公式:补贴金额=消费总金额*15%,结算金额=消费总金额-补贴金额)spa
图1:经过数据库查询,获取了电量和消费金额线程
图2:补贴金额和结算金额计算,vars.put变量仅对当前线程组内可见, 跨线程组则须要使用属性日志
图3:结果日志打印code
图4:请求body传递,传递的数值就是图3日志中显示的结果orm
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 log.info("补贴金额-----"+SubsidyMoney); 12 SettlementMoney = String.valueOf(Double.parseDouble(TotalMoney)-Double.parseDouble(SubsidyMoney1)); 13 BigDecimal c = new BigDecimal(SettlementMoney); 14 SettlementMoney1 = c.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 15 log.info("结算金额-----"+SettlementMoney1); 16 17 18 vars.put("TotalPower",TotalPower); 19 vars.put("TotalMoney",TotalMoney); 20 vars.put("SubsidyMoney",SubsidyMoney.toString()); 21 vars.put("SettlementMoney1",SettlementMoney1.toString());