Run tvOS tests on physical AppleTV devices

Run automated tvOS tests on physical AppleTV devices.

By Jochen D.

TestingBot is excited to announce the availability of its first Smart-TV testing device: Apple TV 4K. You can now run automated app tests against real Apple TV hardware running tvOS, directly from the TestingBot cloud.

With our new tvOS testing support, teams building streaming apps, games or custom Apple TV experiences can automate their QA workflows using Appium. Each test runs on a dedicated physical device, providing reliable results and a complete video recording of the test session.

How to get started

Start by uploading your tvOS app (.ipa) to TestingBot Storage. Then, create an Appium test script that connects to our real Apple TV 4K device via the TestingBot cloud. Your test can interact with the on-screen UI, simulate remote control presses and verify UI behavior. Just like a user in front of the TV.

The example below will connect to a real Apple TV 4K device in the TestingBot cloud. It will launch the sample tvOS app, sends key presses to the calculator and verify the result. You will receive logs, screenshots and a video recording of the test session.

require 'rubygems'
require 'appium_lib'

caps = {}
caps['name'] = 'Ruby Appium Example'
caps['deviceName'] = 'Apple TV 4K'
caps['platformName'] = 'tvOS'
caps['version'] = '17.4'
caps['app'] = 'https://github.com/testingbot/tvos-example/releases/download/1.0.0/tvos-example.ipa'
caps['realDevice'] = true

appium_driver = Appium::Driver.new({
    caps: caps,
    appium_lib: {
        server_url: "https://key:secret@hub.testingbot.com/wd/hub"
    }}, true)
driver = appium_driver.start_driver

wait = Selenium::WebDriver::Wait.new(:timeout => 30)
wait.until { driver.find_element(:accessibility_id, "inputField1").displayed? }

inputField1 = driver.find_element(:accessibility_id, "inputField1")
inputField1.click
inputField1.send_keys 5
driver.execute_script('mobile: pressButton', { name: 'down' })
driver.execute_script('mobile: pressButton', { name: 'select' })

driver.switch_to.active_element.send_keys 10

driver.execute_script('mobile: pressButton', { name: 'down' })
driver.execute_script('mobile: pressButton', { name: 'select' })
sleep 10
result = driver.find_element(:accessibility_id, "resultField")

if (!result.nil?) && (result.text.to_i == 15)
  puts "Test Passed"
else
  puts "Test Failed"
end
driver.quit

Why test tvOS apps with TestingBot?

TestingBot already offers thousands of real mobile devices and desktop browsers for automated and manual testing. With the addition of Apple TV 4K tvOS devices, developers and QA engineers can now ensure their Smart-TV apps perform correctly in real-world conditions, without needing to maintain physical devices in-house.

  • Access real Apple TV devices remotely 24/7.
  • Automate tvOS Appium tests with full video recordings.
  • Integrate with CI/CD pipelines like GitHub Actions, Jenkins and GitLab CI.
  • Use the same TestingBot account and API keys you already use for iOS and Android testing.

Some limitations apply

  • DRM-protected content is not supported.
  • No audio playback support yet.

Ready to bring automated Smart-TV testing to your workflow? Sign in to your TestingBot account or create a free trial and start running tests on Apple TV 4K today. Experience faster feedback loops, higher confidence and true device realism.

Ready to start testing?

Start a free trial