Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 51 additions & 41 deletions docs/hyperexecute-run-jmeter-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
})
}}
></script>

> This is currently in the **Beta** version.

## Prerequisites
Expand All @@ -50,6 +49,8 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co

You can use your own project to configure and test it. For demo purposes, we are using the sample repository.

> By default, HyperExecute supports **standard Thread Group** but you can use other custom thread groups as well.

:::tip Sample repo
Download or Clone the code sample for the JMeter Performance Testing from the LambdaTest GitHub repository to run the tests on the HyperExecute.

Expand Down Expand Up @@ -130,56 +131,65 @@ You can analyze the number of requests sent on that particular time.
<img loading="lazy" src={require('../assets/images/hyperexecute/frameworks/performance_testing/logs.png').default} alt="HyperExecute" width="1920" height="868" className="doc_img"/>

## Handling Special Scenarios: Overriding and Default Values
### Scenario 1: Overriding Values via Projects portal
When executing performance tests using HyperExecute, you have the option to override default parameters directly in the Projects portal. Let’s explore a sample scenario to understand how HyperExecute handles these overrides.

You configure the following parameters in the HyperExecute UI:
- **Virtual Users :** (The total number of simulated users for the test): 500
- **Ramp-Up Time :** 1 minute
- **Total Duration :** 2 minutes
- **Regions :** 2 (50% distribution each)
- **Maximum Users per Machine :** 100

#### Resulting Test Distribution:
- **Load Distribution Across Regions :**
- The total 500 virtual users are divided equally between the two regions.
- Each region is allocated 250 users (500 users ÷ 2 regions).

- **Machine Allocation :** Since a single machine can handle a maximum of 100 users, each region requires multiple machines to support its load:
- **Region 1 :** 250 users → 3 machines (lets say it distributed as 84, 83, 83 users per machine).
- **Region 2 :** 250 users → 3 machines (lets say it distributed as 84, 83, 83 users per machine).
<details>
<summary><h4>Scenario 1: Overriding Values via Projects portal</h4></summary>

- **User Allocation per Machine:** Users are evenly distributed among machines to ensure optimal utilization and balanced load:
For example, in Region 1:
Machine 1 = 84 users, Machine 2 = 83 users, Machine 3 = 83 users.
When executing performance tests using HyperExecute, you have the option to override default parameters directly in the Projects portal. Let’s explore a sample scenario to understand how HyperExecute handles these overrides.

#### Key Takeaways:
- **Flexible Overrides :** HyperExecute dynamically adjusts the load distribution and machine allocation based on your specified parameters.
- **Optimal Resource Utilization :** It ensures that no machine exceeds the maximum user threshold, maintaining a balanced and efficient test execution.
- **Region-Specific Allocation :** Users are distributed proportionally based on the defined load percentages for each region.
You configure the following parameters in the HyperExecute UI:
- **Virtual Users :** (The total number of simulated users for the test): 500
- **Ramp-Up Time :** 1 minute
- **Total Duration :** 2 minutes
- **Regions :** 2 (50% distribution each)
- **Maximum Users per Machine :** 100

This approach ensures smooth execution of performance tests and provides precise control over resource utilization, enabling you to simulate real-world scenarios effectively.
#### Resulting Test Distribution:
- **Load Distribution Across Regions :**
- The total 500 virtual users are divided equally between the two regions.
- Each region is allocated 250 users (500 users ÷ 2 regions).

- **Machine Allocation :** Since a single machine can handle a maximum of 100 users, each region requires multiple machines to support its load:
- **Region 1 :** 250 users → 3 machines (lets say it distributed as 84, 83, 83 users per machine).
- **Region 2 :** 250 users → 3 machines (lets say it distributed as 84, 83, 83 users per machine).

- **User Allocation per Machine:** Users are evenly distributed among machines to ensure optimal utilization and balanced load:
For example, in Region 1:
Machine 1 = 84 users, Machine 2 = 83 users, Machine 3 = 83 users.

#### Key Takeaways:
- **Flexible Overrides :** HyperExecute dynamically adjusts the load distribution and machine allocation based on your specified parameters.
- **Optimal Resource Utilization :** It ensures that no machine exceeds the maximum user threshold, maintaining a balanced and efficient test execution.
- **Region-Specific Allocation :** Users are distributed proportionally based on the defined load percentages for each region.

This approach ensures smooth execution of performance tests and provides precise control over resource utilization, enabling you to simulate real-world scenarios effectively.
</details>

### Scenario 2: Default Parameters
In this scenario, you proceed without overriding the default values in the HyperExecute Projects portal. The configuration parameters from your JMeter file and project setup are applied as-is.
<details>
<summary><h4>Scenario 2: Default Parameters</h4></summary>

In this scenario, you proceed without overriding the default values in the HyperExecute Projects portal. The configuration parameters from your JMeter file and project setup are applied as-is.

#### Scenario Details:
- **Total Users :** 250 (Specified in the JMeter .jmx file.)
- **Regions :** 2
- **Machines :** 3 (Each region is allocated three machines.)
#### Scenario Details:
- **Total Users :** 250 (Specified in the JMeter .jmx file.)
- **Regions :** 2
- **Machines :** 3 (Each region is allocated three machines.)

#### Resulting Test Distribution:
- **Load Distribution Across Regions :** The total of 250 virtual users is not divided across the regions because no overrides were applied. Instead, each region receives the full 250 users.
#### Resulting Test Distribution:
- **Load Distribution Across Regions :** The total of 250 virtual users is not divided across the regions because no overrides were applied. Instead, each region receives the full 250 users.

- **Machine Allocation :** Each region is allocated three machines. The total user load for the region is replicated across all three machines in the region:
- **Region 1 :** 3 machines → 250 users per machine.
- **Region 2 :** 3 machines → 250 users per machine.
- **Machine Allocation :** Each region is allocated three machines. The total user load for the region is replicated across all three machines in the region:
- **Region 1 :** 3 machines → 250 users per machine.
- **Region 2 :** 3 machines → 250 users per machine.

- **User Allocation per Machine :** Each machine in both regions processes **250 users**, resulting in a total of 750 users (250 users × 3 machines) per region.
- **User Allocation per Machine :** Each machine in both regions processes **250 users**, resulting in a total of 750 users (250 users × 3 machines) per region.

#### Key Takeaways:
- **Default Behavior :** Without overrides, the user load from the .jmx file is replicated across all configured machines in each region.
- **Resource Replication :** Instead of splitting the total users among machines, HyperExecute applies the same load to each machine in a region.
- **Importance of Overrides :** To distribute users proportionally across machines and regions, use the UI to override parameters such as total users, maximum users per machine, or load percentages.
#### Key Takeaways:
- **Default Behavior :** Without overrides, the user load from the .jmx file is replicated across all configured machines in each region.
- **Resource Replication :** Instead of splitting the total users among machines, HyperExecute applies the same load to each machine in a region.
- **Importance of Overrides :** To distribute users proportionally across machines and regions, use the UI to override parameters such as total users, maximum users per machine, or load percentages.

This behavior highlights how HyperExecute ensures flexibility in test execution while allowing for configuration control based on project requirements.
This behavior highlights how HyperExecute ensures flexibility in test execution while allowing for configuration control based on project requirements.
</details>
Loading