Result Data

An overview of the XLT result data captured during a performance test and stored in CSV files for further processing.

Collected Values

During a load test, the XLT framework automatically collects extensive information about transactions, actions, executed requests, and event information. Additional custom timers can be added programmatically using the XLT API. Finally, each agent process monitors its resource usage and logs these values.

These values are stored separately for each test case and virtual user in files named results/<TestCaseName>/<UserNo>/timers.csv. Agent resource usage data is written to results/Agent-JVM-Monitor/0/timers.csv. As the name suggests, the file format is CSV. See the following example:

R,Homepage.1,1537368092399,1506,false,767,6248,200,https://localhost:8443/posters/,text/html,0,145,0,670,215,885,,,,,4,,,
R,Homepage.1.4,1537368093962,66,false,900,1898,200,https://localhost:8443/posters/assets/ico/favicon.ico,image/x-icon,0,17,0,46,17,63,,,,,0,,,
R,Homepage.1.3,1537368093962,66,false,916,2922,200,https://localhost:8443/posters/assets/js/bootstrap-paginator.min.js,application/javascript,0,21,0,40,23,63,,,,,0,,,
R,Homepage.1.2,1537368093962,80,false,597,40649,200,https://localhost:8443/posters/assets/img/products/Flora_and_Fauna/Animals/Animals_1.jpg,image/jpeg,0,0,65,11,65,76,,,,,0,,,
R,Homepage.1.1,1537368093961,80,false,948,52307,200,https://localhost:8443/posters/assets/img/products/Means_of_Transportation/Railways/Railways_7.jpg,image/jpeg,0,13,0,61,16,77,,,,,0,,,
R,Homepage.1.5,1537368094049,8,false,565,1541,200,https://localhost:8443/posters/assets/js/posterMiniCart.js,application/javascript,0,0,6,0,6,6,,,,,0,,,
R,Homepage.1.8,1537368094055,16,false,549,1925,200,https://localhost:8443/posters/assets/js/poster.js,application/javascript,0,0,13,0,13,13,,,,,0,,,
R,Homepage.1.9,1537368094065,10,false,549,1525,200,https://localhost:8443/posters/assets/css/posters.css,text/css,0,0,8,0,8,8,,,,,0,,,
R,Homepage.1.6,1537368094049,32,false,565,20356,200,https://localhost:8443/posters/assets/css/bootstrap.min.css,text/css,0,0,11,20,11,31,,,,,0,,,
R,Homepage.1.10,1537368094079,10,false,565,10383,200,https://localhost:8443/posters/assets/js/bootstrap.min.js,application/javascript,0,0,8,1,8,9,,,,,0,,,
R,Homepage.1.7,1537368094052,46,false,565,339040,200,https://localhost:8443/posters/assets/img/products/XXL/XXL_3.jpg,image/jpeg,0,0,16,29,16,45,,,,,0,,,
R,Homepage.1.11,1537368094088,23,false,565,315350,200,https://localhost:8443/posters/assets/img/products/XXL/XXL_1.jpg,image/jpeg,0,0,8,13,8,21,,,,,0,,,
R,Homepage.1.13,1537368094119,10,false,565,6085,200,https://localhost:8443/posters/assets/img/xceptanceLogo.png,image/png,0,0,8,0,8,8,,,,,0,,,
R,Homepage.1.12,1537368094115,16,false,581,46905,200,https://localhost:8443/posters/assets/img/products/Food/Cold_Cuts/Cold_Cuts_1.jpg,image/jpeg,0,0,12,2,12,14,,,,,0,,,
R,Homepage.1.14,1537368094122,15,false,565,143846,200,https://localhost:8443/posters/assets/img/products/XXL/XXL_2.jpg,image/jpeg,0,0,8,6,8,14,,,,,0,,,
R,Homepage.1.15,1537368094123,15,false,565,30484,200,https://localhost:8443/posters/assets/js/jquery-2.2.4.min.js,application/javascript,0,0,9,4,9,13,,,,,0,,,
R,Homepage.1.17,1537368094138,10,false,565,917,200,https://localhost:8443/posters/assets/css/posterMiniCart.css,text/css,0,0,8,0,8,8,,,,,0,,,
R,Homepage.1.16,1537368094134,22,false,565,308545,200,https://localhost:8443/posters/assets/img/products/XXL/XXL_4.jpg,image/jpeg,0,0,8,13,8,21,,,,,0,,,
A,Homepage,1537368092381,2380,false
T,TVisit,1537368091385,3456,false,,

The lines have a different number of columns, as they represent different types of information. The following table describes the meaning of each column, depending on the data record type:

ColumnTransactionActionRequestPage Load TimingWeb VitalCustom TimerEventAgent Resource UsageCustom Value
1TARPWCEJV
2namenamenamenamenamenamenameagent namename
3start timestart timestart timestart timetimestart timetimetimetime
4run time [ms]run time [ms]run time [ms]run time [ms]value1run time [ms]transaction namecurrent CPU usage (agent only) [%]value
5failed flagfailed flagfailed flagfailed flag-failed flagevent messageused main memory (absolute)-
6exception stack trace2-bytes sent----current main memory usage (relative) [%]-
7name of last action2-bytes received----used heap memory (absolute)-
8user index2-response code----total heap memory (absolute)-
9dump dir name2-request URL----current heap memory usage (relative) [%]-
10--response content type----threads in state “runnable”-
11--connect time [ms]----threads in state “blocked”-
12--send time [ms]----threads in state “waiting” or “timed waiting”-
13--server busy time [ms]----minor GC cycles since start-
14--receive time [ms]----minor GC time since start [ms]-
15--time to first bytes [ms]----current minor GC CPU usage [%]-
16--time to last bytes [ms]----full GC cycles since start-
17--request ID----full GC time since start [ms]-
18--HTTP method3----current full GC CPU usage [%]-
19--form data encoding3----minor GC time since last update [ms]-
20--form data3----full GC time since last update [ms]-
21--domain lookup time [ms]----minor GC cycles since last update-
22--resolved IP address(es)4----full GC cycles since last update-
23--response ID----current CPU usage (total) [%]-
24--IP address used for the request 5------

  1. Typically, the value represents a duration (measured in milliseconds). For CLS, however, the value is a unitless fractional number that expresses the degree of cumulative layout shift. ↩︎

  2. These values are present only if the transaction has failed; otherwise, they are blank. ↩︎ ↩︎ ↩︎ ↩︎

  3. These values are present only if the property com.xceptance.xlt.results.data.request.collect.formData is enabled; otherwise, they are blank. ↩︎ ↩︎ ↩︎

  4. The list of IP addresses reported by DNS for the hostname used when making the request. If there is more than one IP address, they will be stored separated by a ‘|’ character. This will not be set if the request did not trigger a DNS address resolution (e.g., in the case of keep-alive connections). This value is present only if the property xlt.dns.recordAddresses is set to true; otherwise, it is blank. ↩︎

  5. The target IP address of the system under test that was used when making the request. This information is useful only if the target system has multiple IP addresses (e.g., if it is located behind a CDN). This value is present only if the property com.xceptance.xlt.results.data.request.collectUsedIpAddress is set to true; otherwise, it is blank. ↩︎