Primarily used for automating native apps, Appium is also used for mobile web and hybrid application on iOS mobile, Android or Windows desktop platforms. It is an open source tool, which also acts as a “cross-platform”. Moreover, it allows you to write tests against multiple platforms, using the same API, which allows reusing the code between iOS, Windows, and Android test suites.
Appium is built on the principle that testing native apps should not require an SDK on app recompiling. And that you would be able to use your favourite test practices, frameworks, and tools. Appium is an open source project and has made design and tool decisions to encourage a exciting contributing community.
Appium was designed to meet the demands of the mobile automation as per the philosophy outlined by the following four tenets, thus summarizing:
- Automation of the app is possible even if it is not recompiled or modified.
- There should not be a language barrier.
- The mobile automation framework should not be reinventing the wheel when it comes to automation APIs.
- It should be open source
Types of mobile apps that Appium supports
Native: These are built using the iOS, Android or Windows SDKs. They are integrated to a platform or device.
Hybrid: These are web applications that have been developed using wrapper, CSS, HTML of a native application on top of UIWeb View for iOS and webview for Android Apps.
Mobile web apps: These are web apps that are accessed using a mobile browser.
Concepts of Appium
Appium is a webserver that actually exposes a REST API. Aftre receiving connection from a client, it listens to commands, executes those commands and responds with an HTTP response, representing the results of the command execution.
Automation is always executed in the perspective of a session. Clients initiate a session with a server in ways that are specific to each library. However, a POST/session request to the server is sent, with a JSON object called the ‘desired capabilities’ object. At this point, the server will start the automation session and respond with a session ID, which is used for sending further commands.
Desired capabilities are a set of keys and values that are sent to the Appium server to tell the server what kind of automation session we are interested in starting up. There are also capabilities that ca modify the behaviour of the server during automation.
Mobile web automation
Appium is said to support automating the Chrome browser on both real and emulated Android devices. However, here are a few pre-requisites:
- It has to be ensured that Chrome is installed on the device or the emulator
- Chromedriver needs to be installed and configured for automating the specific version of Chrome that is available on the device
Clients of Appium
QualiTest Group is the world’s biggest software testing and quality Assurance Company. QualiTest offers quality assurance and software testing services, and is committed to the uppermost standards of quality in every project.