Skip to main content

Migrating to Appium on Sauce

DEPRECATED

TestObject End-of-life

TestObject was discontinued September 1, 2021. If you have any questions, please reach out to your Customer Success Manager or Sauce Labs Support.

What You'll Need#

Sauce Labs User Management#

Confirm that your TestObject entitlements and platform privileges have carried over to Sauce Labs by reviewing your organization's Team Management page, where you can assign users to teams, bestow user privileges, and manage device/VM concurrency.

Modifying Real Device Test Builds#

Follow the steps outlined here to modify your existing test builds to utilize and reach the new unified platform.

Step 1: Replace Credentials#

Throughout your test files, replace your TestObject credentials with your Sauce Labs credentials.

We recommend using Environment Variables for Authentication in order to reduce hard coding and protect your personal information from exposure.

Step 2: Replace Remote URL Endpoint#

Replace the Remote URL endpoint in your tests to access the Sauce Labs platform, for example:

RegionTestObject URLSauce Labs URL
UShttps://us1.appium.testobject.com/wd/hubhttps://ondemand.us-west-1.saucelabs.com/wd/hub
EUhttps://eu1.appium.testobject.com/wd/hubhttps://ondemand.eu-central-1.saucelabs.com/wd/hub

If you're using Sauce Connect Proxy, our REST API, or any other features in conjunction with real device testing, consult the documentation for that feature for applicable Sauce Labs endpoints.

Step 3: Change Device Test Options#

Not all device model and operating system combinations will carry over from the TestObject platform to Sauce Labs. You may need to adjust your device capabilities in your test configuration.

important

Real Device testing on Sauce Labs is data center contingent, so you will only have access to the public and private devices available within the data center specified for the test, rather than the entire body of devices across all data centers. Each data center includes a very similar variety of devices and operating systems to provide a broad selection for testing, but depending on your organization’s concurrency allowances, this separation may affect the number of tests you can run in parallel.

Device Allocations#

To ensure your preferred device allocations will still work when you move from TestObject to Sauce Labs, view the list of available devices for your region by logging into the Sauce Labs platform and going to Live > Cross-Browser > Mobile Real. For a full, non-region specific list of supported devices and platforms, see Supported Browsers and Devices.

If you switch your Sauce Labs Data Center in the UI, you may see a different set of devices. Each Data Center stores a different set of mobile real devices.

Appium Capabilities#

Validate that the Appium capabilities you've used on TestObject will still work when you move tests to Sauce Labs; see Appium Capabilities for Real Device Testing.

Step 4: Upload your Application to Sauce Application Storage#

Any mobile apps in TestObject storage will no longer be accessible after TestObject reaches end-of-life. Please upload these to Sauce Application Storage.

  • For instructions on uploading your mobile apps (.apk or .ipa files) to Sauce Labs, see Application Storage.
  • Update all app references in your test code capabilities. For example, in the app capability, you must use storage:<app-id> or storage:filename=<some-app.apk>, rather than storage:filename=<myapp.apk> as you would in TestObject. See Using Appium for Automated Mobile App Testing for more information.
  • Migrate your MicroSoft App Center Integration to a Sauce Labs Data Center using a post-build script.

Step 5: Replace REST API Endpoints#

Support for all TestObject REST API endpoints will cease in conjunction with the TestObject end-of-life event.

The chart below contains Sauce Labs-equivalent endpoints to use in place of the TestObject endpoints.

Base URL#

Update the TestObject base URL https://app.testobject.com/api/rest/ to the Base URL matching your Sauce Labs data center:

Data CenterAPI Base URL
UShttps://api.us-west-1.saucelabs.com/
Europehttps://api.eu-central-1.saucelabs.com/

Storage API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
storage/uploadv1/storage/upload

Appium Watcher API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v2/appium/session/{sessionId}/skiptestDeprecated
v2/appium/session/{sessionId}/testDeprecated

Appium Suites API#

The following TestObject Appium suites API endpoints will be deprecated and not replaced with a Sauce Labs equivalent. Please review the Sauce Labs Insights API for alternatives.

  • v2/appium/suites/{batchId}
  • v2/appium/suites/{batchId}/deviceIds
  • v1/appium/suites/{batchId}/reports/start
  • v2/appium/suites/{batchId}/reports/{batchReportId}/finish
  • v2/appium/suites/{batchId}/reports/{batchReportId}/results/{testReportId}/finish
  • v2/appium/suites/{batchId}/reports/{batchReportId}/results/{testReportId}/skip

Devices API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v2/devicesv1/rdc/devices
v2/devices/available[v1/rdc/devices/available(https://docs.saucelabs.com/dev/api/rdc#get-available-devices)]
v2/devices/{deviceDescriptorId}v1/rdc/devices/$DEVICE_ID

Test Reports API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v2/reports/{testReportId}v1/rdc/jobs/$JOB_ID

Session Report API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v1/devices/reportsv1/rdc/jobs

Logs API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
/v2/logs/{testReportId}/appium
/v2/logs/{testReportId}/device
/v2/logs/{testReportId}/vitals
/v2/logs/{testReportId}/xcuitest
/rest/v1/$SAUCE_RDC_USERNAME/jobs/$JOB_ID/assets/$FILE_NAME
v2/logs/{testReportId}rest/v1/$SAUCE_RDC_USERNAME/jobs/$JOB_ID/assets

Screenshot API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v2/screenshots/{testReportId}/{screenshotId}.pngrest/v1/$SAUCE_RDC_USERNAME/jobs/$JOB_ID/assets/$FILE_NAME

Session Video API#

TestObject (Legacy RDC) EndpointsSauce Labs RDC Endpoints
v2/video/{videoId}.mp4[rest/v1/$SAUCE_RDC_USERNAME/jobs/$JOB_ID/assets/$FILE_NAME](https://docs.saucelabs.com/dev/api/jobs#get-a-job-asset-file)

Suites Reports API#

The following TestObject Suites API endpoints will be deprecated with no Sauce Labs equivalent. Please review the Sauce Labs Insights API for alternatives.

  • v2/batchReports/{batchReportId}
  • v2/batchReports/{batchReportId}/xml