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());
  • 相关阅读:
    nopcommerce 电商商城 ASP.NET 开源系统
    Android 圆形/圆角图片的方法
    5 shell命令之tr
    破茧成蝶2:和产品经理一起做需求分析
    android中单元測试中的断言assert的使用与扩展
    位置与地图(二)地图的使用以及标注地图
    找与一个数二进制表示1的个数相同的相邻的两个数
    Hook linux 网络封包
    使用ant自动编译、打包生成apk文件
    Analyzing the Analyzers 分析分析师 —— 数据科学部门如何建
  • 原文地址:https://www.cnblogs.com/only-love-you-519920/p/11925912.html
Copyright © 2011-2022 走看看