Κοινή χρήση τεχνολογίας

Εκμάθηση jmeter-beanshell Πράξεις πρόσθεσης, αφαίρεσης, πολλαπλασιασμού και διαίρεσης 5-beanshell

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Το σενάριο που χρησιμοποίησα είναι να υπολογίσω το ποσό, επομένως επικεντρώνομαι κυρίως στο ποσό, πιστεύω ότι αυτό το μέρος είναι λίγο ενοχλητικό.

1. Πρώτα έγραψα μια αφαίρεση δύο αριθμών, αλλά η δεκαδική ακρίβεια είναι επιρρεπής σε προβλήματα. Για παράδειγμα, σε αυτήν την περίπτωση, 1-0,01=0,989999997, απλά γράψτε μερικούς αριθμούς χαλαρά, μην το πάρετε στα σοβαρά. Αυτή η κατάσταση αντιμετωπίζεται με BigDecimal.

2. Το πρόβλημα της ακρίβειας του υπολογιζόμενου ποσού πρέπει να υποβληθεί σε επεξεργασία. Το 1 δεν είναι ίσο με 1 κατά τη σύγκριση.

3. Όταν το jmeter επιστρέφει ένα μήνυμα, εάν το ποσό είναι πολύ μεγάλο, θα εμφανιστεί επιστημονική σημείωση, για παράδειγμα, το ποσό που επιστρέφεται είναι 1,23456789013E9. Πρέπει επίσης να μετατραπεί σε κανονική ψηφιακή μορφή.

Προς το παρόν, αυτές οι τρεις παγίδες θα συζητηθούν παρακάτω. Σενάριο: Ελέγξτε το υπόλοιπο πριν μετακινήσετε τον λογαριασμό, ελέγξτε το υπόλοιπο μετά τη μετακίνηση του λογαριασμού, αφαιρέστε τα δύο υπόλοιπα και επαληθεύστε αν η διαφορά είναι το ποσό της συναλλαγής μου. Ο έλεγχος της ισορροπίας θα πρέπει να συνδεθεί με τη βάση δεδομένων. Δεν θα τη συνδέσω εδώ.Κάντε κλικ για να μάθετε σχετικά με τη σύνδεση του jmeter στη βάση δεδομένων mysql, το υπόλοιπο πριν από τη συναλλαγή είναι 1 και το υπόλοιπο μετά τη συναλλαγή είναι 0,99

  1. import java.math.BigDecimal;
  2. import java.math.RoundingMode;
  3. //动账前余额
  4. before=vars.get("BAL_1");
  5. //动账后余额
  6. after=vars.get("BAL_2");
  7. BigDecimal before=new BigDecimal(before);
  8. BigDecimal after=new BigDecimal(after);
  9. //两数相减,计算动账前后余额变化
  10. BigDecimal fee_new= before.subtract(after);
  11. //保留两位小数
  12. BigDecimal fee_new=fee_new.setScale(2,RoundingMode.HALF_UP);
  13. //转化为字符串
  14. String fee_new1=fee_new.toString();
  15. log.info("动账前后差值:"+fee_new1);

Υπολογίστε τη διαφορά, λάβετε το ποσό της συναλλαγής, προσθέστε ισχυρισμούς και κάντε μια κρίση.

Το παραπάνω είναι η αφαίρεση που έγινε.Καταγράψτε πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση.

  1. import java.math.BigDecimal;
  2. BigDecimal a=new BigDecimal("6");
  3. BigDecimal b=new BigDecimal("2");
  4. BigDecimal c=a.add(b);
  5. String c1=c.toString();
  6. log.info("a+b="+c1);
  7. BigDecimal c=a.subtract(b);
  8. String c1=c.toString();
  9. log.info("a-b="+c1);
  10. BigDecimal c=a.multiply(b);
  11. String c1=c.toString();
  12. log.info("a*b="+c1);
  13. BigDecimal c=a.divide(b);
  14. String c1=c.toString();
  15. log.info("a/b="+c1);


Το έγραψα βιαστικά και ξέχασα να προσθέσω μετατροπή επιστημονικής σημειογραφίας.

Χρησιμοποιήστε απευθείας κανονικές εκφράσεις για να εξαγάγετε το bal_ar και στη συνέχεια να το επεξεργαστείτε

  1. bal_ar=vars.get("bal_ar");
  2. BigDecimal bal_ar1=new BigDecimal(bal_ar);
  3. BigDecimal bal_ar1=bal_ar1.setScale(2,RoundingMode.HALF_UP);
  4. String bal_ar2=bal_ar1.toPlainString();
  5. log.info("科学计数法转化以后:"+bal_ar2);

String bal_ar2=bal_ar1.toPlainString(Αυτή η γραμμή μετατρέπει τον επιστημονικό συμβολισμό σε κανονική τιμή).