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