zoukankan      html  css  js  c++  java
  • 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());
  • 相关阅读:
    使用Bootstrap模态框实现增删改查功能
    表中多个按钮进行操作不需要跳转页面的实现
    在调试javascript的时候,要常使用alert()
    Request.UrlReferrer 实现页面刷新
    确认框的使用。弹出一个确认框,Ajax提交一个请求,刷新页面。
    条件构造器queryWrapper和updateWrapper
    接口调用:从第三方接口获取数据
    Dictionary的用法
    数组和List之间的转换
    调用存储过程
  • 原文地址:https://www.cnblogs.com/only-love-you-519920/p/11925912.html
Copyright © 2011-2022 走看看