jmeter之Bean Shell Sampler使用四則運算

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());
相關文章
相關標籤/搜索