Your first test with Appium

With Appium you can run Automated tests against hybrid and native iOS and Android apps.

You do not need to do anything special to your app, simply supply an URL to the app and we'll run it on either iOS Simulator or Android Emulator.

Since Appium uses the WebDriver protocol, you can use any programming language you want: PHP, Ruby, Java, .NET, NodeJS, Python, ...

Automated Mobile App Testing

To get started, please see the example below. Pick a Platform and Device and choose which programming language you'd like to use.

1. Select a Platform
2. Select a Device

Preparing your App

You do not need to install any code or plugin to run a test.
Below are some things that are necessary to successfully run a mobile test:

For Android:
  • Please supply the URL to your .apk file.
    Important: the .apk file needs to be a x86 build (x86 ABI).

For iOS:
  • Please supply the URL to a .zip file that contains your .app
  • The .app needs to be an iOS Simulator build:
    • Create a Simulator build:
      xcodebuild -sdk iphonesimulator -configuration Debug
    • Zip the .app bundle:
      zip -r

Additional Options

Appium provides a lot of options to configure your test.

Some important options that might help:

For Android:
  • appActivity and appPackage: by default, Appium will try to extract the main Activity from your apk. If this fails, you can supply your own with these options.
  • chromeOptions: additional chromedriver options you can supply.
  • otherApps: a JSON array of other apps that need to be installed, in URL format.

For Android & iOS:
  • locale: the language of the simulator/emulator (ex: fr_CA)
  • newCommandTimeout: How long (in seconds) Appium will wait for a new command from the client before assuming the client quit and ending the session


It's possible to rotate the device before and during your test. Please see these examples:

Rotate before test:
desired_capabilities = { "orientation" : "LANDSCAPE " } # or PORTRAIT

Rotate during test:
((AppiumDriver) driver).rotate(ScreenOrientation.LANDSCAPE);

Testing Internal/Staged Websites

We've built TestingBot Tunnel, to provide you with a secure way to run tests against your staged/internal webapps.
Please see our TestingBot Tunnel documentation for more information about this easy to use tunneling solution.