내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
제가 사용한 시나리오는 금액을 계산하는 것이므로 주로 금액에 중점을 두었습니다. 이 부분이 좀 번거로울 것 같아서 해결 과정을 보여주지 않고 제가 겪은 몇 가지 함정만 적어보겠습니다.
1. 먼저 두 숫자의 뺄셈을 썼는데 소수점 이하 정밀도가 문제가 되기 쉽습니다. 예를 들어, 이 경우 1-0.01=0.989999997, 숫자 몇 개를 가볍게 쓰되 심각하게 받아들이지 마세요. 이 상황은 BigDecimal로 처리됩니다.
2. 계산된 금액의 정확성 문제가 해결되었습니다. 제출한 금액의 정확성도 처리해야 합니다. 그렇지 않으면 계산된 금액이 1.00이고 내가 제출한 금액은 1입니다. 문자열 비교이므로, 비교 시 1은 1이 아닙니다. 1.00의 경우 오류가 발생합니다.
3. jmeter가 메시지를 반환할 때 금액이 너무 크면 과학적 표기법이 나타납니다. 예를 들어 반환된 금액은 1.23456789013E9입니다. 또한 일반 디지털 형식으로 변환해야 합니다.
당분간 이 세 가지 함정에 대해서는 아래에서 구체적인 계획을 설명하겠습니다. 시나리오 : 계좌이동 전 잔액을 확인하고, 계좌이동 후 잔액을 확인하고, 두 잔액을 차감한 후 그 차액이 내 거래금액인지 확인합니다. 저울 확인은 데이터베이스에 연결해야 합니다. 여기서는 대신 사용자 매개변수를 사용하겠습니다.mysql 데이터베이스에 연결하는 jmeter에 대해 알아보려면 클릭하세요., 거래 전 잔액은 1, 거래 후 잔액은 0.99
- import java.math.BigDecimal;
- import java.math.RoundingMode;
-
- //动账前余额
- before=vars.get("BAL_1");
- //动账后余额
- after=vars.get("BAL_2");
-
- BigDecimal before=new BigDecimal(before);
- BigDecimal after=new BigDecimal(after);
-
- //两数相减,计算动账前后余额变化
- BigDecimal fee_new= before.subtract(after);
- //保留两位小数
- BigDecimal fee_new=fee_new.setScale(2,RoundingMode.HALF_UP);
- //转化为字符串
- String fee_new1=fee_new.toString();
-
- log.info("动账前后差值:"+fee_new1);
차액을 계산하고, 거래 금액을 얻고, 주장을 추가하고, 판단합니다.
위의 뺄셈이 완료되었습니다.덧셈, 뺄셈, 곱셈, 나눗셈을 적어보세요.
- import java.math.BigDecimal;
-
- BigDecimal a=new BigDecimal("6");
- BigDecimal b=new BigDecimal("2");
- BigDecimal c=a.add(b);
- String c1=c.toString();
- log.info("a+b="+c1);
-
- BigDecimal c=a.subtract(b);
- String c1=c.toString();
- log.info("a-b="+c1);
-
- BigDecimal c=a.multiply(b);
- String c1=c.toString();
- log.info("a*b="+c1);
-
- BigDecimal c=a.divide(b);
- String c1=c.toString();
- log.info("a/b="+c1);
급하게 작성했는데 과학적 표기법 변환을 추가하는 것을 잊어버렸습니다. 반환된 결과가 과학적 표기법인 경우 일반적으로 변환이 필요합니다.
정규식을 직접 사용하여 bal_ar을 추출한 후 처리합니다.
- bal_ar=vars.get("bal_ar");
- BigDecimal bal_ar1=new BigDecimal(bal_ar);
- BigDecimal bal_ar1=bal_ar1.setScale(2,RoundingMode.HALF_UP);
- String bal_ar2=bal_ar1.toPlainString();
- log.info("科学计数法转化以后:"+bal_ar2);
String bal_ar2=bal_ar1.toPlainString(); 이 줄은 과학적 표기법을 일반 값으로 변환합니다.