Upload your App
In order to run tests against your mobile app, our devices 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 device 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 62 days.
#!/usr/bin/env ruby
require 'rubygems'
require 'appium_lib'
caps = {}
caps['build'] = 'Ruby Appium Sample'
caps['name'] = 'single_test'
caps['deviceName'] = 'iPhone 15'
caps['platformName'] = 'iOS'
caps['version'] = '18.0'
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 15'
caps['platformName'] = 'iOS'
caps['version'] = '18.0'
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