You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2023/04/29 15:52:08 UTC

[jmeter] 02/02: Add test for JSONPathAssertion with floating point number

This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 4846dc4e57d51e6af67b225be559d4627d519860
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Fri Apr 28 16:15:50 2023 +0200

    Add test for JSONPathAssertion with floating point number
    
    Closes PR #723
---
 .../jmeter/assertions/TestJSONPathAssertion.java   | 29 ++++++++++++++++++++++
 xdocs/changes.xml                                  |  2 ++
 2 files changed, 31 insertions(+)

diff --git a/src/components/src/test/java/org/apache/jmeter/assertions/TestJSONPathAssertion.java b/src/components/src/test/java/org/apache/jmeter/assertions/TestJSONPathAssertion.java
index c01f5c5e87..a2a9c6b3ca 100644
--- a/src/components/src/test/java/org/apache/jmeter/assertions/TestJSONPathAssertion.java
+++ b/src/components/src/test/java/org/apache/jmeter/assertions/TestJSONPathAssertion.java
@@ -99,6 +99,35 @@ class TestJSONPathAssertion {
         assertFalse(result.isFailure());
     }
 
+    @Test
+    void testGetResult_positive_regexp_for_floating_point() {
+        SampleResult samplerResult = new SampleResult();
+        samplerResult.setResponseData("{\"myval\": 123.45}".getBytes(Charset.defaultCharset()));
+
+        JSONPathAssertion instance = new JSONPathAssertion();
+        instance.setJsonPath("$.myval");
+        instance.setJsonValidationBool(true);
+        instance.setExpectedValue("^\\d+\\.\\d+$");
+        AssertionResult expResult = new AssertionResult("");
+        AssertionResult result = instance.getResult(samplerResult);
+        assertEquals(expResult.getName(), result.getName());
+        assertFalse(result.isFailure());
+    }
+
+    @Test
+    void testGetResult_positive_wrong_regexp_for_floating_point() {
+        SampleResult samplerResult = new SampleResult();
+        samplerResult.setResponseData("{\"myval\": 123.45}".getBytes(Charset.defaultCharset()));
+
+        JSONPathAssertion instance = new JSONPathAssertion();
+        instance.setJsonPath("$.myval");
+        instance.setJsonValidationBool(true);
+        instance.setExpectedValue("^\\d+,\\d+$");
+        AssertionResult expResult = new AssertionResult("");
+        AssertionResult result = instance.getResult(samplerResult);
+        assertEquals(expResult.getName(), result.getName());
+        assertTrue(result.isFailure());
+    }
     @Test
     void testGetResult_positive_regexp() {
         SampleResult samplerResult = new SampleResult();
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index c2769d1058..fef507cfb9 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -147,6 +147,7 @@ Summary
 <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
 <ul>
   <li><pr>5717</pr>Add jsonpath string to jsonpath assertion error message so the error is easier to understand</li>
+  <li><pr>723</pr>Use correct number format on JSON Path Assertion. Contributed by andreaslind01 (andreaslind01 at gmail.com)</li>
 </ul>
 
 <h3>Functions</h3>
@@ -184,6 +185,7 @@ Summary
   <li>Kai Lehmann (klehmann at aservo.com)</li>
   <li>Ori Marko (orimarko at gmail.com)</li>
   <li>Stefan Seide (stefan at trilobyte-se.de)</li>
+  <li>andreaslind01 Lind (andreaslind01 at gmail.com)</li>
 </ul>
 <p>We also thank bug reporters who helped us improve JMeter.</p>
 <ul>