# A fresh look for capability generator

We are excited to unveil a fresh look for capabilities, along with SDK configuration and improved navigation. Hope you love it as much as we do.

## Capabilities

Capabilities are a series of key-value pairs that allow you to configure your tests on the BrowserStack cloud grid.

Use our Capabilities Generator to configure your test suite in the language of your choice. The capabilities generator lets you select from a comprehensive set of options you can use to customize your tests on the BrowserStack Cloud grid. You can also find out more about each capability by scrolling to our [Capabilities Reference](/content/docs/app-automate/capabilities#reference-main-section/index.html) section.

### Capability generator

#### Other frameworks

[WebdriverIO](/content/docs/app-automate/appium/wdio-browserstack-capabilities/index.html)

Appium - BrowserStack SDK

## capability-builder

### Tabs

#### Appium

**Integration method**

Browserstack SDK

**Non-SDK Integration**

BrowserStack SDK is a plug-and-play solution that enables you to run your entire test suite with no code changes. Using the SDK reduces the integration time from hours to a few minutes.

### Core Capabilities

**Platform**

Select a Platform name to choose the devices from below

Select browser or device combination

You can run multiple threads in parallel

- Parallel Thread #1: Android Samsung Galaxy S22 Ultra
- Parallel Thread #2: Android Google Pixel 8 Pro
- Parallel Thread #3: Android OnePlus 11R

### You can now [use regular expressions for device and OS version capabilities on BrowserStack App Automate.](/content/docs/app-automate/appium/dynamic-device-allocation/index.html)

**Parallels per platform**

The number of parallel threads to be used for each platform set.

**Appium Version**

**Application (.apk/.aab)**

Specify the app to test on

- Radio group label
- Select a recently uploaded app
- Enter the app_url or custom_id of an uploaded app

**Other Apps**

A list of other apps to install prior to running test

**Automation Name**

Set an automation engine for Appium

**Language**

Set the language of app under test

**Locale**

Set device locale

**Mid Session Install Apps**

A list of other apps to install prior to running test

### Project details

- **Project Name**: Specify a name for a logical group of builds
- **Build Name**: Specify a name for a logical group of tests
- **Build Identifier**: Select a dynamic build identifier that appends to the build name and generates a unique name on the BrowserStack dashboard

**Local Connectivity**

Enable BrowserStack Local

Test localhost / internal servers in your network

- True
- False (default)

**Debugging**

- **Debug**: Generate screenshots at various steps in your test
  - True
  - False (default)

**Network Logs**

- Capture network logs for your test
  - True
  - False (default)

**Video**

- Enable video recording during your test
  - True (Default)
  - False

**Appium Logs**

- Enable appium logs for your test
  - True (Default)
  - False

**App profiling report**

- Enable app profiling
  - True
  - False (default)

### browserstack.yml

```
1userName: YOUR_USERNAME
2accessKey: YOUR_ACCESS_KEY
3platforms:
4  - platformName: android
5    platformVersion: "12.0"
6    deviceName: Samsung Galaxy S22 Ultra
7  - platformName: android
8    platformVersion: "14.0"
9    deviceName: Google Pixel 8 Pro
10  - platformName: android
11    platformVersion: "13.0"
12    deviceName: OnePlus 11R
13buildIdentifier: ${BUILD_NUMBER}
```

### Capabilities reference gist file

Expand this section to check out the list of supported Capabilities

```yml
# =============================================================================================================================
# Set BrowserStack Credentials
# =============================================================================================================================
userName: YOUR_USERNAME
accessKey: YOUR_ACCESS_KEY

# Set 'framework' of your test suite. Example, 'testng', 'cucumber', 'cucumber-testng'
framework: testng # Required only for java based frameworks

# =============================================================================================================================
# Parallels per Platform
# =============================================================================================================================
parallelsPerPlatform: 1

# =============================================================================================================================
# Android/iOS Application
# =============================================================================================================================
app: bs://5f5w7g3s5a9b5g6f39fk0 #passing app_url
app: /path/to/app/file/application-debug.apk #Passing absolute path from your local filesystem

# Specify the app path with the custom_id
app:
  path: /Path/to/app
  custom_id: custom_id

appVersion: 2.0

# =============================================================================================================================
# Platforms (devices to test)
# =============================================================================================================================
platforms:
  - platformName: android
    deviceName: Samsung Galaxy S22 Ultra
    platformVersion: 12.0
  - platformName: android
    deviceName: Google Pixel 7 Pro
    platformVersion: 13.0

# =============================================================================================================================
# BrowserStack Reporting
# =============================================================================================================================
projectName: BrowserStack Samples
buildName: browserstack build
buildIdentifier: '${BUILD_NUMBER}'

# =============================================================================================================================
# Test Configuration Capabilities
# =============================================================================================================================
browserstackLocal: true # <boolean> (Default true)
# Options to be passed to BrowserStack local in-case of advanced configurations
browserStackLocalOptions:
  forcelocal: true
  localIdentifier: randomstring

appiumVersion: 2.0.0
idleTimeout: 90
acceptInsecureCerts: true
httpProxy: http://user:pwd@127.0.0.1:1234
httpsProxy: https://user:pwd@127.0.0.1:1234

# =============================================================================================================================
# Debugging options
# =============================================================================================================================
video: true

debug: true
networkLogs: true
deviceLogs: true
appiumLogs: true
captureContent: false

# =============================================================================================================================
# Device Feature Capabilities
# =============================================================================================================================
resignApp: true
customNetwork: 1000
networkProfile: 4g-lte-advanced-good
deviceOrientation: portrait
geoLocation: US
timezone: New_York
language: Fr
locale: Fr

# =============================================================================================================================
# Appium Capabilities
# =============================================================================================================================
automationName: UIAutomator2
autoGrantPermissions: true
newCommandTimeout: 60

# =============================================================================================================================
# Test Reporting & Analytics
# =============================================================================================================================
testObservability: true
```

### Capabilities Reference

#### Appium - BrowserStack SDK

| BrowserStack specific capabilities |  |
| --- | --- |
| **userName**<br> | For running your Selenium and Appium tests on BrowserStack it, requires a username and an access key for authenticating the user. This capability can be used to set the username. | 
| **accessKey**<br> | For running your Selenium and Appium tests on BrowserStack it, requires a username and an access key for authenticating the user. This capability can be used to set the access key. |
| **framework**<br> | Specify the language framework for your test.  |
| **app**<br> | Specify the app you want to test. | 
| **appVersion**<br> | Configure which version your test needs to run on. | 
| **parallelsPerPlatform**<br> | Specify the number of parallel threads to be used for each platform set. |

### Test configuration capabilities

| SDK-Capability | Values |
| --- | --- |
| **projectName**<br> | Allows the user to specify a name for a logical group of builds. |
| **buildName**<br> | Allows the user to specify a name for a logical group of tests. |
| **buildIdentifier**<br> | A unique identifier to logically group multiple test sessions together. |
| **buildTag**<br> | A custom tag for your builds. |
| **browserstackLocal**<br> | Use this capability to test your locally hosted websites on BrowserStack. |
| **forcelocal**<br> | Use this capability to resolve all your traffic via BrowserStack Local tunnel. |
| **localIdentifier**<br> | Use this capability to specify the unique Local Testing connection name in your test. |
| **debug**<br> | Required if you want to generate screenshots at various steps in your test. |
| **networkLogs**<br> | Required if you want to capture network logs for your test. |
| **video**<br> | Required if you want to enable video recording during your test. |
| **deviceLogs**<br> | Capture device logs for your test. |
| **appiumLogs**<br> | Capture raw Appium logs for your test. |
| **captureContent**<br> | Capture response payload in network logs. |
| **geoLocation**<br> | Use this capability to simulate website and mobile behavior from different locations. |
| **timezone**<br> | Use this capability to run your tests on a custom timezone. |
| **idleTimeout**<br> | BrowserStack triggers BROWSERSTACK_IDLE_TIMEOUT error when a session is left idle for more than 90 seconds. |
| **acceptInsecureCerts**<br> | Avoid invalid certificate errors while using self-signed certificate to test your app. |

### Mobile capabilities

| SDK-Capability | Values |
| --- | --- |
| **deviceName**<br> | Specifies a particular mobile device for the test environment. |
| **platforms**<br> | Specify all the device combinations you want to test on. |
| **platformName**<br> | Specify all the device combinations you want to test on. |
| **platformVersion**<br> | Specifies a particular mobile device for the test environment. |
| **deviceOrientation**<br> | Set the screen orientation of mobile device. |
| **customNetwork**<br> | Required if you want to simulate the custom network condition. |
| **networkProfile**<br> | Required if you want to simulate different network conditions. |

### Miscellaneous capabilities

| SDK-Capability | Values |
| --- | --- |
| **appProfiling**<br> | Enable detailed app performance profiling. |
| **interactiveDebugging**<br> | Interact, and debug any ongoing test session. |
| **appStoreConfiguration** | Configure app store credentials. |
| **midSessionInstallApps**<br> | Install app(s) in between a test session. |
| **enableBiometric**<br> | Enable Biometric Authentication. |
| **enablePasscode**<br> | Use passcode-protected devices to run tests. |
| **updateIosDeviceSettings**<br> | Set iOS device settings such as dark mode. |
| **enableApplePay**<br> | Test Apple Pay in your test session. |
| **nativeWebTap**<br> | Enable Apple Pay payment screen. |
| **enableAudioInjection**<br> | Use your audio files in the test. |
| **enableSim**<br> | Obtain a device with SIM |
| **simOptions**<br> | Set SIM device configuration. |
| **testObservability**<br> | Advanced test reporting and debugging tool that helps analyze test failures.
