JMeter is an open-source load testing tool capable of recording HTTP requests through a built-in HTTP Proxy. A JMX file is a saved JMeter project in XML format. OctoPerf supports importing JMeter projects in such format.
JMeter projects often rely on external files (i.e. CSV files used in datasets or plugins). Be sure to upload them using the Files Menu after your import your JMX.
To record a virtual user with JMeter, please follow the JMeter recording guide provided by the Apache Foundation.
Most commonly used test elements are supported natively: a dedicated Virtual User action is created for each one.
All other relevant JMeter test elements can be imported as Generic Actions:
Generic Actions lets you edit the configuration of the associated JMeter test element (here a BSF Post Processor).
However, there are a few limitations:
- Generic Actions cannot be added to a Virtual User, you can only duplicate existing ones.
- Their configuration can only be edited, not extended.
At runtime, the Generic Action is converted back to its associated JMeter test element. So you should ensure that it does not break the execution of the test by validating your virtual user.
If you think a test element deserves to be supported natively in OctoPerf, please send us a mail at firstname.lastname@example.org.
Some actions are not directly included in the generated Virtual Users after importing a JMeter JMX file:
- A Virtual User is created for each ThreadGroup, but the execution configuration (number of simulated users, duration, cookies, cache, dns, etc.) takes place in the runtime scenarios in OctoPerf.
- Constant variables, Random variables and CSV DataSets are imported in the variables section of your project.
- Servers and their Authorization configuration are imported in the servers section of your project.
All actions related to test recording (i.e. RecordingController) or test results (i.e. ResultAction or ResultCollector) are ignored as OctoPerf comes with its own results and reports.
Natively supported actions¶
The following elements are natively supported in OctoPerf:
- Simple Controller,
- Random Controller,
- Throughput Controller,
- If Controller,
- While Controller,
- ForEach Controller,
- Transaction Controller,
- And Module Controller.
- CSV Data Set Config,
- DNS Cache Manager,
- HTTP Authorization Manager,
- HTTP Cache Manager,
- HTTP Cookie Manager,
- HTTP Header Manager,
- User Defined Variables,
- And Random Variable.
- Constant Timer,
- Uniform Random Timer,
- Constant Throughput Timer.
- JSR223 PreProcessor: BeanShell are converted to JSR with BeanShell language.
- Regular Expression Extractor,
- JSON Path Extractor,
- JSR223 PostProcessor : BeanShell are converted to JSR with BeanShell language.
- Standard set,
- And Selenium WebDriver.
Create Virtual User: Import JMX¶
Upload the JMeter JMX file to create a virtual user:
Simply drop the file in the JMX area or use the Choose File button. The download starts automatically.
Then import all resources that your script may need to run:
Please refer to the Files documentation for more information.
All JMeter plugins (even custom ones) are supported using Generic Actions.
You simply need to upload the associated .JAR files using the files manager.
Plugins are automatically downloaded just before runtime so unless you use a custom one you should not have to upload the associated .jar files manually. In case of On-premise load generators that would not have access to JMeter plugins, you should provide the JAR files in advance.
As we use the JDK11 on our load injectors, to run tests that simulate HTTP2 request you need to