Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code) #3477

Closed
asfimport opened this issue Nov 15, 2014 · 7 comments

Comments

@asfimport
Copy link
Collaborator

UbikLoadPack support (Bug 57217):
Hello,
Find attached a patch that adds percentile 95 and 99 to Aggregate report.

Regards
Ubik Load Pack Team

OS: All

@asfimport
Copy link
Collaborator Author

UbikLoadPack support (migrated from Bugzilla):
Created attachment addpercentile95_99.patch: Patch implementing feature

addpercentile95_99.patch
Index: src/components/org/apache/jmeter/visualizers/StatVisualizer.java
===================================================================
--- src/components/org/apache/jmeter/visualizers/StatVisualizer.java	(revision 1637590)
+++ src/components/org/apache/jmeter/visualizers/StatVisualizer.java	(working copy)
@@ -75,6 +75,8 @@
             "average",                       //$NON-NLS-1$
             "aggregate_report_median",       //$NON-NLS-1$
             "aggregate_report_90%_line",     //$NON-NLS-1$
+            "aggregate_report_95%_line",     //$NON-NLS-1$
+            "aggregate_report_99%_line",     //$NON-NLS-1$
             "aggregate_report_min",          //$NON-NLS-1$
             "aggregate_report_max",          //$NON-NLS-1$
             "aggregate_report_error%",       //$NON-NLS-1$
@@ -118,15 +120,21 @@
                     new Functor("getMedian"),  //$NON-NLS-1$
                     new Functor("getPercentPoint",  //$NON-NLS-1$
                             new Object[] { new Float(.900) }),
+                    new Functor("getPercentPoint",  //$NON-NLS-1$
+                            new Object[] { new Float(.950) }),
+                    new Functor("getPercentPoint",  //$NON-NLS-1$
+                            new Object[] { new Float(.990) }),
+
                     new Functor("getMin"),  //$NON-NLS-1$
                     new Functor("getMax"),   //$NON-NLS-1$
                     new Functor("getErrorPercentage"),   //$NON-NLS-1$
                     new Functor("getRate"),  //$NON-NLS-1$
                     new Functor("getKBPerSecond")   //$NON-NLS-1$
                 },
-                new Functor[] { null, null, null, null, null, null, null, null, null, null },
+                new Functor[] { null, null, null, null, null, null, null, null, null, null, null, null },
                 new Class[] { String.class, Long.class, Long.class, Long.class, Long.class,
-                              Long.class, Long.class, String.class, String.class, String.class });
+                              Long.class,Long.class, Long.class, Long.class, String.class, 
+                              String.class, String.class });
         clearData();
         init();
     }
@@ -139,6 +147,8 @@
             null, // Mean
             null, // median
             null, // 90%
+            null, // 95%
+            null, // 99%
             null, // Min
             null, // Max
             new NumberRenderer("#0.00%"), // Error %age //$NON-NLS-1$
Index: src/core/org/apache/jmeter/resources/messages.properties
===================================================================
--- src/core/org/apache/jmeter/resources/messages.properties	(revision 1637590)
+++ src/core/org/apache/jmeter/resources/messages.properties	(working copy)
@@ -80,6 +80,10 @@
 aggregate_report_90=90%
 aggregate_report_90%_line=90% Line
 aggregate_report_bandwidth=KB/sec
+aggregate_report_95=95%
+aggregate_report_95%_line=95% Line
+aggregate_report_99=99%
+aggregate_report_99%_line=99% Line
 aggregate_report_count=# Samples
 aggregate_report_error=Error
 aggregate_report_error%=Error %
Index: src/core/org/apache/jmeter/resources/messages_fr.properties
===================================================================
--- src/core/org/apache/jmeter/resources/messages_fr.properties	(revision 1637590)
+++ src/core/org/apache/jmeter/resources/messages_fr.properties	(working copy)
@@ -73,6 +73,10 @@
 aggregate_report=Rapport agr\u00E9g\u00E9
 aggregate_report_90=90%
 aggregate_report_90%_line=90e centile
+aggregate_report_95=95%
+aggregate_report_95%_line=95e centile
+aggregate_report_99=99%
+aggregate_report_99%_line=99e centile
 aggregate_report_bandwidth=Ko/sec
 aggregate_report_count=\# Echantillons
 aggregate_report_error=Erreur

@asfimport
Copy link
Collaborator Author

Sebb (migrated from Bugzilla):
Thanks for the patch.

But what is the use-case for adding these particular %ages?
Why not 97% or 98% (etc.) as well?

It might be more useful to make the %ages completely flexible.

@asfimport
Copy link
Collaborator Author

UbikLoadPack support (migrated from Bugzilla):
These percentiles are usually the most commonly used when we do load testing campaigns for our customer.
Maybe we could default to these and add properties to allow choosing 3 values for the percentile:

  • aggregate_rpt_percentile_1 (default to 90)
  • aggregate_rpt_percentile_2 (default to 95)
  • aggregate_rpt_percentile_3 (default to 99)

@asfimport
Copy link
Collaborator Author

UbikLoadPack support (migrated from Bugzilla):
Hello,
After your comment on this issue, we reviewed the code of both Aggregate graph and Aggregate report.
We will contribute a patch that:

  • Makes Aggregate Graph display the same data as Report in the upper table (this will allow users to only use Aggregate Graph when they want table+graph)
  • We added the ability to have 3 configurable percentiles as per your request, which now default to 90%, 95% and 99%. These can be float values and are configurable in user.properties
  • We factored out code between the 2 listeners
  • We fixed a centering issue of Table headers in Aggregate graph

Regards
Ubik Load Pack Team
@ubikloadpack

@asfimport
Copy link
Collaborator Author

UbikLoadPack support (migrated from Bugzilla):
Created attachment BUG_57217.patch: Patch that implements comment of 2014-11-29 09:35:46 UTC

@asfimport
Copy link
Collaborator Author

@pmouawad (migrated from Bugzilla):
Date: Sat Nov 29 10:06:00 2014
New Revision: 1642410

URL: http://svn.apache.org/r1642410
Log:
#3477 - Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code)
#3477

Modified:
jmeter/trunk/bin/jmeter.properties
jmeter/trunk/src/components/org/apache/jmeter/visualizers/BarGraph.java
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
jmeter/trunk/src/core/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java
jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jmeter/trunk/xdocs/changes.xml
jmeter/trunk/xdocs/usermanual/component_reference.xml

Date: Sat Nov 29 10:07:10 2014
New Revision: 1642412

URL: http://svn.apache.org/r1642412
Log:
#3477 - Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code)
Add screenshots
#3477

Modified:
jmeter/trunk/docs/images/screenshots/aggregate_graph.png
jmeter/trunk/docs/images/screenshots/aggregate_report.png
jmeter/trunk/docs/images/screenshots/aggregate_report_grouped.png
jmeter/trunk/xdocs/images/screenshots/aggregate_graph.png
jmeter/trunk/xdocs/images/screenshots/aggregate_report.png
jmeter/trunk/xdocs/images/screenshots/aggregate_report_grouped.png

@asfimport
Copy link
Collaborator Author

@pmouawad (migrated from Bugzilla):
Thanks for contribution. Commited with addition of screenshots and size change of images in component_reference.xml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant