Smart Agent YAML Configuration
Smart Agent uses a YAML configuration file to control test execution behavior across all test suites. The configuration file allows you to define properties such as cloud connection details, application under test, device selection criteria, Appium version, retry attempts for failed tests, and selective test execution. By centralizing these settings in a single YAML file, you can easily manage and update your test execution parameters without modifying individual test scripts.
Smart Agent YAML Configuration Reference
cloud:
url: #cloud url mandatory property
accessKey: #cloud accessKey mandatory property
app:
ios:
app: # Optional (e.g cloud:com.experitest.ExperiBank can also be cloud:uniqueName)
bundleID: # Optional (e.g com.experitest.ExperiBank)
appBuildVersion: # Optional
appReleaseVersion: # Optional
android:
app: # Optional (e.g cloud:com.experitest.ExperiBank/.LoginActivity can also be cloud:uniqueName)
packageName: # Optional (e.g com.experitest.ExperiBank )
activity: # Optional (e.g .LoginActivity)
appBuildVersion: # Optional
appReleaseVersion: # Optional
deviceQuery:
androidQuery:
deviceQuery: # Optional (e.g "@os='android' and @category='PHONE'")
iosQuery:
deviceQuery: # Optional (e.g "@os='ios' and @version>='18.0'" )
devicePool: # Optional (e.g SHARED)
appium:
appiumVersion: # Optional (e.g 3.1.0)
run:
maxRetryAttempts: # Optional # Default is 0
testSelection:
# If empty or not specified, all tests will be run
# Use ClassName for entire test class
# Use ClassName#methodName for specific test method
# - com.experitest.DemoTest#sampleTest
The url and accessKey properties are mandatory. Test execution fails if they are not provided.
Retry Attempts
Defines how many times a failed test is re-executed during a test run.
- Retries are triggered only when a test fails
- Each retry runs the same test without modification
- Helps reduce noise caused by transient issues (e.g., network instability)
- If all retries fail, the issue is likely a genuine test or application defect
Retry information is displayed in the Test Reporter to help distinguish between flaky and consistent failures.
Build ID
A unique identifier used to group all test executions that belong to a specific CI/CD run.
- Assigned at the start of a test run
- Used to filter and view all tests executed in that run
- Helps correlate test results with a specific pipeline execution
Use Build ID to isolate and analyze results from a particular build.
Run ID
A unique identifier assigned to each Smart Agent execution instance within a test run.
- Multiple Run IDs can exist under a single Build ID
- Useful in multi-agent or parallel execution scenarios
- Helps isolate results from a specific agent instance
Use Run ID to debug issues related to specific execution environments or agents.
Test Case ID
A unique identifier for each test case, used to track its behavior across multiple executions.
- Remains consistent across test runs
- Enables filtering and analysis of a specific test over time
- Helps identify flaky tests by comparing pass/fail trends
Use Test Case ID to understand long-term test stability and performance.
Configuration Parameters
The following table describes the parameters used in the Smart Agent YAML configuration file.
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
url | cloud.url | Yes | Cloud endpoint used for test execution. | https://cloud.digital.ai |
accessKey | cloud.accessKey | Yes | Authentication key for accessing the cloud environment. | your-access-key |
Application Configuration (iOS)
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
app (iOS) | app.ios.app | No | Cloud reference to the iOS app. Can be bundle or unique name. | cloud:com.experitest.ExperiBank |
bundleID | app.ios.bundleID | No | iOS bundle identifier. | com.experitest.ExperiBank |
appBuildVersion | app.ios.appBuildVersion | No | Specific build version of the iOS app. | 1.0.1 |
appReleaseVersion | app.ios.appReleaseVersion | No | Release version of the iOS app. | 1.0 |
Application Configuration (Android)
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
app (Android) | app.android.app | No | Cloud reference to the Android app. | cloud:com.experitest.ExperiBank/.LoginActivity |
packageName | app.android.packageName | No | Android application package name. | com.experitest.ExperiBank |
activity | app.android.activity | No | Android launch activity. | .LoginActivity |
appBuildVersion | app.android.appBuildVersion | No | Specific build version of the Android app. | 1.0.1 |
appReleaseVersion | app.android.appReleaseVersion | No | Release version of the Android app. | 1.0 |
Device Query Configuration
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
deviceQuery (Android) | deviceQuery.androidQuery.deviceQuery | No | Query to select Android devices. | @os='android' and @category='PHONE' |
deviceQuery (iOS) | deviceQuery.iosQuery.deviceQuery | No | Query to select iOS devices. | @os='ios' and @version>='18.0' |
devicePool | deviceQuery.devicePool | No | Specifies device pool to use. | SHARED |
Appium Configuration
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
appiumVersion | appium.appiumVersion | No | Specifies the Appium version for execution. | 3.1.0 |
Execution Configuration
| Parameter | Path | Required | Description | Default | Example |
|---|---|---|---|---|---|
maxRetryAttempts | run.maxRetryAttempts | No | Number of retry attempts for failed tests. | 0 | 2 |
Test Selection
| Parameter | Path | Required | Description | Example |
|---|---|---|---|---|
testSelection | run.testSelection | No | Controls which tests are executed. If not specified, all tests are run. | com.experitest.DemoTest#sampleTest |
- Use
ClassNameto execute all tests in a class - Use
ClassName#methodNameto execute a specific test method - If
testSelectionis empty or not provided, all tests are executed :::