On 6 May 2016 at 22:44, Philippe Mouawad <philippe.moua...@gmail.com> wrote: > -1 > > I thought no important modification was to be done before 3.0 release ?
Is that your only objection? > > > On Fri, May 6, 2016 at 11:38 PM, <s...@apache.org> 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.