Upload your App

In order to run tests against your mobile app, our test VMs need to be able to download your app.
There are two ways to configure your tests to do this:

  • Upload your app to TestingBot Storage: our private upload servers.
  • Specify an HTTP or HTTPS url to the app you uploaded on a public internet website.

TestingBot Storage

With TestingBot Storage, you can upload your app to our servers.
The advantage of this is that your tests will start faster, as the VM can download the app from our internal network, instead of the public internet.


To get started, simply submit your app to our API:

$ curl -X POST "https://api.testingbot.com/v1/storage" \
-u key:secret -F "file=@/path/to/app/file/Application-debug.apk"

This call will return a unique identifier for your app ({"app_url": "tb://..."}), which you can use in the desired capabilities (see example below).

More information regarding this API call and other similar calls (update uploaded file, delete uploaded file, list uploaded files) are available in our API documentation.


Note: uploads to our TestingBot Storage are automatically deleted after 31 days.
#!/usr/bin/env ruby
require 'rubygems'
require 'appium_lib'

caps = {}
caps['build'] = 'Ruby Appium Sample'
caps['name'] = 'single_test'
caps['deviceName'] = 'iPhone 8'
caps['platformName'] = 'iOS'
caps['version'] = '12.1'
caps['app'] = 'tb://...' # specify the link to your app here

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

wait = Selenium::WebDriver::Wait.new(:timeout => 30)
driver.find_element(:name, "inputA").send_keys 5
driver.find_element(:name, "inputB").send_keys 10
driver.quit

Public Internet

If you have your app available on a public website, you can specify this in the desired capabilites:


#!/usr/bin/env ruby
require 'rubygems'
require 'appium_lib'

caps = {}
caps['build'] = 'Ruby Appium Sample'
caps['name'] = 'single_test'
caps['deviceName'] = 'iPhone 8'
caps['platformName'] = 'iOS'
caps['version'] = '12.1'
caps['app'] = 'https://...' # specify the link to your app here

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

wait = Selenium::WebDriver::Wait.new(:timeout => 30)
driver.find_element(:name, "inputA").send_keys 5
driver.find_element(:name, "inputB").send_keys 10
driver.quit

Looking for More Help?

Have questions or need more information?
You can reach us via the following channels: