| <!DOCTYPE html SYSTEM "about:legacy-compat"> |
| <html lang="en"> |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> |
| <title>Apache JMeter |
| - |
| User's Manual: Listeners</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <link href="https://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css"> |
| <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css"> |
| <link rel="stylesheet" type="text/css" href="../css/new-style.css"> |
| <link rel="apple-touch-icon-precomposed" href="../images/apple-touch-icon.png"> |
| <link rel="icon" href="../images/favicon.png"> |
| <meta name="msapplication-TileColor" content="#ffffff"> |
| <meta name="msapplication-TileImage" content="../images/mstile-144x144.png"> |
| <meta name="theme-color" content="#ffffff"> |
| </head> |
| <body role="document"> |
| <a href="#content" class="hidden">Main content</a> |
| <div class="header"> |
| <!-- |
| APACHE LOGO |
| --> |
| <div> |
| <a href="https://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="../images/asf-logo.svg" alt="Logo ASF"></a> |
| </div> |
| <!-- |
| PROJECT LOGO |
| --> |
| <div> |
| <a href="https://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a> |
| </div> |
| <div class="banner"> |
| <a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Current Apache event teaser"></a> |
| <div class="clear"></div> |
| </div> |
| </div> |
| <div class="nav"> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">About</div> |
| <ul> |
| <li> |
| <a href="../index.html">Overview</a> |
| </li> |
| <li> |
| <a href="https://www.apache.org/licenses/">License</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">Download</div> |
| <ul> |
| <li> |
| <a href="../download_jmeter.cgi">Download Releases</a> |
| </li> |
| <li> |
| <a href="../changes.html">Release Notes</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">Documentation</div> |
| <ul> |
| <li> |
| <a href="../usermanual/get-started.html">Get Started</a> |
| </li> |
| <li> |
| <a href="../usermanual/index.html">User Manual</a> |
| </li> |
| <li> |
| <a href="../usermanual/best-practices.html">Best Practices</a> |
| </li> |
| <li> |
| <a href="../usermanual/component_reference.html">Component Reference</a> |
| </li> |
| <li> |
| <a href="../usermanual/functions.html">Functions Reference</a> |
| </li> |
| <li> |
| <a href="../usermanual/properties_reference.html">Properties Reference</a> |
| </li> |
| <li> |
| <a href="../changes_history.html">Change History</a> |
| </li> |
| <li> |
| <a href="../api/index.html">Javadocs</a> |
| </li> |
| <li> |
| <a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a> |
| </li> |
| <li> |
| <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">FAQ (Wiki)</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">Tutorials</div> |
| <ul> |
| <li> |
| <a href="../usermanual/jmeter_distributed_testing_step_by_step.html">Distributed Testing</a> |
| </li> |
| <li> |
| <a href="../usermanual/jmeter_proxy_step_by_step.html">Recording Tests</a> |
| </li> |
| <li> |
| <a href="../usermanual/junitsampler_tutorial.html">JUnit Sampler</a> |
| </li> |
| <li> |
| <a href="../usermanual/jmeter_accesslog_sampler_step_by_step.html">Access Log Sampler</a> |
| </li> |
| <li> |
| <a href="../usermanual/jmeter_tutorial.html">Extending JMeter</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">Community</div> |
| <ul> |
| <li> |
| <a href="../issues.html">Issue Tracking</a> |
| </li> |
| <li> |
| <a href="../security.html">Security</a> |
| </li> |
| <li> |
| <a href="../mail.html">Mailing Lists</a> |
| </li> |
| <li> |
| <a href="../svnindex.html">Source Repositories</a> |
| </li> |
| <li> |
| <a href="../building.html">Building and Contributing</a> |
| </li> |
| <li> |
| <a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a> |
| </li> |
| <li> |
| <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="menu"> |
| <li onClick="return true"> |
| <div class="menu-title">Foundation</div> |
| <ul> |
| <li> |
| <a href="https://www.apache.org/">The Apache Software Foundation (ASF)</a> |
| </li> |
| <li> |
| <a href="https://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a> |
| </li> |
| <li> |
| <a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
| </li> |
| <li> |
| <a href="https://www.apache.org/foundation/thanks.html">Thanks</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="main" id="content"> |
| <div class="social-media"> |
| <ul class="social-media-links"> |
| <li class="twitter"> |
| <a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a> |
| </li> |
| <li class="github"> |
| <a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a> |
| </li> |
| </ul> |
| </div> |
| <ul class="pagelinks"> |
| <li> |
| <a href="build-jms-topic-test-plan.html">< Prev</a> |
| </li> |
| <li> |
| <a href="../index.html">Index</a> |
| </li> |
| <li> |
| <a href="remote-test.html">Next ></a> |
| </li> |
| </ul> |
| <div class="section"> |
| <h1 id="intro"> |
| 12. Introduction to listeners<a class="sectionlink" href="#intro" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| A listener is a component that shows the results of the |
| samples. The results can be shown in a tree, tables, graphs or simply written to a log |
| file. To view the contents of a response from any given sampler, add either of the Listeners "<span class="code">View |
| Results Tree</span>" or "<span class="code">View Results in table</span>" to a test plan. To view the response time graphically, add |
| graph results. |
| The <a href="../usermanual/component_reference.html#listeners">listeners</a> |
| section of the components page has full descriptions of all the listeners. |
| </p> |
| |
| <div class="clear"></div> |
| <div class="note"> |
| Different listeners display the response information in different ways. |
| However, they all write the same raw data to the output file - if one is specified. |
| </div> |
| <div class="clear"></div> |
| |
| <p> |
| The "<span class="code">Configure</span>" button can be used to specify which fields to write to the file, and whether to |
| write it as CSV or XML. |
| CSV files are much smaller than XML files, so use CSV if you are generating lots of samples. |
| |
| </p> |
| |
| <p> |
| The file name can be specified using either a relative or an absolute path name. |
| Relative paths are resolved relative to the current working directory (which defaults to the <span class="code">bin/</span> directory). |
| JMeter also supports paths relative to the directory containing the current test plan (JMX file). |
| If the path name begins with "<span class="code">~/</span>" (or whatever is in the <span class="code">jmeter.save.saveservice.base_prefix</span> JMeter property), |
| then the path is assumed to be relative to the JMX file location. |
| |
| </p> |
| |
| <p> |
| If you only wish to record certain samples, add the Listener as a child of the sampler. |
| Or you can use a Simple Controller to group a set of samplers, and add the Listener to that. |
| The same filename can be used by multiple samplers - but make sure they all use the same configuration! |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="defaults"> |
| 12.1 Default Configuration<a class="sectionlink" href="#defaults" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| The default items to be saved can be defined in the <span class="code">jmeter.properties</span> (or <span class="code">user.properties</span>) file. |
| The properties are used as the initial settings for the Listener Config pop-up, and are also |
| used for the log file specified by the <span class="code">-l</span> command-line flag (commonly used for CLI mode test runs). |
| |
| </p> |
| |
| <p> |
| To change the default format, find the following line in <span class="code">jmeter.properties</span>: |
| </p> |
| |
| <pre class="source">jmeter.save.saveservice.output_format=</pre> |
| |
| <p> |
| The information to be saved is configurable. For maximum information, choose "<span class="code">xml</span>" as the format and specify "<span class="code">Functional Test Mode</span>" on the Test Plan element. If this box is not checked, the default saved |
| data includes a time stamp (the number of milliseconds since midnight, |
| January 1, 1970 UTC), the data type, the thread name, the label, the |
| response time, message, and code, and a success indicator. If checked, all information, including the full response data will be logged. |
| </p> |
| |
| <p> |
| The following example indicates how to set |
| properties to get a vertical bar ("<span class="code">|</span>") delimited format that will |
| output results like:. |
| </p> |
| |
| <pre class="source"> |
| timeStamp|time|label|responseCode|threadName|dataType|success|failureMessage |
| 02/06/03 08:21:42|1187|Home|200|Thread Group-1|text|true| |
| 02/06/03 08:21:42|47|Login|200|Thread Group-1|text|false|Test Failed: |
| expected to contain: password etc. |
| </pre> |
| |
| <p> |
| The corresponding <span class="code">jmeter.properties</span> that need to be set are shown below. One oddity |
| in this example is that the <span class="code">output_format</span> is set to <span class="code">csv</span>, which |
| typically |
| indicates comma-separated values. However, the <span class="code">default_delimiter</span> was |
| set to be a vertical bar instead of a comma, so the csv tag is a |
| misnomer in this case. (Think of CSV as meaning character separated values) |
| </p> |
| |
| <pre class="source"> |
| jmeter.save.saveservice.output_format=csv |
| jmeter.save.saveservice.assertion_results_failure_message=true |
| jmeter.save.saveservice.default_delimiter=| |
| </pre> |
| |
| <p> |
| The full set of properties that affect result file output is shown below. |
| </p> |
| |
| <pre class="source"> |
| #--------------------------------------------------------------------------- |
| # Results file configuration |
| #--------------------------------------------------------------------------- |
| |
| # This section helps determine how result data will be saved. |
| # The commented out values are the defaults. |
| |
| # legitimate values: xml, csv, db. Only xml and csv are currently supported. |
| #jmeter.save.saveservice.output_format=csv |
| |
| |
| # true when field should be saved; false otherwise |
| |
| # assertion_results_failure_message only affects CSV output |
| #jmeter.save.saveservice.assertion_results_failure_message=true |
| # |
| # legitimate values: none, first, all |
| #jmeter.save.saveservice.assertion_results=none |
| # |
| #jmeter.save.saveservice.data_type=true |
| #jmeter.save.saveservice.label=true |
| #jmeter.save.saveservice.response_code=true |
| # response_data is not currently supported for CSV output |
| #jmeter.save.saveservice.response_data=false |
| # Save ResponseData for failed samples |
| #jmeter.save.saveservice.response_data.on_error=false |
| #jmeter.save.saveservice.response_message=true |
| #jmeter.save.saveservice.successful=true |
| #jmeter.save.saveservice.thread_name=true |
| #jmeter.save.saveservice.time=true |
| #jmeter.save.saveservice.subresults=true |
| #jmeter.save.saveservice.assertions=true |
| #jmeter.save.saveservice.latency=true |
| #jmeter.save.saveservice.connect_time=true |
| #jmeter.save.saveservice.samplerData=false |
| #jmeter.save.saveservice.responseHeaders=false |
| #jmeter.save.saveservice.requestHeaders=false |
| #jmeter.save.saveservice.encoding=false |
| #jmeter.save.saveservice.bytes=true |
| #jmeter.save.saveservice.sent_bytes=true |
| #jmeter.save.saveservice.url=false |
| #jmeter.save.saveservice.filename=false |
| #jmeter.save.saveservice.hostname=false |
| #jmeter.save.saveservice.thread_counts=true |
| #jmeter.save.saveservice.sample_count=false |
| #jmeter.save.saveservice.idle_time=true |
| |
| # Timestamp format - this only affects CSV output files |
| # legitimate values: none, ms, or a format suitable for SimpleDateFormat |
| #jmeter.save.saveservice.timestamp_format=ms |
| #jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS |
| |
| # For use with Comma-separated value (CSV) files or other formats |
| # where the fields' values are separated by specified delimiters. |
| # Default: |
| #jmeter.save.saveservice.default_delimiter=, |
| # For TAB, since JMeter 2.3 one can use: |
| #jmeter.save.saveservice.default_delimiter=\t |
| |
| # Only applies to CSV format files: |
| # Print field names as first line in CSV |
| #jmeter.save.saveservice.print_field_names=true |
| |
| # Optional list of JMeter variable names whose values are to be saved in the result data files. |
| # Use commas to separate the names. For example: |
| #sample_variables=SESSION_ID,REFERENCE |
| # N.B. The current implementation saves the values in XML as attributes, |
| # so the names must be valid XML names. |
| # JMeter sends the variable to all servers |
| # to ensure that the correct data is available at the client. |
| |
| # Optional xml processing instruction for line 2 of the file: |
| #jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="sample.xsl"?> |
| |
| # Prefix used to identify filenames that are relative to the current base |
| #jmeter.save.saveservice.base_prefix=~/ |
| |
| # AutoFlush on each line written in XML or CSV output |
| # Setting this to true will result in less test results data loss in case of Crash |
| # but with impact on performances, particularly for intensive tests (low or no pauses) |
| # Since JMeter 2.10, this is false by default |
| #jmeter.save.saveservice.autoflush=false |
| |
| # Put the start time stamp in logs instead of the end |
| sampleresult.timestamp.start=true |
| |
| # Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis() |
| #sampleresult.useNanoTime=true |
| |
| # Use a background thread to calculate the nanoTime offset |
| # Set this to ≤ 0 to disable the background thread |
| #sampleresult.nanoThreadSleep=5000 |
| </pre> |
| |
| <p> |
| The date format to be used for the <span class="code">timestamp_format</span> is described in <a HREF="http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html"> |
| <b>SimpleDateFormat</b></a>. |
| The timestamp format is used for both writing and reading files. |
| If the format is set to "<span class="code">ms</span>", and the column does not parse as a long integer, |
| JMeter (2.9+) will try the following formats: |
| |
| <ul> |
| |
| <li> |
| <span class="code">yyyy/MM/dd HH:mm:ss.SSS</span> |
| </li> |
| |
| <li> |
| <span class="code">yyyy/MM/dd HH:mm:ss</span> |
| </li> |
| |
| <li> |
| <span class="code">yyyy-MM-dd HH:mm:ss.SSS</span> |
| </li> |
| |
| <li> |
| <span class="code">yyyy-MM-dd HH:mm:ss</span> |
| </li> |
| |
| <li> |
| <span class="code">MM/dd/yy HH:mm:ss</span> (this is for compatibility with previous versions; it is not recommended as a format) |
| </li> |
| |
| </ul> |
| Matching is now also strict (non-lenient). |
| JMeter 2.8 and earlier used lenient mode which could result in timestamps with incorrect dates |
| (times were usually correct). |
| </p> |
| |
| <div class="subsection"> |
| <h2 id="sample_variables"> |
| 12.1.1 Sample Variables<a class="sectionlink" href="#sample_variables" title="Link to here">¶</a> |
| </h2> |
| |
| <p> |
| JMeter supports the <span class="code">sample_variables</span> |
| property to define a list of additional JMeter variables which are to be saved with |
| each sample in the JTL files. The values are written to CSV files as additional columns, |
| and as additional attributes in XML files. See above for an example. |
| |
| </p> |
| |
| </div> |
| |
| <div class="subsection"> |
| <h2 id="sample_configuration"> |
| 12.1.2 Sample Result Save Configuration<a class="sectionlink" href="#sample_configuration" title="Link to here">¶</a> |
| </h2> |
| |
| <p> |
| Listeners can be configured to save different items to the result log files (JTL) by using the Config popup as shown below. |
| The defaults are defined as described in the <a href="#defaults">Listener Default Configuration</a> section above. |
| Items with (CSV) after the name only apply to the CSV format; items with (XML) only apply to XML format. |
| CSV format cannot currently be used to save any items that include line-breaks. |
| |
| </p> |
| |
| <figure> |
| <a href="../images/screenshots/sample_result_config.png"><img src="../images/screenshots/sample_result_config.png" width="" height="" alt=""></a> |
| <figcaption> |
| <br> |
| <b>Configuration dialogue</b> |
| </figcaption> |
| </figure> |
| |
| </div> |
| |
| <p> |
| Note that cookies, method and the query string are saved as part of the "<span class="code">Sampler Data</span>" option. |
| |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="batch"> |
| 12.2 CLI mode (batch) test runs<a class="sectionlink" href="#batch" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| When running in CLI mode, the <span class="code">-l</span> flag can be used to create a top-level listener for the test run. |
| This is in addition to any Listeners defined in the test plan. |
| The configuration of this listener is controlled by entries in the file <span class="code">jmeter.properties</span> |
| as described in the previous section. |
| |
| </p> |
| |
| <p> |
| This feature can be used to specify different data and log files for each test run, for example: |
| </p> |
| |
| <pre class="source"> |
| jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log |
| jmeter -n -t testplan.jmx -l testplan_02.jtl -j testplan_02.log |
| </pre> |
| |
| <p> |
| Note that JMeter logging messages are written to the file <span class="code">jmeter.log</span> by default. |
| This file is recreated each time, so if you want to keep the log files for each run, |
| you will need to rename it using the <span class="code">-j</span> option as above. |
| |
| </p> |
| |
| <p> |
| JMeter supports variables in the log file name. |
| If the filename contains paired single-quotes, then the name is processed |
| as a <span class="code">SimpleDateFormat</span> format applied to the current date, for example: |
| <span class="code">log_file='jmeter_'yyyyMMddHHmmss'.tmp'</span>. |
| This can be used to generate a unique name for each test run. |
| |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="resources"> |
| 12.3 Resource usage<a class="sectionlink" href="#resources" title="Link to here">¶</a> |
| </h1> |
| |
| <div class="clear"></div> |
| <div class="note"> Listeners can use a lot of memory if there are a lot of samples.</div> |
| <div class="clear"></div> |
| |
| <p> |
| Most of the listeners currently keep a copy of every sample they display, apart from: |
| </p> |
| |
| <ul> |
| |
| <li>Simple Data Writer</li> |
| |
| <li>BeanShell/JSR223 Listener</li> |
| |
| <li>Mailer Visualizer</li> |
| |
| <li>Monitor Results</li> |
| |
| <li>Summary Report</li> |
| |
| </ul> |
| |
| <p> |
| The following Listeners no longer need to keep copies of every single sample. |
| Instead, samples with the same elapsed time are aggregated. |
| Less memory is now needed, especially if most samples only take a second or two at most. |
| </p> |
| |
| <ul> |
| |
| <li>Aggregate Report</li> |
| |
| <li>Aggregate Graph</li> |
| |
| </ul> |
| |
| <p>To minimize the amount of memory needed, use the Simple Data Writer, and use the CSV format.</p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="csvlogformat"> |
| 12.4 CSV Log format<a class="sectionlink" href="#csvlogformat" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| The CSV log format depends on which data items are selected in the configuration. |
| Only the specified data items are recorded in the file. |
| The order of appearance of columns is fixed, and is as follows: |
| </p> |
| |
| <ul> |
| |
| <li> |
| <span class="code">timeStamp</span> - in milliseconds since 1/1/1970 |
| </li> |
| |
| <li> |
| <span class="code">elapsed</span> - in milliseconds |
| </li> |
| |
| <li> |
| <span class="code">label</span> - sampler label |
| </li> |
| |
| <li> |
| <span class="code">responseCode</span> - e.g. <span class="code">200</span>, <span class="code">404</span> |
| </li> |
| |
| <li> |
| <span class="code">responseMessage</span> - e.g. <span class="code">OK</span> |
| </li> |
| |
| <li> |
| <span class="code">threadName</span> |
| </li> |
| |
| <li> |
| <span class="code">dataType</span> - e.g. <span class="code">text</span> |
| </li> |
| |
| <li> |
| <span class="code">success</span> - <span class="code">true</span> or <span class="code">false</span> |
| </li> |
| |
| <li> |
| <span class="code">failureMessage</span> - if any |
| </li> |
| |
| <li> |
| <span class="code">bytes</span> - number of bytes in the sample |
| </li> |
| |
| <li> |
| <span class="code">sentBytes</span> - number of bytes sent for the sample |
| </li> |
| |
| <li> |
| <span class="code">grpThreads</span> - number of active threads in this thread group |
| </li> |
| |
| <li> |
| <span class="code">allThreads</span> - total number of active threads in all groups |
| </li> |
| |
| <li> |
| <span class="code">URL</span> |
| </li> |
| |
| <li> |
| <span class="code">Filename</span> - if <span class="code">Save Response to File</span> was used |
| </li> |
| |
| <li> |
| <span class="code">latency</span> - time to first response |
| </li> |
| |
| <li> |
| <span class="code">connect</span> - time to establish connection |
| </li> |
| |
| <li> |
| <span class="code">encoding</span> |
| </li> |
| |
| <li> |
| <span class="code">SampleCount</span> - number of samples (1, unless multiple samples are aggregated) |
| </li> |
| |
| <li> |
| <span class="code">ErrorCount</span> - number of errors (0 or 1, unless multiple samples are aggregated) |
| </li> |
| |
| <li> |
| <span class="code">Hostname</span> - where the sample was generated |
| </li> |
| |
| <li> |
| <span class="code">IdleTime</span> - number of milliseconds of 'Idle' time (normally 0) |
| </li> |
| |
| <li> |
| <span class="code">Variables</span>, if specified |
| </li> |
| |
| </ul> |
| |
| </div> |
| <div class="section"> |
| <h1 id="xmlformat2.1"> |
| 12.5 XML Log format 2.1<a class="sectionlink" href="#xmlformat2.1" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| The format of the updated XML (2.1) is as follows (line breaks will be different): |
| </p> |
| |
| <pre class="source"> |
| <?xml version="1.0" encoding="UTF-8"?> |
| <testResults version="1.2"> |
| |
| -- HTTP Sample, with nested samples |
| |
| <httpSample t="1392" lt="351" ts="1144371014619" s="true" |
| lb="HTTP Request" rc="200" rm="OK" |
| tn="Listen 1-1" dt="text" de="iso-8859-1" by="12407"> |
| <httpSample t="170" lt="170" ts="1144371015471" s="true" |
| lb="http://www.apache.org/style/style.css" rc="200" rm="OK" |
| tn="Listen 1-1" dt="text" de="ISO-8859-1" by="1002"> |
| <responseHeader class="java.lang.String">HTTP/1.1 200 OK |
| Date: Fri, 07 Apr 2006 00:50:14 GMT |
| ⋮ |
| Content-Type: text/css |
| </responseHeader> |
| <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader> |
| <responseData class="java.lang.String">body, td, th { |
| font-size: 95%; |
| font-family: Arial, Geneva, Helvetica, sans-serif; |
| color: black; |
| background-color: white; |
| } |
| ⋮ |
| </responseData> |
| <cookies class="java.lang.String"></cookies> |
| <method class="java.lang.String">GET</method> |
| <queryString class="java.lang.String"></queryString> |
| <url>http://www.apache.org/style/style.css</url> |
| </httpSample> |
| <httpSample t="200" lt="180" ts="1144371015641" s="true" |
| lb="http://www.apache.org/images/asf_logo_wide.gif" |
| rc="200" rm="OK" tn="Listen 1-1" dt="bin" de="ISO-8859-1" by="5866"> |
| <responseHeader class="java.lang.String">HTTP/1.1 200 OK |
| Date: Fri, 07 Apr 2006 00:50:14 GMT |
| ⋮ |
| Content-Type: image/gif |
| </responseHeader> |
| <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader> |
| <responseData class="java.lang.String">http://www.apache.org/asf.gif</responseData> |
| <responseFile class="java.lang.String">Mixed1.html</responseFile> |
| <cookies class="java.lang.String"></cookies> |
| <method class="java.lang.String">GET</method> |
| <queryString class="java.lang.String"></queryString> |
| <url>http://www.apache.org/asf.gif</url> |
| </httpSample> |
| <responseHeader class="java.lang.String">HTTP/1.1 200 OK |
| Date: Fri, 07 Apr 2006 00:50:13 GMT |
| ⋮ |
| Content-Type: text/html; charset=ISO-8859-1 |
| </responseHeader> |
| <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader> |
| <responseData class="java.lang.String"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| ⋮ |
| <html> |
| <head> |
| ⋮ |
| </head> |
| <body> |
| ⋮ |
| </body> |
| </html> |
| </responseData> |
| <cookies class="java.lang.String"></cookies> |
| <method class="java.lang.String">GET</method> |
| <queryString class="java.lang.String"></queryString> |
| <url>http://www.apache.org/</url> |
| </httpSample> |
| |
| -- non HTTP Sample |
| |
| <sample t="0" lt="0" ts="1144372616082" s="true" lb="Example Sampler" |
| rc="200" rm="OK" tn="Listen 1-1" dt="text" de="ISO-8859-1" by="10"> |
| <responseHeader class="java.lang.String"></responseHeader> |
| <requestHeader class="java.lang.String"></requestHeader> |
| <responseData class="java.lang.String">Listen 1-1</responseData> |
| <responseFile class="java.lang.String">Mixed2.unknown</responseFile> |
| <samplerData class="java.lang.String">ssssss</samplerData> |
| </sample> |
| |
| </testResults> |
| </pre> |
| |
| <p> |
| Note that the sample node name may be either "<span class="code">sample</span>" or "<span class="code">httpSample</span>". |
| |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="xmlformat2.2"> |
| 12.6 XML Log format 2.2<a class="sectionlink" href="#xmlformat2.2" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| The format of the JTL files is identical for 2.2 and 2.1. Format 2.2 only affects JMX files. |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="attributes"> |
| 12.7 Sample Attributes<a class="sectionlink" href="#attributes" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| The sample attributes have the following meaning: |
| </p> |
| |
| <table> |
| |
| <tr> |
| <th>Attribute</th><th>Content</th> |
| </tr> |
| |
| <tr> |
| <td><span class="code">by</span></td><td>Bytes</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">sby</span></td><td>Sent Bytes</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">de</span></td><td>Data encoding</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">dt</span></td><td>Data type</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">ec</span></td><td>Error count (0 or 1, unless multiple samples are aggregated)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">hn</span></td><td>Hostname where the sample was generated</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">it</span></td><td>Idle Time = time not spent sampling (milliseconds) (generally 0)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">lb</span></td><td>Label</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">lt</span></td><td>Latency = time to initial response (milliseconds) - not all samplers support this</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">ct</span></td><td>Connect Time = time to establish the connection (milliseconds) - not all samplers support this</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">na</span></td><td>Number of active threads for all thread groups</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">ng</span></td><td>Number of active threads in this group</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">rc</span></td><td>Response Code (e.g. <span class="code">200</span>)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">rm</span></td><td>Response Message (e.g. <span class="code">OK</span>)</td> |
| </tr> |
| |
| <tr> |
| <td> <span class="code">s</span></td><td>Success flag (<span class="code">true</span>/<span class="code">false</span>)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">sc</span></td><td>Sample count (1, unless multiple samples are aggregated)</td> |
| </tr> |
| |
| <tr> |
| <td> <span class="code">t</span></td><td>Elapsed time (milliseconds)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">tn</span></td><td>Thread Name</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">ts</span></td><td>timeStamp (milliseconds since midnight Jan 1, 1970 UTC)</td> |
| </tr> |
| |
| <tr> |
| <td><span class="code">varname</span></td><td>Value of the named variable</td> |
| </tr> |
| |
| </table> |
| |
| <div class="clear"></div> |
| <div class="note"> |
| JMeter allows additional variables to be saved with the test plan. |
| Currently, the variables are saved as additional attributes. |
| The testplan variable name is used as the attribute name. |
| See <a href="#sample_variables">Sample variables</a> (above) for more information. |
| |
| </div> |
| <div class="clear"></div> |
| |
| </div> |
| <div class="section"> |
| <h1 id="saving"> |
| 12.8 Saving response data<a class="sectionlink" href="#saving" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| As shown above, the response data can be saved in the XML log file if required. |
| However, this can make the file rather large, and the text has to be encoded so |
| that it is still valid XML. Also, images cannot be included. |
| Only sample responses with the type <span class="code">TEXT</span> can be saved. |
| |
| <br> |
| Another solution is to use the Post-Processor <a href="../usermanual/component_reference.html#Save_Responses_to_a_file">Save_Responses_to_a_file</a>. |
| This generates a new file for each sample, and saves the file name with the sample. |
| The file name can then be included in the sample log output. |
| The data will be retrieved from the file if necessary when the sample log file is reloaded. |
| |
| </p> |
| |
| </div> |
| <div class="section"> |
| <h1 id="loading"> |
| 12.9 Loading (reading) response data<a class="sectionlink" href="#loading" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| To view an existing results file, you can use the File "<span class="code">Browse…</span>" button to select a file. |
| If necessary, just create a dummy testplan with the appropriate Listener in it. |
| |
| </p> |
| |
| <p> |
| Results can be read from XML or CSV format files. |
| When reading from CSV results files, the header (if present) is used to determine which fields were saved. |
| <b>In order to interpret a header-less CSV file correctly, the appropriate JMeter properties must be set.</b> |
| |
| </p> |
| |
| <div class="clear"></div> |
| <div class="note"> |
| JMeter does not clear any current data before loading the new file thus allowing files to be merged. |
| If you want to clear the current data, use the menu item: |
| <span class="menuchoice"><span class="guimenuitem">Run</span> → <span class="guimenuitem">Clear</span> |
| (<span class="keycombo"><span class="keysym">Ctrl</span> + <span class="keysym">Shift</span> + <span class="keysym">E</span></span>) |
| </span> |
| or |
| <span class="menuchoice"><span class="guimenuitem">Run</span> → <span class="guimenuitem">Clear All</span> |
| (<span class="keycombo"><span class="keysym">Ctrl</span> + <span class="keysym">E</span></span>) |
| </span> |
| before loading the file. |
| |
| </div> |
| <div class="clear"></div> |
| |
| </div> |
| <div class="section"> |
| <h1 id="screencap"> |
| 12.10 Saving Listener GUI data<a class="sectionlink" href="#screencap" title="Link to here">¶</a> |
| </h1> |
| |
| <p> |
| JMeter is capable of saving any listener as a PNG file. To do so, select the |
| listener in the left panel. Click |
| <span class="menuchoice"><span class="guimenuitem">Edit</span> → <span class="guimenuitem">Save Node As Image</span></span>. |
| A file dialog will |
| appear. Enter the desired name and save the listener. |
| |
| </p> |
| |
| <p> |
| The Listeners which generate output as tables can also be saved using Copy/Paste. |
| Select the desired cells in the table, and use the OS Copy short-cut (normally <span class="keycombo"><span class="keysym">Ctrl</span> + <span class="keysym">C</span></span>). |
| The data will be saved to the clipboard, from where it can be pasted into another application, |
| e.g. a spreadsheet or text editor. |
| |
| </p> |
| |
| <figure> |
| <a href="../images/screenshots/save_image.png"><img src="../images/screenshots/save_image.png" width="" height="" alt="Figure 1 - "></a> |
| <figcaption> |
| Figure 1 - <span class="menuchoice"><span class="guimenuitem">Edit</span> → <span class="guimenuitem">Save Node As Image</span></span> |
| </figcaption> |
| </figure> |
| |
| </div> |
| <ul class="pagelinks"> |
| <li> |
| <a href="build-jms-topic-test-plan.html">< Prev</a> |
| </li> |
| <li> |
| <a href="../index.html">Index</a> |
| </li> |
| <li> |
| <a href="remote-test.html">Next ></a> |
| </li> |
| </ul> |
| <div class="share-links"> |
| Share this page: |
| |
| <ul> |
| <li class="fb"> |
| <a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a> |
| </li> |
| <li class="twitter"> |
| <a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a> |
| </li> |
| </ul> |
| </div> |
| <a href="#top" id="topButton">Go to top</a> |
| </div> |
| <div class="footer"> |
| <div class="copyright"> |
| Copyright © |
| 1999 – |
| 2022 |
| , Apache Software Foundation |
| </div> |
| <div class="trademarks">Apache, Apache JMeter, JMeter, the Apache |
| feather, and the Apache JMeter logo are |
| trademarks of the |
| Apache Software Foundation. |
| </div> |
| </div> |
| <script>(function(){ |
| "use strict"; |
| // enable 'go to top' button functionality |
| document.addEventListener('scroll', function() { |
| if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) { |
| document.getElementById("topButton").style.display = "block"; |
| } else { |
| document.getElementById("topButton").style.display = "none"; |
| } |
| }); |
| // fill in the current location into social links on this page. |
| var as = document.getElementsByTagName('a'); |
| var loc = document.location.href; |
| if (!loc.toLowerCase().startsWith('http')) { |
| return; |
| } |
| for (var i=0; i<as.length; i++) { |
| var href = as[i].getAttribute('data-social-url'); |
| if (href !== null) { |
| as[i].href = href + encodeURIComponent(loc); |
| } |
| } |
| })();</script> |
| </body> |
| </html> |