The JMeter based Performance Test Suite is build on the basic ideas of Apache JMeter but with reworks in many areas to make it compatible with XLT.
Bottom line, you record, edit, and maintain your tests in Jmeter, but you will use XLT to run and evaluate your tests. This gives you excellent debuggability because you can utilize the XLT features to see nicely what has been executed, requested, and fetched.
- Java Version 17 or higher
- An existing
.jmx
file for test execution. This can be created with JMeter.
- Clone this test suite
- Build a test plan or use an existing
.jmx
file - Save your
.jmx
file to this directory<testsuite>/config/data/jmeter
- Open this test suite in your preferred Java IDE
- Go to
config/data/jmeter
to see your previous saved file - Go to
src/main/java/com/xceptance/loadtest/jmeter/tests
and add your test, there are already some example test, for reference
public class YourTestCaseName extends JMeterTestCase
{
public YourTestCaseName()
{
super("yourTestFile.jmx");
}
}
- Add your test case(s) to the test case mapping
- Add your test case(s) to the list of active test case(s) in the test configuration
- Save and commit your changes
- Run your test and see the results in the provided result browser
- Go to the Xceptance Test Center (XTC)
- Setup a new load test
- Start your loadtest
JMeter dependencies are upgrade.properties, saveservice.properties and jmeter.properties are taken from default JMeter setup and are needed for the engine. In case there are adjusted values simply, add the files under the created site. At the moment default is used for reference.
Best practice is to always give meaningful names to thread groups, transactions and requests. These names are used for the report and it is recommended to identify the correct requests in the report. If there are no names given, the engine will create a default name for identification.
For reference in XLT each .jmx
file is considered a single test case, therefore create the test cases in different .jmx
files. All Transaction Controller in the current file are later listed as Actions in the report and all request under the given Transaction Controller, if the Generate parent sample option is selected. If the option is disabled all request will be listed individual.
- grouping different samplers below thread group
- XLT thread management instead of using JMeter. This means that infinite or loops, ramp up and users is managed by XTC and via properties.
- all thread groups in one
.jmx
file are executed one after the other, this is not recommended
- can fire simple HTTP requests and HTTP multipart
- implemented, as it is in JMeter
- assertion checker from JMeter are implemented and fire events in XLT, additional we support the continue (only events) and stop function from JMeter (ResultBrowser and errors)
- implemented, as it is in JMeter
- works with internal counter as designed
- works with internal counter
- Works, the
.csv
file(s) need to be placed at the follwoing location<testsuite>/config/data/jmeter/data
.
- File Upload
- XPath2 Assertions
By design, the load test config is not read from the JMeter file. This has to be done the classical way via property file. Think times and load will be controlled by XTC.
It is strictly recommended to only have one active thread group per scenario (.jmx
file). Since this will be directly visible in the report later. Multiple thread groups, in one .jmx
file, will be listed as actions.