2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Das Szenario, das ich verwendet habe, ist die Berechnung der Menge, daher konzentriere ich mich hauptsächlich auf die Menge. Ich halte diesen Teil für etwas mühsam. Ich werde nur die wenigen Fallstricke aufschreiben, auf die ich gestoßen bin, ohne den Lösungsprozess zu demonstrieren.
1. Ich habe zuerst eine Subtraktion zweier Zahlen geschrieben, aber die Dezimalgenauigkeit ist anfällig für Probleme. In diesem Fall ist beispielsweise 1-0,01 = 0,989999997. Schreiben Sie einfach ein paar Zahlen beiläufig und nehmen Sie es nicht ernst. Diese Situation wird mit BigDecimal behandelt.
2. Das Problem der Genauigkeit des berechneten Betrags wurde gelöst. Die Genauigkeit des von mir übermittelten Betrags muss ebenfalls verarbeitet werden. Ansonsten beträgt der berechnete Betrag 1,00 und der von mir übermittelte Betrag ist 1. Da es sich um einen Zeichenfolgenvergleich handelt, beträgt der Wert 1 ist beim Vergleich ungleich 1. Bei 1,00 tritt ein Fehler auf.
3. Wenn jmeter eine Meldung zurückgibt und der Betrag zu groß ist, wird eine wissenschaftliche Schreibweise angezeigt. Der zurückgegebene Betrag lautet beispielsweise 1,23456789013E9. Außerdem muss es in ein normales digitales Format konvertiert werden.
Vorerst werden diese drei Fallstricke weiter unten besprochen. Konkrete Pläne werden weiter unten beschrieben. Szenario: Überprüfen Sie den Kontostand vor dem Umziehen des Kontos, überprüfen Sie den Kontostand nach dem Umziehen des Kontos, subtrahieren Sie die beiden Salden und überprüfen Sie, ob die Differenz mein Transaktionsbetrag ist. Die Überprüfung des Guthabens sollte hier nicht mit der Datenbank verbunden werden, sondern stattdessen Benutzerparameter verwenden.Klicken Sie hier, um mehr über die Verbindung von Jmeter mit der MySQL-Datenbank zu erfahren, der Saldo vor der Transaktion beträgt 1 und der Saldo nach der Transaktion beträgt 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);
Berechnen Sie die Differenz, ermitteln Sie den Transaktionsbetrag, fügen Sie Behauptungen hinzu und fällen Sie ein Urteil.
Das Obige ist die durchgeführte Subtraktion.Schreiben Sie Addition, Subtraktion, Multiplikation und Division auf.
- 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);
Ich habe es in Eile geschrieben und vergessen, die Konvertierung in wissenschaftliche Notation hinzuzufügen. Wenn das zurückgegebene Ergebnis in wissenschaftlicher Notation vorliegt, muss es normalerweise konvertiert werden.
Verwenden Sie reguläre Ausdrücke direkt, um bal_ar zu extrahieren und dann zu verarbeiten
- 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(); Diese Zeile wandelt die wissenschaftliche Notation in einen normalen Wert um