You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/05/26 21:19:13 UTC

svn commit: r1796345 - in /jmeter/trunk: src/core/org/apache/jmeter/report/processor/ test/src/org/apache/jmeter/report/processor/ xdocs/

Author: pmouawad
Date: Fri May 26 21:19:13 2017
New Revision: 1796345

URL: http://svn.apache.org/viewvc?rev=1796345&view=rev
Log:
Bug 61129 - Report/Dashboard : If response code is empty but a failureMessage is present, Errors and Top 5 Errors are not accurate
Bugzilla Id: 61129

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java
    jmeter/trunk/src/core/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumer.java
    jmeter/trunk/test/src/org/apache/jmeter/report/processor/ErrorsSummaryConsumerTest.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java?rev=1796345&r1=1796344&r2=1796345&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java Fri May 26 21:19:13 2017
@@ -78,11 +78,21 @@ public class ErrorsSummaryConsumer exten
      */
     @Override
     protected String getKeyFromSample(Sample sample) {
+        return getErrorKey(sample);
+    }
+
+    /**
+     * @param sample {@link Sample}
+     * @return String Error key for sample 
+     */
+    static String getErrorKey(Sample sample) {
         String responseCode = sample.getResponseCode();
         String responseMessage = sample.getResponseMessage();
         String key = responseCode + (!StringUtils.isEmpty(responseMessage) ? 
                  "/" + StringEscapeUtils.escapeJson(responseMessage) : "");
-        if (isSuccessCode(responseCode)) {
+        if (isSuccessCode(responseCode) || 
+                (StringUtils.isEmpty(responseCode) && 
+                        !StringUtils.isEmpty(sample.getFailureMessage()))) {
             key = ASSERTION_FAILED;
             if (ASSERTION_RESULTS_FAILURE_MESSAGE) {
                 String msg = sample.getFailureMessage();
@@ -93,7 +103,6 @@ public class ErrorsSummaryConsumer exten
         }
         return key;
     }
-
     /*
      * (non-Javadoc)
      * 

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumer.java?rev=1796345&r1=1796344&r2=1796345&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumer.java Fri May 26 21:19:13 2017
@@ -17,8 +17,6 @@
  */
 package org.apache.jmeter.report.processor;
 
-import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.report.core.Sample;
 import org.apache.jmeter.util.JMeterUtils;
 
@@ -57,28 +55,11 @@ public class Top5ErrorsBySamplerConsumer
         }
         
         if(!sample.getSuccess()) {
-            data.registerError(getError(sample));
+            data.registerError(ErrorsSummaryConsumer.getErrorKey(sample));
             data.incErrors();
         }
         data.incTotal();
     }
-    
-    private String getError(Sample sample) {
-        String responseCode = sample.getResponseCode();
-        String responseMessage = sample.getResponseMessage();
-        String key = responseCode + (!StringUtils.isEmpty(responseMessage) ? 
-                 "/" + StringEscapeUtils.escapeJson(responseMessage) : "");
-        if (ErrorsSummaryConsumer.isSuccessCode(responseCode)) {
-            key = ErrorsSummaryConsumer.ASSERTION_FAILED;
-            if (ErrorsSummaryConsumer.ASSERTION_RESULTS_FAILURE_MESSAGE) {
-                String msg = sample.getFailureMessage();
-                if (!StringUtils.isEmpty(msg)) {
-                    key = StringEscapeUtils.escapeJson(msg);
-                }
-            }
-        }
-        return key;
-    }
 
     /*
      * (non-Javadoc)

Modified: jmeter/trunk/test/src/org/apache/jmeter/report/processor/ErrorsSummaryConsumerTest.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/report/processor/ErrorsSummaryConsumerTest.java?rev=1796345&r1=1796344&r2=1796345&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/report/processor/ErrorsSummaryConsumerTest.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/report/processor/ErrorsSummaryConsumerTest.java Fri May 26 21:19:13 2017
@@ -26,6 +26,24 @@ import org.junit.Test;
 public class ErrorsSummaryConsumerTest {
 
     @Test
+    public void testGetErrorKey() {
+        SampleMetadata metadata = new SampleMetadata(',', new String[] { CSVSaveService.SUCCESSFUL,
+                CSVSaveService.RESPONSE_CODE, CSVSaveService.RESPONSE_MESSAGE, CSVSaveService.FAILURE_MESSAGE });
+        Sample sample = new Sample(0, metadata, new String[] { "false", "", "", "FailureMessage" });
+        Assert.assertEquals("FailureMessage", ErrorsSummaryConsumer.getErrorKey(sample));
+
+        sample = new Sample(0, metadata, new String[] { "false", "200", "", "FailureMessage" });
+        Assert.assertEquals("FailureMessage", ErrorsSummaryConsumer.getErrorKey(sample));
+        
+        sample = new Sample(0, metadata, new String[] { "true", "200", "", "" });
+        Assert.assertEquals(ErrorsSummaryConsumer.ASSERTION_FAILED, ErrorsSummaryConsumer.getErrorKey(sample));
+
+        sample = new Sample(0, metadata, new String[] { "false", "500", "Server Error", "FailureMessage" });
+        Assert.assertEquals("500/Server Error", ErrorsSummaryConsumer.getErrorKey(sample));
+    }
+
+
+    @Test
     public void testErrorSampleCounter() {
         ErrorsSummaryConsumer consumer = new ErrorsSummaryConsumer();
         Sample sample = createSample(false);

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1796345&r1=1796344&r2=1796345&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Fri May 26 21:19:13 2017
@@ -164,6 +164,7 @@ Summary
 
 <h3>Report / Dashboard</h3>
 <ul>
+    <li><bug>61129</bug>Report/Dashboard : If response code is empty but a failureMessage is present, Errors and Top 5 Errors are not accurate</li>
 </ul>
 
 <h3>General</h3>