Before diving into our environment, IDE set up. Let's take a moment to review exactly what is Appium.
So what is Appium? If you're familiar with web-based automation, then you might be familiar with Selenium. So Selenium is to web automation as Appium is to mobile app automation in fact Selenium who really pioneered the way for automation in general kind of understood the complexity of mobile devices and so Selenium created Appium in order to support mobile test automation.
So Appium is open source. It's a collection of client and automation libraries. It is used to automate both Android and iOS native applications as well as hybrid and web apps. As I mentioned, it was created by Selenium, so it does utilize the same process and WebDriver API.
So it specifies a client-server protocol that actually wraps calls and the native frameworks such as espresso for Android and XUI test for iOS to drive specific device type. So instead of having one script for Android, a second script for iOS, you can actually have one script. They can run on both and both platforms.
So the pros of using Appium? Appium is open source. And there's a really strong community around Appium itself. Like I mentioned previously, you can write one test to cover both Android, iOS and window applications. So it does utilize UI Automator, Espresso XUI test and win app driver. It is available in most major languages and also supports other frameworks. So you really have that flexibility and making use of Appium within your tech stack for mobile test automation.
It allows you to test on real devices as well as emulators and simulators without any additional dependencies. Pros of Appium continued. So Appium does support E2E testing with complicated gestures and behaviors from mobile applications, and it can also be easily integrated into your CI/CD pipeline. As we all know, we want to be able to automate our testing and automate our software development lifecycle so that we can get to market sooner and faster.
Most vendors such as Kobiton support Appium and at Kobiton we want to make sure it's easy to use, and easy to import and export Appium since it is so widely used for mobile automation.
Now there are drawbacks of Appium. So one of the drawbacks of Appium is since Appium is a kind of additional logic that wraps the native frameworks, it does make it slower than the native frameworks, and that's because it involves that WebDriver and also processing, processing that command line.
So for scripted automation, there is a steep learning curve.
So software developers and test and automation engineers may be more familiar with the coding front versus a manual tester or more of a quality assurance analyst that they do have that knowledge gap to overcome to make use of an automation framework.
So it is great in automating your mobile applications, but you do have to spend time learning how to code out. Learning the syntax of Appium.
The environment setup can be challenging, a little tedious, and also time-consuming. So not quite hit the ground running. You definitely have to architect your local environment to make use of Appium and or any other framework. And then it also can only offer real devices locally, but it can be paired with a device management solution such as Kobiton.