As we have seen in the previous posts, Test automation can be useful to automate the tests of a stable software on continuous basis. We can effectively use test automation as a strategy to test mobile applications.
In this post we will have a look at the Test Automation Ecosystem for android applications. The components of the automation ecosystem are as follows,
(a) Appium Server: It communicates with ADB (Android Debug Bridge) to send commands to the mobile app running on the physical device or Android Emulator.
(b) Appium Client Libraries: These are used to write the test automation ecosystem logic with a programming language. Appium client libraries are available for popular programming languages like Java and Python.
One should use unit test frameworks to organize tests and reporting of the test results. With Java, we can use JUnit or TestNG. With Python we use PyUnit or PyTest.
(a) ADB: ADB stands for Android Debug Bridge. It’s used to fetch actions from appium server and then to communicate to the app running on device or emulator.
(b) UIAutomatorViewer: It is used to identify the id and other properties of the elements displayed on the mobile screen.
There are multiple choices for this. We can use real devices or the emulators. For emulators, we can use either Android’s builtin emulator, known as AVD (Android Virtual Device) or we can use third party emulator like GenyMotion.
Advantages of Appium
Appium supports both platforms iOS and android
It supports continuous integration
It doesn’t require access to your source code or library. You are testing with which you will actually ship.
It support various programming languages and frameworks.
It can also work the pre-installed application if provided with application package and main activity.
It is Open Source and free to use.
It can run with Selenium grid.
Limitations of Appium
It does not have feature for Image comparison.
Documentation and the tutorials available are not extensive.
Appium has limited support for Android < 4.2 (API 17).