JMeter import¶
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.
Warning
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.
Record¶
To record a virtual user with JMeter, please follow the JMeter recording guide provided by the Apache Foundation.
Generic actions¶
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 support@octoperf.com.
Note
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:
Samplers:
- HTTP Request Sampler,
- And JSR223 Sampler : BeanShell are converted to JSR with beanShell language
Controllers:
- Simple Controller,
- Random Controller,
- Throughput Controller,
- If Controller,
- While Controller,
- ForEach Controller,
- Transaction Controller,
- And Module Controller.
Config elements:
- 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.
Assertions:
- Constant Timer,
- Uniform Random Timer,
- Constant Throughput Timer.
Pre-processors:
- JSR223 PreProcessor: BeanShell are converted to JSR with BeanShell language.
Post-processors:
- Regular Expression Extractor,
- JSON Path Extractor,
- JSR223 PostProcessor : BeanShell are converted to JSR with BeanShell language.
Plugins:
- 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.
Note
You may select Download resources automatically if you want OctoPerf to remove the static resources requests (images, JavaScript and Css files, etc.). These requests will then be downloaded dynamically during runtime.
Then import all resources that your script may need to run:
Please refer to the Files documentation for more information.
JMeter plugins¶
All JMeter plugins (even custom ones) are supported using Generic Actions.
You simply need to upload the associated .JAR files using the files manager.
Note
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.
HTTP2¶
As we use the JDK11 on our load injectors, to run tests that simulate HTTP2 request you need to
- Download Java APLN JAR and upload it into the Files,
- Delete the JDK8 APLN client JAR on test startup using a bootstrap script.