Since mobile testing involves testing the applications across different devices and platforms such as Android and iOS, the task can become quite hectic. Thankfully, there is way out of this, and that is to use the mobile automation tools. Though there are many mobile automation tools available at present, Appium proves to be the most effective and accessible.
Appium is flexible, feature-rich, scalable, and hugely helpful. And learning it would ease the job of every mobile tester. Well, if you are curious to know about Appium and its features, we can help you with that by providing necessary details.
Appium – The Open Source Mobile Application
Appium is just an open source mobile application for mobile automation. Appium supports native, hybrid, and web application automation test across physical devices including both an emulator and stimulator. It even enables cross-platform app testing where its real beauty lies.
Appium let the user write tests for multiple platforms including iOS, Android, and Windows Phone using the same API. It means that you could write a test for iOS and use the same test for Windows Phone and Android. It saves time and aids the software tester to reuse a large number of codes between different test suites.
Another great feature of Appium is that it has no dependency on Mobile device OS. It is because Appium has a framework or wrapper that could translate Selenium Webdriver commands to UIAutomation or UIAutomator commands based on the type of device. Furthermore, Appium supports almost all languages which have Selenium client libraries.
Appium even showcases a neat feature that can automate without recompiling the app. It means that the user doesn’t need to have access to the application code to work with Appium. Whereas, other mobile automation tools like Frank and Calabash demands the user to be aware of the app code to be able to work with it. Thus, you could test the same app which you will be going to submit to the app store.
A bonus comes along with the philosophy on which Appium is built. The theory follows four tenets which will be discussed below.
Appium Philosophy and the Four Tenets
No automation or recompiling your app – As we have read earlier, Appium doesn’t require an extra agent or an app code to work. Therefore, the user doesn’t have to recompile or modify the app to automate it.
No requirement of a specific language or framework – Appium supports all languages when it comes to writing tests. Ruby, Python, Java, Node.js, Objective, PHP and you name it. Users wouldn’t have to learn a new language to work with the tool.
No reinventing the wheel – A better tool for mobile application shouldn’t reinvent the wheel when it comes to automation APIs. Appium uses WebDriver API, and so there is no hassle of reinventing the wheel by introducing an entirely new API.
A framework should be open source and practical – Appium is freely available to all the users and can be easily modified as per the user’s requirements. Furthermore, Appium is completely practical and real in spirit.
Appium and the Way It Works
Appium is an HTTP server written using a Node.js platform. It drives iOS and Android session using WebDriver JSON wire protocol. Once Appium is downloaded and installed on your device, a server is set up on the machine that gives REST API the required exposure. Later, it receives connection and command request from clients and takes necessary actions to execute the command.
Appium responds back using HTTP responses and uses mobile test automation frameworks to execute the request.
Prerequisites When Using Appium
Before you get started with Appium, you are required to install a few of the below-listed applications to work efficiently with Appium.
- Android SDK
- Java Development Kit
- Eclipse
- TestNG for Eclipse
- Selenium Server
- Appium Client Library
- APK App Info on Google Play
- Appium Desktop
Limitations of Using Appium
The most significant limiting factor of using Appium would be its inability to synchronise with AUT accurately. To put it simple words, while the automation tests are running, it may take some time for the action to complete. It may be waiting for some element to load or get ready so that the user can move forward to the next step. However, Appium doesn’t handle this situation diligently. One could put a “wait command” to overcome this delay. Nonetheless, this cannot act as a permanent solution and can turn your automation test to run slowly. Tools like Espresso and EarlyGrey could efficiently take care of situations like this.
Again, Appium is quite a tough tool to handle when you are a complete beginner in the process. You will also require a Mac system to run iOS tests, and iOS apps cannot be automated on Windows or Linux systems. This is due to the reason that Appium requires Xcode for iOS automation which is Mac-only at present.
Appium can again be a tough nut to crack when users look at it from the scalability perspective. Due to the technical limitations, users can only execute one test at a time Mac. This can be a great set back when buying Mac and buying multiple Macs to solve the situation can prove to be costly. Nonetheless, the only way to address this issue is to take aid from mobile cloud services such as SauceLabs.
Click on the below link to watch the tutorial for testing iOS apps with Appium. The video includes tutorials for setting up Appium on your device to writing the first test on OS X
Automating mobile application using Appium Selenium