jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject svn commit: r1742642 - in /jmeter/trunk: bin/jmeter.properties bin/reportgenerator.properties src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java
Date Fri, 06 May 2016 21:38:37 GMT
Author: sebb
Date: Fri May  6 21:38:36 2016
New Revision: 1742642

URL: http://svn.apache.org/viewvc?rev=1742642&view=rev
Log:
Move ReportGenerator defaults to a separate properties file

Added:
    jmeter/trunk/bin/reportgenerator.properties   (with props)
Modified:
    jmeter/trunk/bin/jmeter.properties
    jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java

Modified: jmeter/trunk/bin/jmeter.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.properties?rev=1742642&r1=1742641&r2=1742642&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter.properties (original)
+++ jmeter/trunk/bin/jmeter.properties Fri May  6 21:38:36 2016
@@ -1184,116 +1184,6 @@ view.results.tree.renderers_order=.Rende
 classfinder.functions.contain=.functions.
 classfinder.functions.notContain=.gui.
 
-#---------------------------------------------------------------------------
-# Reporting configuration
-#---------------------------------------------------------------------------
-
-# Sets the satisfaction threshold for the APDEX calculation (in milliseconds).
-#jmeter.reportgenerator.apdex_satisfied_threshold=500
-
-# Sets the tolerance threshold for the APDEX calculation (in milliseconds).
-#jmeter.reportgenerator.apdex_tolerated_threshold=1500
-
-# Regular Expression which Indicates which samples to keep for graphs and statistics generation.
-# Empty value means no filtering
-#jmeter.reportgenerator.sample_filter=
-
-# Sets the temporary directory used by the generation process if it needs file I/O operations.
-#jmeter.reportgenerator.temp_dir=temp
-
-# Sets the size of the sliding window used by percentile evaluation.
-# Caution : higher value provides a better accuracy but needs more memory.
-#jmeter.reportgenerator.statistic_window = 200000
-
-# Configure this property to change the report title
-#jmeter.reportgenerator.report_title=Apache JMeter Dashboard
-
-# Defines the overall granularity for over time graphs
-jmeter.reportgenerator.overall_granularity=60000
-
-# Response Time Percentiles graph definition
-jmeter.reportgenerator.graph.responseTimePercentiles.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimePercentilesGraphConsumer
-jmeter.reportgenerator.graph.responseTimePercentiles.title=Response Time Percentiles
-
-# Response Time Distribution graph definition
-jmeter.reportgenerator.graph.responseTimeDistribution.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeDistributionGraphConsumer
-jmeter.reportgenerator.graph.responseTimeDistribution.title=Response Time Distribution
-jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=500
-
-# Active Threads Over Time graph definition
-jmeter.reportgenerator.graph.activeThreadsOverTime.classname=org.apache.jmeter.report.processor.graph.impl.ActiveThreadsGraphConsumer
-jmeter.reportgenerator.graph.activeThreadsOverTime.title=Active Threads Over Time
-jmeter.reportgenerator.graph.activeThreadsOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Time VS Threads graph definition
-jmeter.reportgenerator.graph.timeVsThreads.classname=org.apache.jmeter.report.processor.graph.impl.TimeVSThreadGraphConsumer
-jmeter.reportgenerator.graph.timeVsThreads.title=Time VS Threads
-
-# Bytes Throughput Over Time graph definition
-jmeter.reportgenerator.graph.bytesThroughputOverTime.classname=org.apache.jmeter.report.processor.graph.impl.BytesThroughputGraphConsumer
-jmeter.reportgenerator.graph.bytesThroughputOverTime.title=Bytes Throughput Over Time
-jmeter.reportgenerator.graph.bytesThroughputOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Response Time Over Time graph definition
-jmeter.reportgenerator.graph.responseTimesOverTime.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeOverTimeGraphConsumer
-jmeter.reportgenerator.graph.responseTimesOverTime.title=Response Time Over Time
-jmeter.reportgenerator.graph.responseTimesOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Latencies Over Time graph definition
-jmeter.reportgenerator.graph.latenciesOverTime.classname=org.apache.jmeter.report.processor.graph.impl.LatencyOverTimeGraphConsumer
-jmeter.reportgenerator.graph.latenciesOverTime.title=Latencies Over Time
-jmeter.reportgenerator.graph.latenciesOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Response Time Vs Request graph definition
-jmeter.reportgenerator.graph.responseTimeVsRequest.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeVSRequestGraphConsumer
-jmeter.reportgenerator.graph.responseTimeVsRequest.title=Response Time Vs Request
-jmeter.reportgenerator.graph.responseTimeVsRequest.exclude_controllers=true
-jmeter.reportgenerator.graph.responseTimeVsRequest.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Latencies Vs Request graph definition
-jmeter.reportgenerator.graph.latencyVsRequest.classname=org.apache.jmeter.report.processor.graph.impl.LatencyVSRequestGraphConsumer
-jmeter.reportgenerator.graph.latencyVsRequest.title=Latencies Vs Request
-jmeter.reportgenerator.graph.latencyVsRequest.exclude_controllers=true
-jmeter.reportgenerator.graph.latencyVsRequest.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Hits Per Second graph definition
-jmeter.reportgenerator.graph.hitsPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.HitsPerSecondGraphConsumer
-jmeter.reportgenerator.graph.hitsPerSecond.title=Hits Per Second
-jmeter.reportgenerator.graph.hitsPerSecond.exclude_controllers=true
-jmeter.reportgenerator.graph.hitsPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Codes Per Second graph definition
-jmeter.reportgenerator.graph.codesPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.CodesPerSecondGraphConsumer
-jmeter.reportgenerator.graph.codesPerSecond.title=Codes Per Second
-jmeter.reportgenerator.graph.codesPerSecond.exclude_controllers=true
-jmeter.reportgenerator.graph.codesPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# Transactions Per Second graph definition
-jmeter.reportgenerator.graph.transactionsPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.TransactionsPerSecondGraphConsumer
-jmeter.reportgenerator.graph.transactionsPerSecond.title=Transactions Per Second
-jmeter.reportgenerator.graph.transactionsPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
-
-# HTML Export
-jmeter.reportgenerator.exporter.html.classname=org.apache.jmeter.report.dashboard.HtmlTemplateExporter
-
-# Sets the source directory of templated files from which the html pages are generated.
-#jmeter.reportgenerator.exporter.html.property.template_dir=report-template
-
-# Sets the destination directory for generated html pages.
-# This will be overridden by the command line option -o 
-#jmeter.reportgenerator.exporter.html.property.output_dir=report-output
-
-# Regular Expression which Indicates which graph series are filtered in display
-# Empty value means no filtering
-#jmeter.reportgenerator.exporter.html.series_filter=
-
-# Indicates whether series filter apply only on sample series or to all series
-# setting this to false can lead to empty graphs if series_filter does not
-# contain required series
-#jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
-
-# Indicates whether only controller samples are displayed on graphs that support it.
-#jmeter.reportgenerator.exporter.html.show_controllers_only=false
 
 #---------------------------------------------------------------------------
 # Additional property files to load

Added: jmeter/trunk/bin/reportgenerator.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/reportgenerator.properties?rev=1742642&view=auto
==============================================================================
--- jmeter/trunk/bin/reportgenerator.properties (added)
+++ jmeter/trunk/bin/reportgenerator.properties Fri May  6 21:38:36 2016
@@ -0,0 +1,140 @@
+################################################################################
+# Apache JMeter Property file for Report Generator
+################################################################################
+
+##   Licensed to the Apache Software Foundation (ASF) under one or more
+##   contributor license agreements.  See the NOTICE file distributed with
+##   this work for additional information regarding copyright ownership.
+##   The ASF licenses this file to You under the Apache License, Version 2.0
+##   (the "License"); you may not use this file except in compliance with
+##   the License.  You may obtain a copy of the License at
+## 
+##       http://www.apache.org/licenses/LICENSE-2.0
+## 
+##   Unless required by applicable law or agreed to in writing, software
+##   distributed under the License is distributed on an "AS IS" BASIS,
+##   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##   See the License for the specific language governing permissions and
+##   limitations under the License.
+
+################################################################################
+#
+#                      THIS FILE SHOULD NOT BE MODIFIED
+#
+# This avoids having to re-apply the modifications when upgrading JMeter
+# Instead only user.properties should be modified:
+# 1/ copy the property you want to modify to user.properties from here
+# 2/ Change its value there
+#
+################################################################################
+
+#---------------------------------------------------------------------------
+# Reporting configuration
+#---------------------------------------------------------------------------
+
+# Sets the satisfaction threshold for the APDEX calculation (in milliseconds).
+#jmeter.reportgenerator.apdex_satisfied_threshold=500
+
+# Sets the tolerance threshold for the APDEX calculation (in milliseconds).
+#jmeter.reportgenerator.apdex_tolerated_threshold=1500
+
+# Regular Expression which Indicates which samples to keep for graphs and statistics generation.
+# Empty value means no filtering
+#jmeter.reportgenerator.sample_filter=
+
+# Sets the temporary directory used by the generation process if it needs file I/O operations.
+#jmeter.reportgenerator.temp_dir=temp
+
+# Sets the size of the sliding window used by percentile evaluation.
+# Caution : higher value provides a better accuracy but needs more memory.
+#jmeter.reportgenerator.statistic_window = 200000
+
+# Configure this property to change the report title
+#jmeter.reportgenerator.report_title=Apache JMeter Dashboard
+
+# Defines the overall granularity for over time graphs
+jmeter.reportgenerator.overall_granularity=60000
+
+# Response Time Percentiles graph definition
+jmeter.reportgenerator.graph.responseTimePercentiles.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimePercentilesGraphConsumer
+jmeter.reportgenerator.graph.responseTimePercentiles.title=Response Time Percentiles
+
+# Response Time Distribution graph definition
+jmeter.reportgenerator.graph.responseTimeDistribution.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeDistributionGraphConsumer
+jmeter.reportgenerator.graph.responseTimeDistribution.title=Response Time Distribution
+jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=500
+
+# Active Threads Over Time graph definition
+jmeter.reportgenerator.graph.activeThreadsOverTime.classname=org.apache.jmeter.report.processor.graph.impl.ActiveThreadsGraphConsumer
+jmeter.reportgenerator.graph.activeThreadsOverTime.title=Active Threads Over Time
+jmeter.reportgenerator.graph.activeThreadsOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Time VS Threads graph definition
+jmeter.reportgenerator.graph.timeVsThreads.classname=org.apache.jmeter.report.processor.graph.impl.TimeVSThreadGraphConsumer
+jmeter.reportgenerator.graph.timeVsThreads.title=Time VS Threads
+
+# Bytes Throughput Over Time graph definition
+jmeter.reportgenerator.graph.bytesThroughputOverTime.classname=org.apache.jmeter.report.processor.graph.impl.BytesThroughputGraphConsumer
+jmeter.reportgenerator.graph.bytesThroughputOverTime.title=Bytes Throughput Over Time
+jmeter.reportgenerator.graph.bytesThroughputOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Response Time Over Time graph definition
+jmeter.reportgenerator.graph.responseTimesOverTime.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeOverTimeGraphConsumer
+jmeter.reportgenerator.graph.responseTimesOverTime.title=Response Time Over Time
+jmeter.reportgenerator.graph.responseTimesOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Latencies Over Time graph definition
+jmeter.reportgenerator.graph.latenciesOverTime.classname=org.apache.jmeter.report.processor.graph.impl.LatencyOverTimeGraphConsumer
+jmeter.reportgenerator.graph.latenciesOverTime.title=Latencies Over Time
+jmeter.reportgenerator.graph.latenciesOverTime.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Response Time Vs Request graph definition
+jmeter.reportgenerator.graph.responseTimeVsRequest.classname=org.apache.jmeter.report.processor.graph.impl.ResponseTimeVSRequestGraphConsumer
+jmeter.reportgenerator.graph.responseTimeVsRequest.title=Response Time Vs Request
+jmeter.reportgenerator.graph.responseTimeVsRequest.exclude_controllers=true
+jmeter.reportgenerator.graph.responseTimeVsRequest.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Latencies Vs Request graph definition
+jmeter.reportgenerator.graph.latencyVsRequest.classname=org.apache.jmeter.report.processor.graph.impl.LatencyVSRequestGraphConsumer
+jmeter.reportgenerator.graph.latencyVsRequest.title=Latencies Vs Request
+jmeter.reportgenerator.graph.latencyVsRequest.exclude_controllers=true
+jmeter.reportgenerator.graph.latencyVsRequest.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Hits Per Second graph definition
+jmeter.reportgenerator.graph.hitsPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.HitsPerSecondGraphConsumer
+jmeter.reportgenerator.graph.hitsPerSecond.title=Hits Per Second
+jmeter.reportgenerator.graph.hitsPerSecond.exclude_controllers=true
+jmeter.reportgenerator.graph.hitsPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Codes Per Second graph definition
+jmeter.reportgenerator.graph.codesPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.CodesPerSecondGraphConsumer
+jmeter.reportgenerator.graph.codesPerSecond.title=Codes Per Second
+jmeter.reportgenerator.graph.codesPerSecond.exclude_controllers=true
+jmeter.reportgenerator.graph.codesPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# Transactions Per Second graph definition
+jmeter.reportgenerator.graph.transactionsPerSecond.classname=org.apache.jmeter.report.processor.graph.impl.TransactionsPerSecondGraphConsumer
+jmeter.reportgenerator.graph.transactionsPerSecond.title=Transactions Per Second
+jmeter.reportgenerator.graph.transactionsPerSecond.property.set_granularity=${jmeter.reportgenerator.overall_granularity}
+
+# HTML Export
+jmeter.reportgenerator.exporter.html.classname=org.apache.jmeter.report.dashboard.HtmlTemplateExporter
+
+# Sets the source directory of templated files from which the html pages are generated.
+#jmeter.reportgenerator.exporter.html.property.template_dir=report-template
+
+# Sets the destination directory for generated html pages.
+# This will be overridden by the command line option -o 
+#jmeter.reportgenerator.exporter.html.property.output_dir=report-output
+
+# Regular Expression which Indicates which graph series are filtered in display
+# Empty value means no filtering
+#jmeter.reportgenerator.exporter.html.series_filter=
+
+# Indicates whether series filter apply only on sample series or to all series
+# setting this to false can lead to empty graphs if series_filter does not
+# contain required series
+#jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
+
+# Indicates whether only controller samples are displayed on graphs that support it.
+#jmeter.reportgenerator.exporter.html.show_controllers_only=false

Propchange: jmeter/trunk/bin/reportgenerator.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java?rev=1742642&r1=1742641&r2=1742642&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java Fri May
 6 21:38:36 2016
@@ -18,10 +18,12 @@
 package org.apache.jmeter.report.dashboard;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map;
+import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -66,6 +68,8 @@ import org.apache.log.Logger;
  * @since 3.0
  */
 public class ReportGenerator {
+    private static final String REPORTGENERATOR_PROPERTIES = "reportgenerator.properties";
+
     private static final Logger LOG = LoggingManager.getLoggerForClass();
 
     private static final boolean CSV_OUTPUT_FORMAT = "csv"
@@ -135,8 +139,21 @@ public class ReportGenerator {
         }
         this.resultCollector = resultCollector;
         this.testFile = file;
-        configuration = ReportGeneratorConfiguration
-                .loadFromProperties(JMeterUtils.getJMeterProperties());
+        final Properties merged = new Properties();
+        merged.putAll(loadProps(new File(JMeterUtils.getJMeterBinDir(), REPORTGENERATOR_PROPERTIES)));
+        merged.putAll(JMeterUtils.getJMeterProperties());
+        configuration = ReportGeneratorConfiguration.loadFromProperties(merged);
+    }
+
+    private static Properties loadProps(File file) {
+        final Properties props = new Properties();
+        try (FileInputStream inStream = new FileInputStream(file)) {
+            props.load(inStream);
+        } catch (IOException e) {
+            LOG.error("Problem loading properties ", e);
+            System.err.println("Problem loading properties " + e);
+        }
+        return props;
     }
 
     /**



Mime
View raw message