Skip to main content

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
info

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.

ParameterPathRequiredDescriptionExample
urlcloud.urlYesCloud endpoint used for test execution.https://cloud.digital.ai
accessKeycloud.accessKeyYesAuthentication key for accessing the cloud environment.your-access-key

Application Configuration (iOS)

ParameterPathRequiredDescriptionExample
app (iOS)app.ios.appNoCloud reference to the iOS app. Can be bundle or unique name.cloud:com.experitest.ExperiBank
bundleIDapp.ios.bundleIDNoiOS bundle identifier.com.experitest.ExperiBank
appBuildVersionapp.ios.appBuildVersionNoSpecific build version of the iOS app.1.0.1
appReleaseVersionapp.ios.appReleaseVersionNoRelease version of the iOS app.1.0

Application Configuration (Android)

ParameterPathRequiredDescriptionExample
app (Android)app.android.appNoCloud reference to the Android app.cloud:com.experitest.ExperiBank/.LoginActivity
packageNameapp.android.packageNameNoAndroid application package name.com.experitest.ExperiBank
activityapp.android.activityNoAndroid launch activity..LoginActivity
appBuildVersionapp.android.appBuildVersionNoSpecific build version of the Android app.1.0.1
appReleaseVersionapp.android.appReleaseVersionNoRelease version of the Android app.1.0

Device Query Configuration

ParameterPathRequiredDescriptionExample
deviceQuery (Android)deviceQuery.androidQuery.deviceQueryNoQuery to select Android devices.@os='android' and @category='PHONE'
deviceQuery (iOS)deviceQuery.iosQuery.deviceQueryNoQuery to select iOS devices.@os='ios' and @version>='18.0'
devicePooldeviceQuery.devicePoolNoSpecifies device pool to use.SHARED

Appium Configuration

ParameterPathRequiredDescriptionExample
appiumVersionappium.appiumVersionNoSpecifies the Appium version for execution.3.1.0

Execution Configuration

ParameterPathRequiredDescriptionDefaultExample
maxRetryAttemptsrun.maxRetryAttemptsNoNumber of retry attempts for failed tests.02

Test Selection

ParameterPathRequiredDescriptionExample
testSelectionrun.testSelectionNoControls which tests are executed. If not specified, all tests are run.com.experitest.DemoTest#sampleTest
  • Use ClassName to execute all tests in a class
  • Use ClassName#methodName to execute a specific test method
  • If testSelection is empty or not provided, all tests are executed :::