> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/resilience-testing/load-testing/create-a-load-test.md).

# Create a Load Test

Choose a Load Test Engine (Python, JavaScript, or Java) and create a load test in Harness Resilience Testing

You create a load test in the **Load Test Studio** by picking a Load Test Engine and the infrastructure it runs on. Each engine is based on an open-source load testing tool, so choose the one that matches the scripts and skills your team already has.

***

## Choose a load test engine <a href="#choose-a-load-test-engine" id="choose-a-load-test-engine"></a>

The engine decides how you define the workload and where the test can run:

| Engine                                                                      | Based on | Test definition     | Infrastructure          |
| --------------------------------------------------------------------------- | -------- | ------------------- | ----------------------- |
| [**Python**](/resilience-testing/load-testing/create-a-load-test/locust.md) | Locust   | Python              | Linux VM and Kubernetes |
| [**JavaScript**](/resilience-testing/load-testing/create-a-load-test/k6.md) | k6       | JavaScript          | Kubernetes              |
| [**Java**](/resilience-testing/load-testing/create-a-load-test/jmeter.md)   | JMeter   | Java (`.jmx` plans) | Kubernetes              |

* **Python:** Use it when your team writes scenarios in Python, or when the test must run on a **Linux VM**. Go to [Python](/resilience-testing/load-testing/create-a-load-test/locust.md) to create a Locust-based test.
* **JavaScript:** Use it when you want thresholds and scenarios declared in the script itself. Go to [JavaScript](/resilience-testing/load-testing/create-a-load-test/k6.md) to create a k6-based test.
* **Java:** Use it when you already have `.jmx` test plans to reuse. Go to [Java](/resilience-testing/load-testing/create-a-load-test/jmeter.md) to create a JMeter-based test.

***

## Start from a browser recording <a href="#start-from-a-browser-recording" id="start-from-a-browser-recording"></a>

If you do not have a script yet, record the user flow in your browser and upload the HAR file instead. Harness converts it into a script for whichever engine you choose, with the recorded steps, think time, and response checks already in place. Go to [Create a load test from a HAR recording](/resilience-testing/load-testing/create-a-load-test/har-recording.md) to record and convert a flow.

***

## Check the script before you save <a href="#check-the-script-before-you-save" id="check-the-script-before-you-save"></a>

When you upload or edit a script, Harness checks it for problems that would make the run fail, such as a syntax error or a file the runner cannot read, and lists them under the script with a suggested fix. A script with errors is not saved until you fix them. Go to [Script validation](/resilience-testing/load-testing/create-a-load-test/script-validation.md) to read the findings and fix them.

***

## Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

<details>

<summary>JavaScript or Java cannot be selected for a Linux VM test</summary>

You can run only Python load tests on a Linux VM. When **Target Type** is **Linux VM**, JavaScript and Java are disabled and marked **Coming Soon**. Go to [Python](/resilience-testing/load-testing/create-a-load-test/locust.md) to create a test that runs on a Linux VM, or select **Kubernetes** to use JavaScript or Java.

</details>

***

## Next steps <a href="#next-steps" id="next-steps"></a>

* Go to [Load testing key concepts](/resilience-testing/load-testing/key-concepts.md) to review virtual users, ramp-up, and load profiles before you choose an engine.
* Go to [Load test templates](/resilience-testing/load-testing/load-test-templates.md) to start from a reusable template instead of a blank test.
* Go to [Analyze load test results](/resilience-testing/load-testing/analyze-results.md) to interpret a run once it finishes.
* Go to [AI summary for load tests](/resilience-testing/load-testing/ai-summary.md) to understand the summary Harness writes for each saved test.

{% @harness-feedback/feedback %}
