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());

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM