Awesome
jmeter-graph-tool-maven-plugin
A maven plugin to create graphs using the JMeter Plugins CMDRunner from JMeter result files (*.jtl or *.csv) or using Filter Results Tool.
See https://jmeter-plugins.org/wiki/JMeterPluginsCMD/ for more informations for graphs and graphs parameters.
See https://jmeter-plugins.org/wiki/FilterResultsTool/ for more informations for Filter Result Tools.
A fork from project jmeter-graph-maven-plugin project and renamed project, add 'tool' to the artifactId. With the permission of the old main developper Michael LEX (september 2021).
Global documentation for graphs : Customizing graphs
Note: DBMon monitoring graph do not work with this version (log library trouble)
License
See the LICENSE file Apache 2 https://www.apache.org/licenses/LICENSE-2.0
Graphs demo created by jmeter-graph-tool-maven-plugin
Some graphs generated with this plugin
Active Threads Over Time with 2 Thread Groups
Response Times Over Time only pages for Thread Group SC01 force Y to 1000 ms
Response Times Over Time only pages for Thread Group SC03 force Y to 1000 ms
Response Codes per Second (http status)
Response Times Percentiles
Synthesis Report filtered with regular expression for label (the plugin creates only csv result file not this table display)
OS Monitoring CPU with PerfMon plugin
JMX Monitoring for Tomcat (JVM Memory with JMXMon plugin)
Apache httpd monitoring with Page Data Extractor plugin
Usage
The maven groupId, artifactId and version, this plugin is in the Maven Central Repository
<groupId>io.github.vdaburon</groupId>
<artifactId>jmeter-graph-tool-maven-plugin</artifactId>
<version>1.2</version>
Just include the plugin in your pom.xml
and execute mvn jmeter-graph:create-graph
.
<project>
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>io.github.vdaburon</groupId>
<artifactId>jmeter-graph-tool-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<!-- see Filter Results Tool in jmeter-plugins.org -->
<filterResultsTool>
<filterResultsParam>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<outputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_regex_filtred.csv</outputFile>
<successFilter>false</successFilter>
<includeLabels>0.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
</filterResultsParam>
<filterResultsParam>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<outputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_offset_filtred.jtl</outputFile>
<successFilter>false</successFilter>
<startOffset>2</startOffset>
<endOffset>20</endOffset>
<saveAsXml>true</saveAsXml>
</filterResultsParam>
</filterResultsTool>
<graphs>
<!-- see JMeterPluginsCMD Command Line Tool in jmeter-plugins.org -->
<graph>
<pluginType>ResponseTimesOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesOverTime.png</generatePng>
<width>800</width>
<height>600</height>
<limitRows>50</limitRows>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
<startOffset>2</startOffset>
<endOffset>20</endOffset>
<includeLabels>0.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<forceY>1000</forceY>
<autoScale>no</autoScale>
<lineWeight>2</lineWeight>
</graph>
<graph>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<pluginType>TransactionsPerSecond</pluginType>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/TransactionsPerSecond.png</generatePng>
<relativeTimes>no</relativeTimes>
<aggregateRows>yes</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<!-- Page Data Extractor -->
<graph>
<pluginType>PageDataExtractorOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/pde_httpd.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/pde_httpd_all_workers.png</generatePng>
<extractorRegexps>(BusyWorkers|IdleWorkers):.*{;}[A-Za-z]+:.([0-9]+){;}false{;}true</extractorRegexps>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>PageDataExtractorOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/pde_httpd.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/pde_httpd_busy_workers.png</generatePng>
<extractorRegexps>(BusyWorkers):.*{;}BusyWorkers:.([0-9]+){;}false{;}true</extractorRegexps>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<!-- PerfMon -->
<graph>
<pluginType>PerfMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/perfmon.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/Perfmon_CPU.png</generatePng>
<includeLabels>.*CPU.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>PerfMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/perfmon.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/Perfmon_Memory.png</generatePng>
<includeLabels>.*Memory.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<!-- JMXMon -->
<graph>
<pluginType>JMXMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gest_jmx_tomcat.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/JMX_memory_jvm.png</generatePng>
<includeLabels>used.HeapMemoryUsage.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>JMXMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gest_jmx_tomcat.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/JMX_currentThreadsBusy.png</generatePng>
<includeLabels>.*currentThreadsBusy.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<!-- Aggregate report csv -->
<graph>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<pluginType>AggregateReport</pluginType>
<generateCsv>${project.build.directory}/jmeter/results/AggregateReport.csv</generateCsv>
</graph>
<graph>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<pluginType>ResponseCodesPerSecond</pluginType>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ResponseCodesPerSecond.png</generatePng>
<relativeTimes>no</relativeTimes>
<aggregateRows>no</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
</graphs>
<!-- copy files from directoryTestFiles to MAVEN_PROJECT_DIRECTORY/target/jmeter/bin -->
<directoryTestFiles>${project.build.directory}/jmeter/testFiles</directoryTestFiles>
<!-- see jmeter-maven-pugins -->
<jMeterProcessJVMSettings>
<xms>${jvm_xms}</xms>
<xmx>${jvm_xmx}</xmx>
<arguments>
<argument>-Duser.language=en</argument>
</arguments>
</jMeterProcessJVMSettings>
<!-- merge this properties with user.properties file in MAVEN_PROJECT_DIRECTORY/target/jmeter/bin -->
<!-- property format = <property_name>property_value</property name> will be property_name=property_value in the user.properties file. E.g. language=en -->
<propertiesUser>
<language>en</language>
</propertiesUser>
</configuration>
</plugin>
</plugins>
</build>
</project>
You can also bind the graph-generation to a maven-phase, e.g. verify
:
<project>
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>io.github.vdaburon</groupId>
<artifactId>jmeter-graph-tool-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>create-graphs</id>
<goals>
<goal>create-graph</goal>
</goals>
<phase>verify</phase>
<configuration>
<!-- ... you can declare filterResultsTool here -->
<graphs>
<graph>
<pluginType>ResponseTimesOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesOverTime.png</generatePng>
<width>1024</width>
<height>768</height>
</graph>
<!-- ... you can declare more <graph> here -->
</graphs>
</configuration>
</execution>
</execution>
</plugin>
</plugins>
</build>
</project>
Parameters for a graph (depends of the pluginType) :
- inputFile (mandatory)
- pluginType (mandatory)
- width
- height
- generatePng (mandatory depends of the pluginType)
- generateCsv (mandatory depends of the pluginType)
- granulation
- relativeTimes
- aggregateRows
- paintGradient
- paintZeroing
- paintMarkers
- preventOutliers
- limitRows
- forceY
- hideLowCounts
- successFilter
- includeLabels
- excludeLabels
- autoScale
- lineWeight
- extractorRegexps
- includeLabelRegex
- excludeLabelRegex
- startOffset
- endOffset
List of the graph plugins type
- AggregateReport more informations
- SynthesisReport more informations
- ThreadsStateOverTime more informations
- BytesThroughputOverTime more informations
- HitsPerSecond more informations
- LatenciesOverTime more informations
- PerfMon more informations
- DbMon (trouble with this plugin because log library error) more informations
- JMXMon more informations
- ResponseCodesPerSecond more informations
- ResponseTimesDistribution more informations
- ResponseTimesOverTime more informations
- ResponseTimesPercentiles more informations
- ThroughputVsThreads more informations
- TimesVsThreads more informations
- TransactionsPerSecond more informations
- PageDataExtractorOverTime more informations
Parameters for a filterResultsTool
- inputFile (path to the file to read)
- outputFile (path to the file to write)
- successFilter (true/false, true : only success samplers, false : all results by default)
- includeLabels (labels list with comma or label with regular expression)
- includeLabelRegex (true/false, true if your label is a regular expression)
- excludeLabels (labels list with comma or label with regular expression)
- excludeLabelRegex (true/false, true if your label is a regular expression))
- startOffset (integer, number of seconds since the start to remove)
- endOffset (integer, number of seconds offset to remove samplers after with value, keep samplers between startOffset and endOffset seconds)
- saveAsXml (true/false, false : CSV format by default)
user.properties and jmeter.properties
Files in the directory <directoryTestFiles> are copied by the jmeter-graph-tool-maven-plugin to the build directory <MAVEN_PROJECT_DIRECTORY>/target/jmeter/bin.
You can put your jmeter.properties or your user.properties in the <MAVEN_PROJECT_DIRECTORY>/src/test/jmeter, files will be place by jmeter-maven-plugin in <MAVEN_PROJECT_DIRECTORY>/target/jmeter/testFiles (Note : ${project.build.directory} == <MAVEN_PROJECT_DIRECTORY>/target), and declare
<directoryTestFiles>${project.build.directory}/jmeter/testFiles</directoryTestFiles>
You can also add or replace user properties values with the
<propertiesUser><propertyName>propertyValue</propertiesUser></propertyName>
E.g.
<propertiesUser>
<language>en</language>
</propertiesUser>
will be : language=en in final the user.properties
Properties read order :
default jmeter.properties < jmeter.properties in <MAVEN_PROJECT_DIRECTORY>/src/test/jmeter or <directoryTestFiles>${project.build.directory}/jmeter/testFiles
default user.properties < user.propertes in <MAVEN_PROJECT_DIRECTORY>/src/test/jmeter or <directoryTestFiles>${project.build.directory}/jmeter/testFiles < properties declared in the pom.xml under the <propertiesUser>
JVM Setting
You could change the JVM setting with <jMeterProcessJVMSettings>
- xms Memory Start unit MB<br>
- xmx Memory Max unit MB<br> and arguments for more JVM configuration
E.g :
<jMeterProcessJVMSettings>
<xms>1024</xms>
<xmx>2048</xmx>
<arguments>
<argument>-Duser.language=en</argument>
</arguments>
</jMeterProcessJVMSettings>
Compagnion tools
This tools are also used with this maven plugin :
- JMReportCsvToHtml Create a html table from report csv file (Report : Aggregate, Summary or Synthesis)
- CreateHtmlForFilesInDirectory Recursively scans a directory looking for files of different types to generate a link or include the content in the generated html page. Create a little static web site.
- CreateGitlabWikiPageForFilesInDirectory Generating a Gitlab Wiki Page that references or includes various files.
- JUnitReportKpiJMeterReportCsv Read KPI declarations in a file and apply the KPI assertion on a JMeter Report CSV file and generates a result file in JUnit XML format and export also in Html, CSV and JSON formats.
- JUnitReportKpiCompareJMeterReportCsv Compare 2 load tests JMeter Report CSV File and create a JUnit Report based on custom Key Performance Indicators (KPIs) and export also in Html, CSV and JSON formats.
- JUnitReportKpiJMeterDashboardStats Read KPI declarations in a file and apply the KPI assertion on a JMeter Dashboard Statistics Json file and generates a result file in JUnit XML format and export also in Html, CSV and JSON formats.
Tools installed with jmeter-plugins-manager from jmeter-plugins.org
This tools could be installed with the jmeter-plugins-manager in Apache JMeter.
- JUnitReportKpiJMeterReportCsv Read KPI declarations in a file and apply the KPI assertion on a JMeter Report CSV file and generates a result file in JUnit XML format and export also in Html, CSV and JSON formats.
- JUnitReportKpiCompareJMeterReportCsv Compare 2 load tests JMeter Report CSV File and create a JUnit Report based on custom Key Performance Indicators (KPIs) and export also in Html, CSV and JSON formats.
- JUnitReportKpiJMeterDashboardStats Read KPI declarations in a file and apply the KPI assertion on a JMeter Dashboard Statistics Json file and generates a result file in JUnit XML format and export also in Html, CSV and JSON formats.
Full example
A full example, use jmeter-maven-plugin see and jmeter-graph-tool-maven-plugin.
<directoryTestFiles>Launch load test and the monitoring (PerfMon, JMXMon, Page Data Extractor), then filter results and generate graphs and Aggregate Report.
Use maven-phase verify
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.vdaburon.jmeter</groupId>
<artifactId>jm_maven</artifactId>
<version>1.3</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<jvm_xms>256</jvm_xms>
<jvm_xmx>756</jvm_xmx>
<nb_vusers>20</nb_vusers>
<duration>180</duration>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>3.6.1</version>
<executions>
<!-- Generate JMeter configuration -->
<execution>
<id>configuration</id>
<goals>
<goal>configure</goal>
</goals>
</execution>
<!-- Run JMeter tests -->
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
<!-- Fail build on errors in test
<execution>
<id>jmeter-check-results</id>
<goals>
<goal>results</goal>
</goals>
</execution>
-->
</executions>
<configuration>
<testPlanLibraries>
<!-- add libraries in JMETER_HOME/lib -->
<artifact>mysql:mysql-connector-java:8.0.30</artifact>
</testPlanLibraries>
<jmeterExtensions>
<artifact>kg.apc:jmeter-plugins-functions:2.2</artifact>
<artifact>kg.apc:jmeter-plugins-casutg:2.10</artifact>
<artifact>kg.apc:jmeter-plugins-dummy:0.4</artifact>
<artifact>kg.apc:jmeter-plugins-dbmon:0.1</artifact>
<artifact>kg.apc:jmeter-plugins-jmxmon:0.3</artifact>
<artifact>kg.apc:jmeter-plugins-pde:0.1</artifact>
<artifact>kg.apc:jmeter-plugins-perfmon:2.1</artifact>
<artifact>kg.apc:jmeter-plugins-graphs-basic:2.0</artifact>
<artifact>kg.apc:jmeter-plugins-cmn-jmeter:0.7</artifact>
</jmeterExtensions>
<excludedArtifacts>
<exclusion>commons-pool2:commons-pool2</exclusion>
</excludedArtifacts>
<!-- The plugin uses some broken dependencies An alternative is to set
this to true and use excludedArtifacts, see below -->
<downloadExtensionDependencies>true</downloadExtensionDependencies>
<jMeterProcessJVMSettings>
<xms>${jvm_xms}</xms>
<xmx>${jvm_xmx}</xmx>
</jMeterProcessJVMSettings>
<propertiesUser>
<!-- project directory for this script, dedicated property use in the JMeter script to read csv file for example -->
<dirProject>${project.build.directory}/jmeter</dirProject>
<!-- nb_users and load test duration could be changed with mvn -Dparam=value, e.g. -Dnb_vusers=10 to replace default value (10 replace 20)-->
<nb_vusers>${nb_vusers}</nb_vusers>
<duration>${duration}</duration>
</propertiesUser>
<generateReports>false</generateReports>
<testResultsTimestamp>false</testResultsTimestamp>
<resultsFileFormat>csv</resultsFileFormat>
</configuration>
</plugin>
<plugin>
<groupId>io.github.vdaburon</groupId>
<artifactId>jmeter-graph-tool-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>create-graphs</id>
<goals>
<goal>create-graph</goal>
</goals>
<phase>verify</phase>
<configuration>
<directoryTestFiles>${project.build.directory}/jmeter/testFiles</directoryTestFiles>
<filterResultsTool>
<filterResultsParam>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<outputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_regex_filtred.csv</outputFile>
<successFilter>false</successFilter>
<includeLabels>0.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
</filterResultsParam>
<filterResultsParam>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<outputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_offset_filtred.jtl</outputFile>
<successFilter>false</successFilter>
<startOffset>2</startOffset>
<endOffset>20</endOffset>
<saveAsXml>true</saveAsXml>
</filterResultsParam>
</filterResultsTool>
<graphs>
<graph>
<pluginType>AggregateReport</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<generateCsv>${project.build.directory}/jmeter/results/AggregateReport.csv</generateCsv>
</graph>
<graph>
<pluginType>ResponseTimesOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesOverTime.png</generatePng>
<width>800</width>
<height>600</height>
<limitRows>50</limitRows>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
<startOffset>2</startOffset>
<endOffset>20</endOffset>
<includeLabels>0.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<forceY>1000</forceY>
<autoScale>no</autoScale>
<lineWeight>4</lineWeight>
</graph>
<graph>
<pluginType>LatenciesOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/LatenciesOverTime.png</generatePng>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>ResponseCodesPerSecond</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ResponseCodesPerSecond.png</generatePng>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>ResponseTimesDistribution</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesDistribution.png</generatePng>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>ResponseTimesOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesOverTime.png</generatePng>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>ResponseTimesPercentiles</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ResponseTimesPercentiles.png</generatePng>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>ThroughputVsThreads</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/ThroughputVsThreads.png</generatePng>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>TimesVsThreads</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/TimesVsThreads.png</generatePng>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>TransactionsPerSecond</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gestdoc_sc01_menu_local_monit.csv</inputFile>
<width>800</width>
<height>600</height>
<generatePng>${project.build.directory}/jmeter/results/TransactionsPerSecond.png</generatePng>
<relativeTimes>no</relativeTimes>
<aggregateRows>yes</aggregateRows>
<paintGradient>no</paintGradient>
</graph>
<!-- graphs from monitoring -->
<graph>
<pluginType>PageDataExtractorOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/pde_httpd.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/pde_httpd_all_workers.png</generatePng>
<extractorRegexps>(BusyWorkers|IdleWorkers):.*{;}[A-Za-z]+:.([0-9]+){;}false{;}true</extractorRegexps>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>PageDataExtractorOverTime</pluginType>
<inputFile>${project.build.directory}/jmeter/results/pde_httpd.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/pde_httpd_busy_workers.png</generatePng>
<extractorRegexps>(BusyWorkers):.*{;}BusyWorkers:.([0-9]+){;}false{;}true</extractorRegexps>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>PerfMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/perfmon.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/Perfmon_CPU.png</generatePng>
<includeLabels>.*CPU.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>PerfMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/perfmon.csv</inputFile>
<generatePng>${project.build.directory}/jmeter/results/Perfmon_Memory.png</generatePng>
<includeLabels>.*Memory.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>JMXMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gest_jmx_tomcat.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/JMX_memory_jvm.png</generatePng>
<includeLabels>used.HeapMemoryUsage.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
<graph>
<pluginType>JMXMon</pluginType>
<inputFile>${project.build.directory}/jmeter/results/gest_jmx_tomcat.jtl</inputFile>
<generatePng>${project.build.directory}/jmeter/results/JMX_currentThreadsBusy.png</generatePng>
<includeLabels>.*currentThreadsBusy.*</includeLabels>
<includeLabelRegex>true</includeLabelRegex>
<width>1024</width>
<height>800</height>
<relativeTimes>no</relativeTimes>
<paintGradient>no</paintGradient>
</graph>
</graphs>
<!-- copy files from directoryTestFiles especially user.properties to MAVEN_PROJECT_DIRECTORY/target/jmeter/bin -->
<directoryTestFiles>${project.build.directory}/jmeter/testFiles</directoryTestFiles>
<jMeterProcessJVMSettings>
<xms>${jvm_xms}</xms>
<xmx>${jvm_xmx}</xmx>
<arguments>
<argument>-Duser.language=en</argument>
</arguments>
</jMeterProcessJVMSettings>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>