Upload & manage XCUI test-suites via App Automate API
Upload and manage your test-suites for automated mobile testing using XCUITest via the BrowserStack App Automate API. Run automated app tests on real devices.
To test your native and hybrid apps on BrowserStack using XCUITest, you also need to upload your test-suite (.zip file) to BrowserStack servers. Use our REST API endpoints to upload and manage your test-suites on BrowserStack.
Upload a test-suite
Upload an XCUI test-suite (.zip file). There are two ways to upload the test-suite :
- Upload from filesystem : Use this option if your test-suite resides on your local machine or CI/CD server.
- Upload using public URL : Use this option when the test-suite is hosted on a remote server (e.g. S3 bucket) and it’s downloadable via a publicly accessible URL.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suite" \
-F "file=@/path/to/test/file/app-debug-SampleXCUITest.zip" \
-F "custom_id=SampleTest"
-
file File
File to upload. Ensure that the request’s content type is set to
multipart/form-data. In cURL, you can do this using-Foption. Eitherfileorurlparameter is required. -
url String
Remote URL to your test-suite. Ensure that its a publicly accessible URL as BrowserStack will attempt to download the test-suite from this location. Either
fileorurlparameter is required. -
custom_id String
Custom ID for the test-suite. Accepted characters are
A-Z,a-z,0-9,.,-,_. All other characters are ignored. Character limit is 100. Refer to our custom ID documentation to know more.
Response attributes 200 application/json
Response
{
"test_suite_name": "app-debug-SampleXCUITest.zip",
"test_suite_url": "bs://<hashed_test_suite_id>",
"test_suite_id": "<hashed_test_suite_id>",
"uploaded_at": "2020-09-09 15:35:00 UTC",
"custom_id": "SampleTest",
"framework": "xcuitest",
"expiry": "2020-10-09 15:35:00 UTC"
}
-
test_suite_name String
Filename of the uploaded test-suite.
-
test_suite_url String
Unique identifier returned upon successful upload of your test-suite on BrowserStack. This value can be used later to specify the test-suite for your XCUI test execution.
Example:bs://c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
test_suite_id String
Unique identifier returned upon successful upload of your test-suite on BrowserStack.
Example:c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
uploaded_at String
Test-suite upload timestamp.
-
framework String
Name of the automation framework. This is set to
xcuitestby default. -
custom_id String
Custom ID defined for the uploaded test-suite.
Example:SampleTest. Accepted characters areA-Z,a-z,0-9,.,-,_. All other characters are ignored. Character limit is 100. -
expiry String
By default, an uploaded test-suite expires in 30 days. Upon expiry, the uploaded test-suite is deleted from BrowserStack servers and thus can no longer be tested.
List uploaded test-suites
Retrieve a list of recently uploaded test-suites. By default, it returns the last 10 uploaded test-suites from your BrowserStack group.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites"
# Limit the number of test-suites to be displayed using the "limit" parameter
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites?limit=5"
# Fetch test-suites from a specific position using the "offset" parameter
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites?limit=10&offset=20"
# List recent test-suites using customID
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites?custom_id=SampleTest"
-
limit String
Specify the number of uploaded test suites to fetch. The default value is 10.
-
offset String
Fetch test suites starting from a specific position in the list. Use together with
limitto paginate through results. -
custom_id String
Filter uploaded test suites by custom ID. This is a case-sensitive exact match on the custom ID set at upload time. Accepted characters are
A-Z,a-z,0-9,.,-,_. All other characters are ignored. Character limit is 100.
Response attributes 200 application/json
Response
{
"test_suites" : [
{
"test_suite_name": "app-debug-SampleXCUITest.zip",
"test_suite_url": "bs://<hashed_test_suite_id>",
"test_suite_id": "<hashed_test_suite_id>",
"uploaded_at": "2020-09-09 15:35:00 UTC",
"custom_id": "SampleTest",
"framework": "xcuitest",
"expiry": "2020-10-09 15:35:00 UTC"
},
{...}
]
}
-
test_suites Array[Object]
â–¶ SHOW VALUESList of recently uploaded test-suites.
-
test_suite_name String
Filename of the uploaded test-suite.
-
test_suite_url String
Unique identifier returned upon successful upload of your test-suite on BrowserStack. This value can be used later to specify the test-suite for your test execution.
Example:bs://c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
test_suite_id String
Unique identifier returned upon successful upload of your test-suite on BrowserStack.
Example:c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
uploaded_at String
Test-suite upload timestamp.
-
framework String
Name of the automation framework. This is set to by default.
-
custom_id String
Custom ID defined for the uploaded test-suite.
Example:SampleTest. Accepted characters areA-Z,a-z,0-9,.,-,_. All other characters are ignored. Character limit is 100. -
expiry String
By default, an uploaded test-suite expires in 30 days. Upon expiry, the uploaded test-suite is deleted from BrowserStack servers and thus can no longer be tested.
-
Get test-suite details
Get details of an uploaded test-suite.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X GET "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites/{test_suite_id}"
-
test_suite_id* String
Test-suite ID of the uploaded test-suite.
Response attributes 200 application/json
Response
{
"test_suite" : {
"test_suite_name": "app-debug-SampleXCUITest.zip",
"test_suite_url": "bs://<hashed_test_suite_id>",
"test_suite_id": "<hashed_test_suite_id>",
"uploaded_at": "2020-09-09 15:35:00 UTC",
"custom_id": "SampleTest",
"framework": "xcuitest",
"expiry": "2020-10-09 15:35:00 UTC"
}
}
-
test_suite Object
â–¶ SHOW VALUESDetails of the uploaded test-suite
-
test_suite_name String
Filename of the uploaded test-suite.
-
test_suite_url String
Unique identifier returned upon successful upload of your test-suite on BrowserStack. This value can be used later to specify the test-suite for your test execution.
Example:bs://c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
test_suite_id String
Unique identifier returned upon successful upload of your test-suite on BrowserStack.
Example:c8ddcb5649a8280ca800075bfd8f151115bba6b3 -
uploaded_at String
Test-suite upload timestamp.
-
framework String
Name of the automation framework. This is set to by default.
-
custom_id String
Custom ID defined for the uploaded test-suite.
Example:SampleTest. Accepted characters areA-Z,a-z,0-9,.,-,_. All other characters are ignored. Character limit is 100. -
expiry String
By default, an uploaded test-suite expires in 30 days. Upon expiry, the uploaded test-suite is deleted from BrowserStack servers and thus can no longer be tested.
-
Delete a test-suite
Delete an uploaded test suite. Note that test suites once deleted cannot be recovered.
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X DELETE "https://api-cloud.browserstack.com/app-automate/xcuitest/v2/test-suites/<test_suite_id>"
-
test_suite_id* String
Test-suite ID of the uploaded test-suite.
Response attributes 200 application/json
Response
{
"success": {
"message": "Test Suite with url bs://<test_suite_id> was deleted."
}
}
-
success Object
â–¶ SHOW VALUESThis is returned when the test-suite is successfully deleted from BrowserStack servers.
-
message String
Confirmation message for test-suite deletion.
-
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.