Run Maestro YAML flows on TestingBot's real device cloud via the Appium driver.
Create testingbot-android.json:
{
"platformName": "Android",
"appium:deviceName": "Pixel 8",
"appium:platformVersion": "14.0",
"appium:app": "tb://app-id",
"appium:automationName": "UiAutomator2",
"tb:options": {
"key": "YOUR_TESTINGBOT_KEY",
"secret": "YOUR_TESTINGBOT_SECRET",
"name": "Maestro Android test"
}
}Run:
maestro-runner --driver appium \
--appium-url "https://hub.testingbot.com/wd/hub" \
--caps testingbot-android.json \
test flows/Create testingbot-ios.json:
{
"platformName": "iOS",
"appium:deviceName": "iPhone 16",
"appium:platformVersion": "18.0",
"appium:app": "tb://app-id",
"appium:automationName": "XCUITest",
"tb:options": {
"key": "YOUR_TESTINGBOT_KEY",
"secret": "YOUR_TESTINGBOT_SECRET",
"name": "Maestro iOS test",
"realDevice": true
}
}Run:
maestro-runner --driver appium \
--appium-url "https://hub.testingbot.com/wd/hub" \
--caps testingbot-ios.json \
test flows/Upload your .apk, .ipa, or .zip to TestingBot before running tests:
curl -X POST "https://api.testingbot.com/v1/storage" \
-u "YOUR_TESTINGBOT_KEY:YOUR_TESTINGBOT_SECRET" \
-F "file=@/path/to/app.apk"The response returns an app_url (e.g., tb://app-id) — use that as the appium:app value in your caps file.