Appium Tutorial 2019 Edition is ready to all testers! I wrote a very comprehensive Appium Start Guide on 6t May 2016 and now it is time to write an updated Appium Tutorial. I will use Appium Desktop and Android Studio to create a sample mobile test automation project for you. After that, we will continue for Advance Appium Tutorial series. First,  we need to do a proper Appium Installation. Alright, Let’s start!

Appium Tutorial Prerequisites: JAVA and Maven Installation

Download JAVA JDK first. Here is the Linkhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Installation steps and configuration settings have described in this article at step-4 and step-5. 

For MACOS users please visit the below article for all installation needs. 

https://www.swtestacademy.com/how-to-install-appium-on-mac/

Windows users will go on with below installation steps. 😉

Android Studio Installation 

You need to go to https://developer.android.com/studio/index.html and install Android Studio. After that, apply the following steps. Click the “Next” icons and finally click “Finish“.

Click “Download Android Studio For Windows“.

Click the next button.

appium download

Select all options and click the next button.

appium server

Select your directory or keep the default and click next.

appium desktop

and click install to start the installation process.

appium

It is my first time to install Android Studio and I selected “Do not import settings” option and clicked the OK button.

appium interview questions

Click next to continue.

appium capabilities

I installed the Android Studio with standard settings and configurations.

appium api

Select your UI Theme. I prefer Darcula because it is better for the eyes.

appium tutorial ios

Click “Finish” button and install the required tools.

appium tutorial java

Wait until all libraries download and installation finish.

appium tutorial android

After all these steps, click the finish button.

appium tutorial

After clicking the “Finish” button. Go to “Configure” > “SDK Manager” to get SDK information. It is required for Android SDK path settings.

Select your device’s or emulator’s Android API level (Version).

And select the required tools as shown below and click “OK.

appium inspector

Click OK one more time, please. 😉

ios testing

Click the finish button and continue.

ios automation

After the installation of required tools, go to SDK Manager page and copy SDK path as shown below.

android automation

Download RapidEE tool and install it and open as administrator.

android testing

And then add ANDROID_HOME variable and its path should be Android SDK’s path. Also, check your JAVA_HOME variable. JAVA_HOME should equal to JAVA SDK’s path.

uiautomator

Then, you need to add required Android tools and JAVA JRE paths to your system path as shown below.

selendroid

After that, check your settings and installations. Open a command prompt window and type “sdkmanager –list” command as shown below.

mobile automation

and type “uiautomatorviewer” to check uiautomatorviewer is working properly.

mobile testing tools

Then, create a sample project in Android Studio and then click the link as shown below to install missing libraries.

what is appium

After installation, click the Finish button.

download appium

After installing missing libraries you will see the device and little and sweet android icon. 🙂 When you click this icon, you will open android virtual device manager.

install appium

Let’s create a virtual device. I will also explain how to do mobile automation with a real device too. Don’t worry. 😉 Click to “+ Create a Virtual Device” button.

apium

Then, select a virtual device in the device list.

appium-create-virtual-device

In this example, I selected Android 7.0. I have also a test device and its version is also 7.0 but you can select any of them. Click the download link and download the required libraries for the selected version.

mobile app automation

After downloading the required libraries, click “next” to continue.

mobile app automation testing

Check the latest settings and give a name to your Android Virtual Device (AVD) and click Finish button.

virtual-device-appium

Then, click the run icon and launch your device.

appium-emulator

You will see the selected AVD on your screen as shown below.

Until now, we installed JAVA and Android related libraries and did their settings and configurations. Now, it is time to download Appium.

Appium Desktop Installation and Configurations

Go to http://appium.io/downloads.html and click “Appium-Desktop for OSX, Windows and Linux” link.

download appium

On below page, click “appium-desktop-Setup-1.11.1.exe” file. (I am writing this article on 12.03.2019. The latest release is 1.11.1 now.)

When the installation file downloaded, click run and start to install appium desktop.

install appium

When installation finished, double-click the appium icon and open the appium server as shown below.

Let’s click the “Advanced” tab and change the Server Address as “127.0.0.1” and click Allow Session Override for override session when there will be problems and click “Start Server”. If you will use a real device and then use “0.0.0.0” for “Server Adress”.

Give the required permission to Appium Server.

You will see the server up and running.

Android Virtual Device and Pre-Test Settings

Let’s go to your android virtual device’s security page and give permission to install unknown sources as shown below.

appium tutorial

Download a sample .apk file from APKPure. In this article, I will use our blue-collar recruitment app “İsin Olsun” as shown below.

When the .apk file is downloaded, drag and drop it into your AVD as shown below.

Then, you will see that it is installing. 😉

install android apk

And yeap! it is installed. 🙂

android apk

When you click the app icon, you will see that it is opening as expected. 🙂

app automation with appium

Normally, below command will give you the information about app package info and app activity info

package activity

But for our application, our starting activity is splash activity and it is not easy to catch it. So I need to find another way to get the first app activity. I downloaded APK Info app and dragged-dropped to AVD and installed it.

apk info

Then, I opened the app and find our application “İşin Olsun“. When I pressed long to app icon, I saw a menu and clicked “Detailed Information“.

long press mobile automation

Then I saw all the information about our app. When I looked at the Activities section, I saw that our application is starting with “com.isinolsun.app.activities.SplashActivity“. I will use this info in automation code’s desired capabilities section. Also, I will use app package info which is “com.isinolsun.com

splash activity

Note: You can also install APK Anaylzer if APK info app did not work. You can easily find activities and all details with this application.

apk analyzer

Then, open a command prompt and write “adb devices” command to see connected devices and get the device ID as shown below.

mobile devices in automation

Go to your AVD’s setting tab and check your AVD’s Android Version as shown below. We will use these settings in our test project.

android version

Then, open IntelliJ IDE and create a new project as shown below. First, select Maven and click Next.

appium project

Then, write your project’s GroupId and ArtifactId. You can write the same this as shown below. It does not affect anything, just naming.

project appium

Then, give a name to your project.

test automation

Then, click “Enable Auto-Import” at right bottom corner.

mobile testing

Go to mvnrepository.com website and get all frameworks lastest dependency information. We will use TestNG, Appium, Selenium.

Our POM.xml will look like as below. You can see appium’s, selenium’s, and TestNG’s dependencies.

Create a new Java Class as shown below and give a name to your class.

android testing

Then get your device’s information from the android studio as shown below.

ios testing

Then, go to the server and click the magnifier icon to open the inspector.

ios automation

Then, start to enter the capabilities of your device as shown below in the inspector.

Also, you can save these settings and use them later.

cababilities selenium

and click “Start Session” to start the inspector session to get your mobile elements ids.

inspector in mobile testing

Get a mobile element’s id’s as shown below. We will use them for our first mobile automation project.

appium inspector

After all of these steps, we need to write our test automation code.

How to Use Real Device instead of Emulator

In emulators, you may face some problems. When I tried to run my test on emulator XPath locators did not work. Normally, I did not want to use XPath but in our app some for some elements I did not have other options. Then, I tried the same test on a real device, my test worked flawlessly and very fast. Thus, I suggest you use real devices instead of emulators. In order to use the real device we should do the followings:

  • Connect your real device to your laptop via USB port.
  • Go to Settings > Developer Settings and enable USB Debugging option.
  • Open command prompt and type “adb devices” command and get your device ID.

appium

Mobile Test Automation Project by Using Appium and TestNG

It is time to write some code for our Appium Tutorial. The test code of the project is shown below. I added inline comments. The most critical part is DesiredCapabilities, the rest of the code is very similar to Selenium & TestNG test automation codes. Also, you can find this project on GitHub.

Project’s GitHub URL: https://github.com/swtestacademy/appium-sample-test

Below code opens İsinOlsun app, skips splash screen, clicks “job search” button, then accepts notifications and then clicks the second job on the main screen and that’s all. 🙂 It is easy because it is our first test case.

That’s all for this Appium Tutorial. I hope you successfully installed and configured all settings and run your mobile automation code.

If you have any question please write a comment, me or another expert will help you.

Now, you can learn Appium Parallel Testing and How to Setup your Own Wireless Mobile Device Farm!
Appium Parallel Testing

Do you want to learn Appium Actions such as Tab, MultiTouch, Press, Swipe?
Appium Mobile Actions

Thanks.
-Onur