Introduction
Found a training on Android testing, English, very comprehensive.
Android Testing training:http://www.vogella.com/training/android/androidtesting.html
Body
1.Appium
Appium is an open-source, cross-platform, automated testing tool for testing native and lightweight mobile applications that support IOS, Android and Firefoxos platforms. Appium drives Apple's UIAutomation library and Android's uiautomator framework, using Selenium's Webdriver JSON protocol. APPINM iOS support is based on Dan Cuellar ' s iOS Auto. Appium also binds the selendroid for the old Android platform test.
Pros: More popular, community active. Can cross apps. Support many languages to write scripts, such as Java,js,php,python,c#,ruby. No need to recompile the app.
Cons: Testing iOS must use a Mac.
2.UIAutomator
The Uiautomator test framework improves the testing efficiency of the user interface (UI) by automating the creation of functional UI test samples to run your app on one or more devices.
It is also an automated testing framework provided by Android that basically supports all Android event operations, Contrast instrumentation it does not require testers to understand the code implementation details (you can use Uiautomatorviewer to grab control properties on the app page without looking at the source).
Pros: Based on Java, test code structure is simple, easy to write, learning cost, a compilation, all devices or simulators can run the test, can cross the app (for example: Many apps have a choice of albums, open the camera photo, this is the cross-app test).
Disadvantage: only support SDK (Android 4.1) and above, do not support Hybird App, WebApp.
3.Instrumentation
The Android automated test tool class that Google provided early on, although JUnit can also test Android at the time, instrumentation allows you to do more complex testing of your application, even at the framework level. With instrumentation you can simulate events such as press, lift, screen click, scrolling, etc. Instrumentation is implemented by running the main program and the test program in the same process, you can think of instrumentation as an activity-or service-like component that monitors your main program while the program is running.
Cons: The ability to write code for testers requires a high level of knowledge about Android, and the need to configure Androidmanifest.xml files, which cannot span multiple apps.
4.Selendroid
Selendroid is a UI Automation testing framework for Android native apps. The test was written using the Selenium 2 client API. The selendroid can be used on both the emulator and the actual device, as well as the integration of grid nodes for scaling and parallel testing.
Pros: It's also a instrumentation-based test framework that lets you test native apps, Hybird apps, and Web apps.
Disadvantage: There is less information on the Internet, and the community is not very active.
5.Monkey
Monkey is a ui/application testing tool developed by Google and also a command line tool for stress testing. You can run on any of the emulator samples or devices. Monkey sends a pseudo-random stream of user events to the system as a stress test for your development application.
Pros: Easy to use.
Cons: Only random events can be generated and cannot be manipulated in accordance with established procedures.
6.MonkeyRunner
It is also a test tool provided by the Android SDK. Strictly speaking, Monkeyrunner is actually an API toolkit that is more powerful than monkey, and can write test scripts to customize data and events.
Cons: Scripts are written in Python, demanding for testers, with a large learning cost.
7.MonkeyTalk
Monkeytalk is the most powerful mobile application testing tool in the world. Monkeytalk automated real-world, functional interaction testing for IOS and Android apps. Monkeytalk provides a simple "smoke tests", complex data-driven test suite. Monkeytalk supports native, mobile and hybrid applications, real devices or simulators. Monkeytalk makes scene capture very easy and can record high-level, readable test scripts. The same commands can be used on IOS and Android apps. You can record a test for a platform and replay it on another platform. The Monkeytalk supports mobile touch and gesture-based interaction-oriented mobile experiences. Click, drag, move, even finger draw can be recorded and played back.
Advantages: Powerful features.
Cons: The main test for Android apps is not for us.
8.Robotium
Robotium is a foreign Android Automation testing framework, mainly for Android platform applications for black box Automation testing, it provides simulation of various gesture operations (click, Long Press, swipe, etc.), find and assert the mechanism of the API, to be able to manipulate the various controls. Robotium combines Android's official testing framework to automate the testing of applications. In addition, the Robotium 4.0 version already supports the operation of the WebView. Robotium is supportive of Activity,dialog,toast,menu.
Advantages: Based on the test framework of instrumentation, the current domestic and foreign use of more, more information, the community is more active.
Cons: For testers to have a certain Java Foundation, understand the Android basic components. Can't cross apps.
9.Robolectric
Robolectric is an Android unit test framework that uses the Android SDK jar, so you can use test drivers to develop Android apps. The test can be run on the workstation's JVM in just a few seconds. Robolectric handles view scaling, resource loading and native C code implementations for a large number of Android devices. Robolectric allows you to do most of the things your real device can do, run on a workstation, or run in a regular JVM continuous integration environment, without having to go through the simulator.
Cons: Language is too close to Android.
Ten. Android Test Kit
Android Test Kit is a set of Google open source test tools for the Android platform, which contains the Espresso API for writing simple and reliable Android UI tests.
11.androidjunit4
ANDROIDJUNIT4 is an open source command-line tool that allows JUnit 4 to run directly on Android devices.
12.calabash-android
Calabash-android is a functional automated testing framework for Android based on Cucumber. Calabash allows you to write and execute, is an open source automated mobile application Testing tool that supports Android and IOS native apps. Calabash's library allows for interactive testing of native and hybrid applications, including a large number of end-user activities. Calabash can rival Selenium Webdriver. However, it is important to note that the interaction of the Web application and the desktop environment is different from the touch-screen application. The Calabash is designed to provide APIs for native applications of touch-screen devices.
13.NativeDriver
Nativedriver is the implementation of the Webdriver API, which is a native app UI driver, not a Web application.
14.RoboSpock
Robospock is an open-source Android testing framework. Provides a simple way to write BDD behavior-driven development specifications, using Groovy voice and supporting the Google Guice library. Robospock incorporates the functions of robolectric and Spock.
__________________________________________________________________________________________
Some stop-maintenance Android test Tools
Some of the open-source Android test tools projects that have barely been maintained (at least for projects that haven't been updated in recent months).
__________________________________________________________________________________________
1.Emmagee
Emmagee is a performance testing gadget that monitors the CPU, memory, and traffic resources of a machine that is used by a specified application during use. Emmagee also offers some cool features, such as customizing the interval to collect data, using floating windows to render real-time process status, and more.
2.Sirocco
Scirocco (Scirocco-webdriver) is an open source application Automation test tool that provides access to the necessary test equipment from Eclipse. SCIROCCO provides automated Android application testing capabilities instead of manual testing. Scirocco support Google's nativedriver, the Androiddriver as the main test library. The Scirocco includes three parts: the Nativedriver,androiddriver,scirocco plugin (an Eclipse plugin; You can automate scenario testing and producing test reports).
Android Testing Tools