XTC v111

2026-02-24

Load Testing

New Feature: Code Archives (Preview)

Overview

As an alternative to Git-based source code repositories, load testing projects now allow you to upload source code archives. Use this feature if:

  • Your Git repository is not accessible from XTC.
  • You use a source code repository other than Git.

Similar to a Git repository, a code archive contains the load test suite in source form. If a load test is configured to use a code archive, that archive will serve as the source for the test suite instead of the Git repository. All other steps will remain unchanged. XTC will still be responsible for building the test suite and can utilize features such as the build and dependency caches in the process.

To use code archives, you’ll have to upload them first. Currently, this is only possible via the XTC REST API. You can upload multiple versions of the test suite and select one of them for a specific load test.

Please note that the Code Archive feature is in preview and still under active development. Expect minor changes to its behavior and appearance in future releases.

Code Archive Prequisites

Please ensure that the code archive meets the following requirements:

  • The code archive is in ZIP format.
  • The code archive contains a single top-level directory.
  • The top-level directory contains the sources of your test suite. This includes all the content necessary to successfully build the test suite. You may exclude metadata, such as Git or any other SCM data.
  • Same as with Git-based repositories, the test suite build must be based on either Maven or Gradle.

Uploading Code Archives

Uploading code archives to XTC is currently possible only via the XTC REST API. See the new upload and delete endpoints in the API Explorer for more details.

You can perform the upload manually or in automated processes. The necessary steps are the same. In the examples below we use curl to demonstrate what data needs to be sent in which form to the REST API.

  1. In XTC, create API client credentials with at least the new CODEARCHIVE_UPLOAD scope in your project.

  2. Create a source code archive with your test suite according to the prerequisites.

  3. Obtain an API access token for your client credentials. Replace <client-id> with your API credentials ID and <client-secret> with the corresponding secret.

    curl -k -X POST \
         -d "client_id=<client-id>" \
         -d "client_secret=<client-secret>" \
         -d "grant_type=client_credentials" \
         -d "scope=CODEARCHIVE_UPLOAD" \
         https://xtc.xceptance.com/oauth/token
    

    Extract the access_token field from the response; you will need it in the next step.

  4. Now perform the upload. Replace <access-token> with the received token, <path/to/test-suite-archive.zip> with the path to the desired code archive as well as <org> and <project> in the URL with the short names of your organization and project:

    curl -k -X POST \
         -H "Authorization: Bearer <access-token>" \
         -H "Content-Type: application/zip" \
         --data-binary "@<path/to/test-suite-archive.zip>" \
         https://xtc.xceptance.com/public/api/v2/orgs/<org>/projects/<project>/code-archives
    

    Repeat this step with other versions of your test suite as necessary.

Using Code Archives

Now that your code archives have been uploaded, you can use them in load tests. On the details page of a new load test, click the Settings tab. You will see a new Code Archive section where you can select the code archive to use for this load test. Selecting Use Latest instead ensures that the most recent code archive is used. Then, start the load test as usual.

When you later duplicate the load test, the code archive settings will be duplicated as well.

Note that, currently, the code archive takes precedence over the repository settings if both are configured.

Description Formatting Retained in HTML Report

The description of a load test is copied into the generated HTML load test report. If the description contains basic visual formatting, such as line breaks and blank lines, this formatting is now preserved in the HTML report.

Available XLT Execution Environments

General

Incompatible Change When Passing API Scopes

If you use the XTC REST API, you may need to adjust your client scripts due to an incompatible change. When creating an access token, you specify the scopes for which the token is valid. Make sure the scopes are separated only by spaces; otherwise, the server will now return an error.

  • Good: scope=CODEARCHIVE_UPLOAD CODEARCHIVE_DELETE
  • Bad: scope=CODEARCHIVE_UPLOAD, CODEARCHIVE_DELETE
Last modified February 24, 2026: Release notes for XTC 111 (#312) (cb528e99)