This skill provides a systematic approach to testing React Native applications on an Android emulator using ADB commands. It allows for autonomous interaction, state verification, and visual regression checking.
When to Use
Verifying UI changes in React Native or Native Android apps.
Autonomous debugging of layout issues or interaction bugs.
Ensuring feature functionality when manual testing is too slow.
Capturing automated screenshots for PR documentation.
🛠 Prerequisites
Android Emulator running.
adb
installed and in PATH.
Application in debug mode for logcat access.
🚀 Workflow
1. Device Calibration
Before interacting, always verify the screen resolution to ensure tap coordinates are accurate.
adb shell wm size
Note: Layouts are often scaled. Use the physical size returned as the base for coordinate calculations.
2. UI Inspection (State Discovery)
Use the
uiautomator
dump to find the exact bounds of UI elements (buttons, inputs).
adb shell uiautomator dump /sdcard/view.xml
&&
adb pull /sdcard/view.xml ./artifacts/view.xml
Search the
view.xml
for
text
,
content-desc
, or
resource-id
. The
bounds
attribute
[x1,y1][x2,y2]
defines the clickable area.
3. Interaction Commands
Tap
:
adb shell input tap
(Use the center of the element bounds).
Swipe
:
adb shell input swipe
(Used for scrolling).
Text Input
:
adb shell input text ""
(Note: Limited support for special characters).
Key Events
:
adb shell input keyevent
(e.g., 66 for Enter).
4. Verification & Reporting
Visual Verification
Capture a screenshot after interaction to confirm UI changes.