diff --git a/assets/images/hyperexecute/frameworks/performance_testing/10.png b/assets/images/hyperexecute/frameworks/performance_testing/10.png deleted file mode 100644 index 0f4c3db1e..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/10.png and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/11.png b/assets/images/hyperexecute/frameworks/performance_testing/11.png deleted file mode 100644 index 6016ae63f..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/11.png and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/7.png b/assets/images/hyperexecute/frameworks/performance_testing/7.png deleted file mode 100644 index 6867b2700..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/7.png and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/8.png b/assets/images/hyperexecute/frameworks/performance_testing/8.png deleted file mode 100644 index 4cdcec0f2..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/8.png and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/9.png b/assets/images/hyperexecute/frameworks/performance_testing/9.png deleted file mode 100644 index 3c8787c83..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/9.png and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/error-reports.png b/assets/images/hyperexecute/frameworks/performance_testing/error-reports.png new file mode 100644 index 000000000..621f2a4ff Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/error-reports.png differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/execute.gif b/assets/images/hyperexecute/frameworks/performance_testing/execute.gif deleted file mode 100644 index 7fb7ead9f..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/execute.gif and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/execute.mp4 b/assets/images/hyperexecute/frameworks/performance_testing/execute.mp4 new file mode 100644 index 000000000..122140b6b Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/execute.mp4 differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/logs.png b/assets/images/hyperexecute/frameworks/performance_testing/logs.png new file mode 100644 index 000000000..82b6a5819 Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/logs.png differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/request-stats.png b/assets/images/hyperexecute/frameworks/performance_testing/request-stats.png new file mode 100644 index 000000000..1004455d6 Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/request-stats.png differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/setup.gif b/assets/images/hyperexecute/frameworks/performance_testing/setup.gif deleted file mode 100644 index 6ae31342f..000000000 Binary files a/assets/images/hyperexecute/frameworks/performance_testing/setup.gif and /dev/null differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/setup.mp4 b/assets/images/hyperexecute/frameworks/performance_testing/setup.mp4 new file mode 100644 index 000000000..2c5b109d4 Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/setup.mp4 differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/summary-report.png b/assets/images/hyperexecute/frameworks/performance_testing/summary-report.png new file mode 100644 index 000000000..2494a0e1e Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/summary-report.png differ diff --git a/assets/images/hyperexecute/frameworks/performance_testing/timeline-report.png b/assets/images/hyperexecute/frameworks/performance_testing/timeline-report.png new file mode 100644 index 000000000..edbc9ff15 Binary files /dev/null and b/assets/images/hyperexecute/frameworks/performance_testing/timeline-report.png differ diff --git a/docs/hyperexecute-run-jmeter-tests.md b/docs/hyperexecute-run-jmeter-tests.md index 45487b4f3..e3b426fe8 100644 --- a/docs/hyperexecute-run-jmeter-tests.md +++ b/docs/hyperexecute-run-jmeter-tests.md @@ -41,37 +41,47 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co }) }} > - > This is currently in the **Beta** version. ## Prerequisites -- Setup the [JMeter Test Plan](https://jmeter.apache.org/usermanual/build-web-test-plan.html) using Apache JMeter GUI. +- Setup the [JMeter Test Plan](https://jmeter.apache.org/usermanual/build-web-test-plan.html) using Apache JMeter GUI. After setting up a Test Plan, now you need to associate your test cases and execute it as well via HyperExecute. + +You can use your own project to configure and test it. For demo purposes, we are using the sample repository. -After setting up a Test Plan, now you need to associate your test cases and execute it as well via HyperExecute. +> 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. + +Image View on GitHub +::: ## Step 1: Setup your JMeter Project -- Go to the [HyperExecute Project's Dashboard](https://hyperexecute.lambdatest.com/hyperexecute/projects) and click on the **Setup new project** button. -- Browse and Upload the test plans that you have created. +- Go to the [HyperExecute Project's Dashboard](https://hyperexecute.lambdatest.com/hyperexecute/projects) and click on the **New Project** button. +- Browse and Upload your JMeter test files to create a new performance test project. - Click on the **Save** button -HyperExecute - -## Step 2: Execute Your Test Plans + +## Step 2: Execute your Test Plans - Select your desired **.jmx** file and click on the **Run** button. - Configure the following parameters to perform the testing and click on the **Continue** button - - **Total Users :** This indicates the number of users you intend to test for. - **Duration (min) :** This specifies the desired duration for the test. - **Ramp-up Time (min) :** This specifies the amount of time it should take to reach the peak test load. - **Total Load Distribution :** Configure the **regions** in which you want to distribute the load testing as per the % of the users. + - **Split CSV :** Enables splitting the input data from a CSV file among different threads or regions. This ensures organized data utilization across parallel executions. + - **Job Labels :** Add meaningful labels or tags to test executions for better identification and traceability in logs and reports. + - **Machine count :** Specify the number of machines (or nodes) to use for parallel test execution. This parameter is essential for scaling test workloads or reducing execution time. :::info **Supported Regions :** HyperExecute supports the following regions for performance testing - West US 2 (Moses Lake, Washington) -- East US (Richmond, Virginia) +- East US (Richmond, Virginia) (**default**) - Central India (Pune, Maharashtra) - Southeast Asia (Singapore) - Brazil South (São Paulo State, Brazil) @@ -80,7 +90,9 @@ After setting up a Test Plan, now you need to associate your test cases and exec - Click on the **Run Test** button. -HyperExecute + ## Step 3: Analyze Your Project Performance @@ -96,24 +108,88 @@ After setting up a Test Plan, now you need to associate your test cases and exec - **Load** and **Response Time** graph. - Additional details like **regions** and test duration. -HyperExecute +HyperExecute ### Timeline Report -HyperExecute +HyperExecute ### Request Stats You can analyze the number of requests sent on that particular time. -HyperExecute +HyperExecute ### Errors - Here you can check the Error Code type, Error Count, percentage of that error, and the percent of error in all the samples. -HyperExecute +HyperExecute ### Logs - You can check the logs of your Jobs executed. -HyperExecute \ No newline at end of file +HyperExecute + +## 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). + + - **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. +
+ +
+

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. + + #### 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. + + - **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. + + #### 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. +