diff --git a/assets/images/hyperexecute/yaml/output.mp4 b/assets/images/hyperexecute/yaml/output.mp4
new file mode 100644
index 000000000..231ed2cc6
Binary files /dev/null and b/assets/images/hyperexecute/yaml/output.mp4 differ
diff --git a/docs/getting-started-with-hyperexecute.md b/docs/getting-started-with-hyperexecute.md
index cacc3cead..dd71ff597 100644
--- a/docs/getting-started-with-hyperexecute.md
+++ b/docs/getting-started-with-hyperexecute.md
@@ -26,6 +26,7 @@ slug: getting-started-with-hyperexecute/
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
+import HyperExecuteSupportedLanguageDocs from '../src/component/SupportedLanguages/HyperExecuteSupportedLanguageDocs';
+You can also generate the HyperExecute YAML directly from the HyperExecute Portal. To accomplish this, follow the below mentioned steps:
+
+**Step 1:** Go to [HyperExecute dashboard](https://hyperexecute.lambdatest.com/hyperexecute), click on the **Help Center** and select **Generate YAML** from the dropdown.
+
+**Step 2:** Select your preferred test automation framework.
+
+**Step 3:** You will be redirected to the configuring section, where you can configure the HyperExecute YAML parameters. Click on **Generate YAML** button.
+
+**Step 4:** Once done, you can download the YAML file using the small icon on top. Alternatively, you can copy the contents of the file and modify them further according to your needs on your favorite IDE.
+
+
+
+> HyperExecute supports multiple languages and testing frameworks. See the comprehensive list & samples [here](/support/docs/hyperexecute-supported-languages-and-frameworks/).
+
+## Sample HyperExecute YAML
+A sample HyperExecute YAML file looks like this:
+
+```yaml
+---
+version: 0.1
+runson: linux
+
+autosplit: true
+concurrency: 2
+
+pre:
+ - mvn dependency:resolve
+
+testDiscovery:
+ type: raw
+ mode: static
+ command: grep 'test name' xml/testng_linux.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/>//g'
+
+testRunnerCommand: mvn test -Dplatname=linux -Dmaven.repo.local=./.m2 dependency:resolve -DselectedTests=$test
+
+retryOnFailure: true
+maxRetries: 1
+
+jobLabel: [selenium-testng, linux, v1, autosplit]
+```
\ No newline at end of file
diff --git a/docs/hyperexecute-how-to-configure-os-and-browser.md b/docs/hyperexecute-how-to-configure-os-and-browser.md
new file mode 100644
index 000000000..a16341508
--- /dev/null
+++ b/docs/hyperexecute-how-to-configure-os-and-browser.md
@@ -0,0 +1,59 @@
+---
+id: hyperexecute-how-to-configure-os-and-browser
+title: How to configure Operating System and Browser in your Test Suite
+hide_title: false
+sidebar_label: How to Configure OS and Browser
+description: Discover the correct way to configure the operating system and the browser capabilities in your codebase to execute in the HyperExecute platform.
+keywords:
+ - LambdaTest Hyperexecute
+ - LambdaTest Hyperexecute help
+ - LambdaTest Hyperexecute documentation
+ - How to Find the Correct Concurrency
+url: https://www.lambdatest.com/support/docs/hyperexecute-how-to-configure-os-and-browser/
+site_name: LambdaTest
+slug: hyperexecute-how-to-configure-os-and-browser/
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import HyperExecuteSupportedLanguageRepos from '../src/component/SupportedLanguages/HyperExecuteSupportedLanguageRepos';
+
+
+This documentation will guide you through configuring the Operating System and Browser for your test suite on HyperExecute. We will cover the step-by-step method to implement the configuration for various test frameworks supported by HyperExecute. Each section provides practical examples to help you integrate HyperExecute with your existing automation suite.
+
+You can easily implement it on your own project. For demo purposes, we are using the TestNG sample repository. You can also access the sample repository for your desired framework:
+
+
+
+## Step 1: Update the LambdaTest Capabilities in your test suite
+
+## Step 2: Configure your HyperExecute YAML file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/hyperexecute-inherit-config.md b/docs/hyperexecute-inherit-config.md
index 5a7afb603..caee89e9e 100644
--- a/docs/hyperexecute-inherit-config.md
+++ b/docs/hyperexecute-inherit-config.md
@@ -42,7 +42,6 @@ YAML inheritance in HyperExecute allows you to reuse common configuration settin
For example, you can create a base YAML file with common settings like **browsers**, **OS versions**, and **devices**, and then inherit from it in other YAML files for different environments or test types. This **reduces boilerplate code and errors** while making it easy to switch between environments and manage complex test execution configurations.
## Prerequisites
-
- You must inherit a YAML file of the same version as your original file.
- The mode of execution, i.e. Matrix, AutoSplit, or Hybrid, must remain the same in both of the YAML files.
- The files that you want to inherit cannot be cyclically dependent. If you want to inherit **A.yaml** in **B.yaml**, then **A.yaml** cannot inherit **B.yaml**.
@@ -61,7 +60,7 @@ base:
-- If the configuration YAML file is passed via the [HyperExecute CLI](/support/docs/hyperexecute-cli-run-tests-on-hyperexecute-grid/), then it will be treated as the main YAML. Hence, all values of the parent YAML will be overwritten by the values from the configuration YAML file. However, if the configuration YAML file has a flag that contains the Boolean value _False_ or numeric value '0', then the values from the parent YAML are used (if they are present).
+- If the configuration YAML file is passed via the [HyperExecute CLI](/support/docs/hyperexecute-cli-run-tests-on-hyperexecute-grid/), then it will be treated as the main YAML. Hence, all values of the base YAML will be overwritten by the values from the parent YAML file. However, if the configuration YAML file has a flag that contains the Boolean value False or numeric value '0', then the values from the parent YAML are used (if they are present).
> **Note**: If you want to inherit two YAML files, then the second YAML file takes precedence. If a key is not defined in the first file or the main YAML file, but it is defined in the second, then that key will take the value of the second file. Similarly, if a key is defined in the two YAML files that are inherited but not in the main file, then the value defined in the second file is used.
@@ -72,151 +71,95 @@ Go through the example attached below to understand how the resultant YAML will
```yaml
---
version: 0.1
-runson: win
-
-base:
- yamls:
- - ./level1/base1.yaml
+# highlight-next-line
+runson: linux
autosplit: true
-concurrency: 2
+# highlight-next-line
+concurrency: 4
-retryOnFailure: false
-maxRetries: 5
-
-env:
- CACHE_DIR: m2_cache_dir
+base:
+ yamls:
+ - ./base.yaml
-preDirectives:
- commands:
- - pwd
- - echo yaml/level0/main.yaml
- - echo yaml/level0/level1/base1.yaml
- - mvn dependency:resolve
+pre:
+ - mvn dependency:resolve
+# highlight-start
testDiscovery:
- type: raw
- command: grep 'test name' xml/testng_win.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/\x3e//g'
-
-testRunnerCommand: mvn test `-Dplatname=win `-Dmaven.repo.local=./.m2 dependency:resolve `-DselectedTests=$test
+ mode: remote
+ command: grep 'test name' xml/testng_linux.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/>//g'
+# highlight-end
-postDirectives:
- commands:
- - ls
- - pwd
+testRunnerCommand: mvn test -Dplatname=linux -Dmaven.repo.local=./.m2 dependency:resolve -DselectedTests=$test
-mergeArtifacts: false
-
-uploadArtefacts:
- - name: ExecutionSnapshots
- path:
- - target/surefire-reports/html/**
+retryOnFailure: true
+maxRetries: 1
-jobLabel: ['parent']
+# highlight-next-line
+jobLabel: [selenium-testng, linux, v1, autosplit]
```
### Base YAML
```yaml
---
version: 0.1
-runson: mac
+# highlight-next-line
+runson: win
autosplit: true
-concurrency: 1
-
-retryOnFailure: true
-maxRetries: 5
-
-env:
- CACHE_DIR: m2_cache_dir
+# highlight-next-line
+concurrency: 2
-preDirectives:
- commands:
- - pwd
- - mvn dependency:resolve
+pre:
+ - mvn dependency:resolve
+# highlight-start
testDiscovery:
type: raw
mode: static
+ command: grep 'test name' xml/testng_linux.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/>//g'
+# highlight-end
-testRunnerCommand: echo test
+testRunnerCommand: mvn test -Dplatname=linux -Dmaven.repo.local=./.m2 dependency:resolve -DselectedTests=$test
-postDirectives:
- commands:
- - ls
- - pwd
-
-mergeArtifacts: false
-taskIdentifierInNonConflictingArtefacts: true
-uploadArtefacts:
- - name: ExecutionSnapshots
- path:
- - target/surefire-reports/html/**
+retryOnFailure: true
+maxRetries: 1
-jobLabel: ['base1']
+# highlight-next-line
+jobLabel: [selenium-testng, autosplit]
```
### Resultant YAML
```yaml
----
version: 0.1
-runson: mac
+# highlight-next-line
+runson: linux
autosplit: true
-concurrency: 1
+# highlight-next-line
+concurrency: 4
-retryOnFailure: true
-maxRetries: 5
-
-env:
- CACHE_DIR: m2_cache_dir
+base:
+ yamls:
+ - ./base.yaml
-preDirectives:
- commands:
- - pwd
+pre:
- mvn dependency:resolve
+# highlight-start
testDiscovery:
- type: raw
- mode: static
- command: grep 'test name' xml/testng_win.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/\x3e//g'
+ command: grep 'test name' xml/testng_linux.xml | awk '{print$2}' | sed 's/name=//g' | sed 's/>//g'
+ mode: remote
+# highlight-end
-testRunnerCommand: mvn test `-Dplatname=win `-Dmaven.repo.local=./.m2 dependency:resolve `-DselectedTests=$test
+testRunnerCommand: mvn test -Dplatname=linux -Dmaven.repo.local=./.m2 dependency:resolve -DselectedTests=$test
-postDirectives:
- commands:
- - ls
- - pwd
-
-mergeArtifacts: false
-taskIdentifierInNonConflictingArtefacts: true
-uploadArtefacts:
- - name: ExecutionSnapshots
- path:
- - target/surefire-reports/html/**
-
-jobLabel: ['base1']
+maxRetries: 1
+retryOnFailure: true
+# highlight-next-line
+jobLabel: [selenium-testng, linux, v1, autosplit]
```
-To learn more about the HyperExecute YAML file, go through [this page](/support/docs/deep-dive-into-hyperexecute-yaml).
-
-
\ No newline at end of file
+To learn more about the HyperExecute YAML file, go through [this page](/support/docs/deep-dive-into-hyperexecute-yaml).
\ No newline at end of file
diff --git a/docs/hyperexecute-supported-languages-and-frameworks.md b/docs/hyperexecute-supported-languages-and-frameworks.md
index 4b3ddb954..fabcb5287 100644
--- a/docs/hyperexecute-supported-languages-and-frameworks.md
+++ b/docs/hyperexecute-supported-languages-and-frameworks.md
@@ -24,6 +24,7 @@ slug: hyperexecute-supported-languages-and-frameworks/
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
+import HyperExecuteSupportedLanguageDocs from '../src/component/SupportedLanguages/HyperExecuteSupportedLanguageDocs';