Remote Android Test Service


v2.1 (Aug 10, 2014)
Apr 23, 2014
Feb 25, 2016 (Retired)
Bill Best (wmbest2)
Bill Best (wmbest2)
Scott Ferguson (scottferg)
Source code

RATS: Remote Android Test Service

###What is RATS? RATS is an easy to run Test Runner Service that can be hosted anywhere a device can be connected. It was designed to thwart device hogs and provide a level playing field for shops who can't afford more expensive testing services.

It should be as simple to setup as it is to run thanks to the gradle plugin

Why Rats?

"RATS!" was what I anticipated our developers at VOKAL Interactive saying whenever their tests failed.



  1. Download the binary for your architecture and os from here
  2. Have a mongo database running (see here for more information)
  3. rats-server_os_arch -port 8080 -db mongodb://somehost

####But my FreeBSD machine cant run ADB!

Run rats with the adb_address and adb_port flags to point it to another machine! Run all your server in the cloud and your devices on your desk!

Run Your Tests

curl -X POST myserver.local:8080/api/run -F apk=@myapk.apk -F test-apk=@myapk-test.apk

Seriously, that's it!


  • apk Main apk
  • test-apk Test package apk
  • count Number of devices
  • serials Comma separated list of device serials
  • strict Strict mode (will run forever if devices dont match)
  • message A description of the run


  • Concurrent Test Running on all devices requested
  • Devices are held only as long as the test runs freeing them up sooner for more testing
  • Active Device monitoring lets you see which devices are in use
  • Filter Devices for a particular run
  • Device count filter so you don't piss off your coworkers
  • Automatic SDK filtering based on manifest parameters
  • Strict filtering mode and Serial filters for cases where you must run a particular subset of devices
  • Easy to use Api for extra info

###Gradle Plugin

RATS Gradle Plugin

buildscript {
    repositories {
    dependencies {
        classpath ''
        classpath 'com.wmbest.gradle:rats:0.2.+'

apply plugin: 'android'
apply plugin: 'rats'

###Whats Missing / What's to come

  • Proper encoding for Accept headers (e.g. xml for proper junit output)
  • Log capture from tests
  • Screenshots
  • Project Grouping
  • Realtime test results
  • Ironically: Tests


So far mostly me(wmbest2), but not without support from VOKAL Interactive

Let's see more!