Understanding Appium: A Cross‑Platform Mobile Automation Framework
This article introduces Appium, an open‑source mobile automation framework that enables cross‑platform testing of native, hybrid, and mobile web apps by abstracting device interactions through third‑party engines, WebDriver API, sessions, and desired capabilities, and includes practical code examples.
Appium is an open‑source automation testing framework for mobile applications that supports native, hybrid and mobile web apps across iOS and Android platforms.
Key advantages include a single codebase for cross‑platform tests, no need for app signing or source code, ability to test without the project source, multi‑language support, compatibility with various UI automation engines, and an active community.
The cross‑platform capability is achieved by delegating actual device interactions to third‑party automation engines such as iOS UIAutomation, Android UiAutomator (4.2+), Android Instrumentation (2.3+), and UiAutomator2 (supported from Appium 1.6).
Appium itself acts as a scheduler that communicates with these engines via the WebDriver API, which implements the JSON Wire Protocol (a RESTful service) allowing clients written in Java, C#, Python, etc., to send commands uniformly.
Each test session is identified by a Session ID generated after the client posts a JSON object of Desired Capabilities, which specify the target platform, device, and other configuration details.
Desired Capabilities are simple key‑value pairs; for example, setting platformName to iOS tells the Appium server to create an iOS session.
Since Java‑Client 2.0.0, the abstract AppiumDriver has been replaced by concrete drivers such as IOSDriver and AndroidDriver , eliminating the need to manually set the PLATFORM_NAME capability.
The core component that runs on the device is the appium‑android‑bootstrap JAR (Bootstrap.jar). It extends UiAutomatorTestCase and is invoked with a command like:
adb shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.BootstrapAppium listens on port 4723 for WebDriver requests and uses port 4724 for communication with Android devices.
Finally, the article provides a few example API calls to illustrate typical usage of the framework.
360 Quality & Efficiency
360 Quality & Efficiency focuses on seamlessly integrating quality and efficiency in R&D, sharing 360’s internal best practices with industry peers to foster collaboration among Chinese enterprises and drive greater efficiency value.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.