Documentation reworked extensively
The XLT documentation has been reworked extensively and is now hosted at https://xltdoc.xceptance.com/. Please have a look and let us know what you think about it! You can also actively participate in improving the XLT documentation by providing pull requests, suggesting topics, and raising issues. The related Git repository can be found on GitHub.
XLT still ships with the old documentation for a while, as a reference manual especially for those of you who still use XML script test cases for test automation. But note that we will remove the old docs altogether with the next major release.
Warnings when cloning a page after an action has finished
HtmlPageAction has finished, XLT snapshots the current HTML page and stores the clone away to be presented later on in the result browser. During that process, XLT could print warnings similar to the following to the console:
Failed to set attribute <xlink:href> to value </some/path/to/icon.svg#icon-search>
Happened for pages using
<svg> elements, but other elements could have been affected as well. This issue is fixed now.
Progress indication when generating reports
The report generation hasn’t indicated the progress in detail which made it hard to judge the remaining runtime. This release adds simple progress bars which will indicate a progress as well as an estimated remaining runtime. Big thanks to the ProgressBar project!
Timer files stored in compressed form
XLT has been keeping all data in clear text files for easy post processing and open data handling. However, the
timers.csv files occupy a large share of the required space on disk after a test run. While the download already runs compressed, the final on-disk storage was plain. This release changes this behavior and stores the
timers.csv in a compressed GZIP format by default. The report generator learned to deal with compressed as well as uncompressed formats automatically.
For example, a result set with previously 9.5 GB of storage space now only requires 1.1 GB. As an additional advantage, report generation might run faster on systems with slower disks such as regular cloud machines. Furthermore, the download of results from the agents will also run faster due to less write operations.
If you find it necessary to revert to the old behavior of plain uncompressed storage, you can set the property
com.xceptance.xlt.mastercontroller.compressedTimerFiles in file
mastercontroller.properties to false.
Illegal access warning in ec2_admin
ec2_admin raised an illegal reflective access warning when it’s reporting problems such as trying to delete something that does not exist:
Terminating the selected instances in region 'eu-central-1' ... WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.amazonaws.util.XpathUtils (file:/home/anyone/projects/loadtest/xlt-5.3.0/lib/aws-java-sdk-core-1.11.762.jar) to method com.sun.org.apache.xpath.internal.XPathContext.getDTMManager() WARNING: Please consider reporting this to the maintainers of com.amazonaws.util.XpathUtils WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Failed: No instances specified (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 23234-3bd3-4157-b365-4bf7b4432221ec7)
While we cannot fix the illegal access (it is made in a foreign library), we can at least suppress these warnings by passing the appropriate command line options to java in
Socket instrumentation won’t work with Java 16
When running a test scenario with Java 16, the socket instrumentation code to gather network timing data (connect time, time to first bytes, etc.) could not be installed and the test scenario failed with this error message:
java.lang.NoClassDefFoundError: Could not initialize class com.xceptance.xlt.engine.socket.InstrumentedSocketImpl
This issue is fixed now.