Android applications are the prominent software developed in this era. The developers and testers may want to automate the testing of their App with less learning curve, before getting into a full blown test frameworks. Using ADB commands for Android testing is a lean methodology, where with a few commands and little quirks, the tests can be automated. In this article let’s get to know about the ADB, and few categories of UI features that can be tested with ADB. It would be nice to watch, testing the "GALLERY" App automatically with ADB.
Android debug bridge is a debugging facility provided by Android development ecosystem, to communicate with a Android device. It has ADB client and server running in development machine, and ADB daemon running in the device.
ADB is included in the Android SDK Platform-Tools package. We can download this package with the SDK Manager, which installs it at android_sdk/platform-tools. Details regarding the ADB can be obtained from https://developer.android.com/studio/command-line/adb
We consider the stock Android’s gallery app, for testing. Few user actions that can be performed through ADB is
invoking the gallery app
pushing images to the device
opening photos from a folder
swiping pictures left or right
closing the app and getting back to home page.
To click or tap on the Android screen we may need to understand Few UI components of Android.
Android’s View system is designed to handle layout and view positions automatically. A developer doesn’t need to set the absolute position of a view in a layout.
Instead, we rely on layouts to define constraints. However, sometimes especially when handling view test automations, we need to determine the position of a view. Android provides various ways to obtain the position of views and viewgroups.
One light-weight option to obtain the X,Y co-ordinates of every touch, is by enabling a debug options as below in the Android phone
Settings --> Enable Developer Option --> Enable Pointer Location.
After enabling it, we will be able to see x and y co-ordinates of point touched, on the top of the screen.
If you swipe upwards in the display, then y will get decremented. If you swipe left, then x will get decremented. Same it can be interpreted for other directions too.
The alternate way would be to get the coordinates of views by using the uiautomatorviewer which is not covered part of this article.
Let’s do a simple feature test in gallery APP by viewing the images pushed from external source using ADB commands.
Below command used to push a photo from a PC to the sdcard of the emulator/mobile connected for debugging.
$ adb push /home/user/Downloads/optimistic.jpg /sdcard/Pictures/optimistic.jpg
to get access to the Android shell we can invoke below command
PC$ adb shell
While opening a app from command line we may need to know the package name of it, below package manager command pm would help you to get info on the packages installed. Details on pm command is available in https://developer.android.com/studio/command-line/adb#pm
$ adb shell pm list packages | grep -i gallery
An application can be invoked from adb shell using monkey command. monkey is also an Android command which can be used to test the Android app. Details regarding that can be obtained from https://developer.android.com/studio/test/monkey
By using monkey command Gallery APP can be opened to view the pictures.
$ adb shell monkey -p com.sec.android.gallery3d -c android.intent.category.LAUNCHER 1
After opening Gallery, we can use XY co-ordinates
to open the specific folder by tapping as "adb shell input tap 600 500" and
to view the image can tap the image as "adb shell input tap 450 500" .
$ adb shell input tap <X> <Y>
Also, we can swipe images from Left to Right and Up to Down.
to swipe Left "adb shell input swipe 800 500 300 500",
to swipe Right "adb shell input swipe 300 500 800 500",
to swipe Up "adb shell input swipe 400 800 400 200",
to swipe Down "adb shell input swipe 400 800 400 200" and
to go back to home screen 'adb shell input tap 500 2200"
$ adb shell input swipe <X Start> <Y Start> <X End> <Y End>
To go back to home we can use keyevent as shown below
$ adb shell input keyevent KEYCODE_HOME
The resolution and xy co-ordinates differs for each mobile.
The adb commands can be written in sequence as a shell scripts, using which app tests can be automated.
ADB is a super utility provided by Android and it has lots of sub options to explore the Android system. With ADB and along with other shell commands, it is possible that we can test more features of the Android system.
Preethi, a vivid thinker, dynamic worker, Curious and passionate to learn more in wireless and networking. As part of QA engineer at Zilogic, she belong to Open source community and Always excited to play a part in defining strategic test plan to ensure the quality of product specification,feature and use-case for connectivity solutions. Much interested in connecting with people on different ideas, sports enthusiast.
All Rights Reserved © 2021 Zilogic Systems.
All Rights Reserved © 2021 Zilogic Systems.
Designed by Yulanto Web Creations Pvt Ltd.