9.0.x
XLT 9.0.0
Version 9 is a major release of XLT. It comes with many new features, but also some incompatible changes. See below for an overview of what’s in the box.
Due to Java 21 and potential API changes in XLT 9, you will need to migrate your test suites for use with this new version. Please read the Test Suite Migration section carefully.
Overview
Framework
XLT is now based on Java 21. This allows us to take advantage of exciting new features such as virtual threads. However, this also means that you must have a Java 21 environment installed in order to compile and run tests with XLT.
HtmlUnit, a browser emulation for Java, is the heart of the XLT framework. It has been updated to version 4.x. All other third-party libraries have also been updated, including Selenium.
For convenience, the XltProperties
class now provides new methods to get the configuration directory and the data directory (containing test data files) in your test suite. Use them if your test suite adds custom functionality that relies on files stored in these directories.
Path configDir = XltProperties.getInstance().getConfigDirectory();
Path dataDir = XltProperties.getInstance().getDataDirectory();
Load Testing
ec2_admin
, our tool for managing machine instances in AWS, has been extended to support temporary credentials, which are typically used when your account requires 2FA. As usual, you can configure temporary credentials in <xlt>/config/ec2_admin.properties
:
aws.accessKey = <your temporary access key>
aws.secretKey = <your temporary secret key>
aws.sessionToken = <your session token>
Note that ec2_admin
now also supports credentials (temporary or not) stored in a profile in the user’s home directory or in environment variables. See the AWS documentation for more details.
Load Test Report
The Load Profile section now displays each scenario’s share of the total load, both as a percentage and as a bar graph.
There is now a Slowest Requests report page that lists the top slowest requests in your load test with many details. To open this page, click on the corresponding entry in the Requests submenu of the navigation bar.
By default, the Slowest Requests page lists up to 500 requests, with a limit of 20 requests per request name. To be counted as a slow request, the runtime of a request must be between 3 seconds and 10 minutes. Note that all of these limits can be reconfigured in the report generator configuration.
XLT Images
Xceptance provides ready-to-use public XLT images for AWS and Docker. The images are based on Debian 12.x (“bookworm”). They now include the latest XLT and JDK 21 and are tuned for load testing. For real browser load testing, they also include the latest Chromium and Firefox (ESR) browsers with matching web driver binaries, chromedriver
and geckodriver
.
If you are looking for XLT images for other clouds, visit XLT’s sister project, XLT Packer. This project not only contains scripts to install and set up the contents of an XLT image, but also provides Packer templates to actually create such images for the following clouds:
- AWS
- DigitalOcean
- Hetzner
Follow the instructions in the README file to create an XLT image for one of the supported clouds yourself.
Test Suite Migration
As mentioned above, XLT 9.x comes with breaking changes. To migrate your test suites, you must complete the following steps.
1. Update the Java Version
Update the Java version in your build files (such as pom.xml
) and in the project files of your favorite IDE to Java 21.
2. Fix Compile Errors
Since we have updated HtmlUnit and Selenium, as well as many other helper libraries to the latest version, there may be incompatible API changes. We haven’t encountered such changes in our test suites yet, but your case may be different. Adjust your code accordingly.
3. Test Your Scenarios
Now it’s time to verify that everything still works as before. Start by running the test scenarios from your IDE. They should run and finish with the expected results. Then run a small load test. Check the results and the output in all log files.
4. Review the Report Generator Configuration
As mentioned above, the XLT report generator has learned the slowest requests feature. You can configure it in the <xlt>/config/reportgenerator.properties
file:
## The maximum number of slow requests to remember per request bucket.
com.xceptance.xlt.reportgenerator.slowestRequests.requestsPerBucket = 20
## The maximum number of slow requests to show in the report.
com.xceptance.xlt.reportgenerator.slowestRequests.totalRequests = 500
## The minimum runtime (in ms) a request must reach to be remembered as a slow request.
com.xceptance.xlt.reportgenerator.slowestRequests.minRuntime = 3000
## The maximum runtime (in ms) a request can reach to be remembered as a slow request.
com.xceptance.xlt.reportgenerator.slowestRequests.maxRuntime = 600000
Check the defaults to see if they work for you, and adjust them if necessary.