-1 I thought no important modification was to be done before 3.0 release ?
On Fri, May 6, 2016 at 11:38 PM, <[email protected]> wrote: > 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; > } > > /** > > > -- Cordialement. Philippe Mouawad.
