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. |
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]"}] |
Related topics
-
Manage your uploaded app or test suite using our upload app REST API and upload test suite REST API.
-
Use the get app API endpoint and list test suites API endpoint to list your recently uploaded apps and test suites.
-
Delete your uploaded app or test suite using the delete app API endpoint and delete test suite API endpoint.
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
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!