Getting started with Appium

If you’re at the beginning of your software testing journey, Appium could be the right step towards gaining new mobile app automation testing skills.

With web and mobile applications becoming a necessity in our day-to-day lifestyle, we find ourselves looking for a particular app for everything we do without realizing it.

However, to ensure these applications are functioning well to meet the customer’s expectations, mobile app automation testing became a mandatory process in delivering swift solutions for high-performing devices adaptable to all sorts of devices on the market.

What is Appium?

Appium is an open-source, cross-platform testing tool that provides automation for native, mobile web, and hybrid applications that function on mobile devices and Windows desktop platforms. Before we move on to other characteristics, we will explain the specifics of each app: 

Native apps are built-in software programs developed for individual platforms such as Mac and PC that come preinstalled within the device. Examples of such apps are Contacts, Messages, Mail, Photos, Gallery, and so on. 

Web apps or mobile web apps are a type of software application that can be accessed through a web or a mobile browser and require an internet connection. Among the most used web applications are Gmail, Google Docs, etc.

Hybrid apps can be installed like native apps, but it takes after the interface and built of web apps. Therefore, they can be accessed from web browsers or downloaded from an app store. Unlike native apps, they can function offline. Their development also comes with the advantage of using the same code regardless of the mobile operating system. Among the most popular hybrid apps we have Twitter, Instagram, and Discord. 

Appium provides testing services for all three of these categories. Because it is a cross-platform framework, pre-existing code can be used to write tests against the IOS, Android, and Windows platforms using the same API. 

The Advantages of Learning Appium 

→ It functions as a server that runs in the background;

→ Just like Selenium, its code can be written in several programming languages compatible with WebDriver: Java, JavaScript, C#, Python, PHP, and Ruby. You can find more information about Selenium in our article on Getting started with Selenium. 

→ Appium uses the same code regardless of the operating system: IOS, Android, and Windows through its cross-platform feature.

→ It’s an open-source, free tool that can be downloaded from the official website;

→ It offers automation testing for native, mobile web, and hybrid applications.

Prerequisites for mobile app automation testing

Before starting your journey with Appium, basic knowledge of automation testing is required. 

Make sure you are also familiar with Selenium WebDriver and at least one of the programming languages mentioned above.

Getting started with Appium

The first step is setting up Android and iOS devices for Appium testing by connecting them to a PC:

To begin testing on an Android device, look for the Settings option to make sure you enable Developer Options. 

Next, proceed to USB debugging. From this step onwards, you can begin the mobile automation process by downloading and installing USB Drivers for your Android device on a PC. For an in-depth guide on how to do this, check out this link that provides step-by-step instructions.

For iOS devices, repeat the process of connecting the mobile device to a PC through USB while making sure the USB drivers for iOS are up-to-date. Before this, enable Developer Mode by going to Settings→Privacy & Security, then restart the device, where you will be asked if you want to stay in Developer mode.

Setting up Appium

The second step to getting started with Appium is downloading the latest version of the tool available through a direct link on its website or Node.js.

Both Android and iOS communicate with client machines via JSON Wire protocol to begin the automation test session. Once the desired capabilities have been checked, the server looks out for the native testing automation: UiAutomator2 for Android and XCUITest for iOS. 

Each framework proceeds to communicate with bootstrap.js running on the device as a TCP server that works on simulators, emulators, and real devices. 

Bootstrap.js receives requests and runs tests for Android and iOS devices, passing over log details to UiAutomator2 for the former and XCUITest for the latter devices. Then the information is forwarded by Bootstrap.js to the client.

You can find more details on how to set up Appium on Android/iOS devices and how to get started with Appium here. And if you’re curious about the automation tools we use, check out our services page.