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.
###Installation
Binaries:
- Download the binary for your architecture and os from here
- Have a mongo database running (see here for more information)
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!
Parameters:
apk
Main apktest-apk
Test package apkcount
Number of devicesserials
Comma separated list of device serialsstrict
Strict mode (will run forever if devices dont match)message
A description of the run
###Capabilities
- 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
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
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
Contributors
So far mostly me(wmbest2), but not without support from VOKAL Interactive