Skip to main content
Transform your testing process with: Real Device Features, Company-wide Licences, & App Percy

Specify devices

You can run your XCUI automation tests on a wide range of iOS devices on BrowserStack. These are not simulators or emulators but physical devices hosted in our data centers. You can specify the device attributes either with or without using a regular expression (regex).

Specify device attributes

While executing your XCUI tests, you can specify a list of iOS devices to run your tests on. In order to do so, you need to pass the devices parameter in the REST API request to start your test execution. You can set its value as shown in the table below.

REST API endpoint :

POST /app-automate/xcuitest/v2/build
Parameter Description Values
devices Specify one or more devices to run tests on. This is required. List of device and OS versions to test on. Each value in the list follows this format : <devicename>-<os version>. Use the device selector below to see the value for your desired devices.
Select device
This device is not available in the free plan. Please upgrade to paid plan.
 

You can easily execute your XCUI tests on multiple devices as shown in an example cURL request below :

curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/build" \
-d '{"devices": ["iPhone X-11", "iPhone 8-11", "iPhone XS-12"], "app": "bs://f7c874f21852ba57957a3fdc33f47514288c4ba4", "testSuite": "bs://e994db8333e32a5863938666c3c3491e778352ff"}' \
-H "Content-Type: application/json"

Use regular expressions to specify device attributes

You can use regular expressions (regex) to select devices to test on instead of providing specific device models in the devices parameter using the builds REST API. Based on the regex you pass, the first available device is allocated from the device pool that matches your specifications. By widening your search through regular expressions, you get better test execution speed by reducing queuing and device tier limits.

The following table provides information on how to use regular expressions for specifying device attributes:

Parameter Description Sample values
devices Required
- device is required.
- os_version is optional. The latest OS version is allocated for the device model if you do not pass this key.
"devices": [{ "device": "iPhone.*", "os_version": "1[56]"}]
This allocates any iPhone device with OS version 15 or 16.

Example cURL request where a regular expression has been used to specify tests to run on any 2 iPhone devices with OS version 15 or 16:

Here are some use cases of using regular expressions to specify device attributes:

Use case Number of parallels consumed Parameter structure
Run test suite on any iPhone 14 models with OS version 16 1 "devices": [{"device": "iPhone 14.*", "os_version": "16.0"}]
Run test suite on any 2 iPhone 14 models with OS version 16 2 "devices": [{"device": "iPhone 14.*", "os_version": "16.0"}, {"device": "iPhone 14.*", "os_version": "16.0"}]
Run test suite on any 1 iPhone 14 model with OS version 16 and any 2 iOS devices with OS version 15 or 16 3 "devices": [{"device": "iPhone 14.*", "os_version": "16.0"}, {"device": ".*", "os_version": "1[56]"}, {"device": ".*", "os_version": "1[56]"}]

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked






Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked






Thank you for your valuable feedback!

Talk to an Expert
Download Copy