Using Appium with Python : Introduction

In this series of blogs, I will discuss about the appium (test automation framework  for mobile apps). We will discuss about how you can
automate your android mobile apps and save your testing hours. I will cover appium with python client and for android only.

Appium is an open source test automation framework for use with native, hybrid and mobile web apps.It drives iOS and Android apps using the WebDriver protocol.

Here is the basic architecture of Appium , How it interact with Android / ios client.

System Installation


Requirements

On Windows Appium Installation :
Please install these basic requirements that are import run Python client in Appium.
  1. PyCharm( python editor)
  2. Appium.exe
  3. Python 2.7 or 3.0 (Pip configured)
  4. Python client Appium
  5. Android SDK install latest(Added to Path).
  6. Java – Added to Path(Optional)
  7. Selenium module of python
  8. unittest /nose module of python.

Make sure you set up environment variables correctly before executing any script. All these variables should be set under ‘System variables’ not in ‘User variables’.

  • JAVA_HOME
  • C:\Program Files\Java\jdk1.8.0_25
  • ANDROID_HOME
  • D:\Android_Development\android_sd
  • PATH variable (this contain System32 , platform-tools , tools ,jdk bin set) –
    • C:\Windows\System32;D:\Android_Development\android_sdk\platform-tools;%JAVA_HOME%\bin;D:\Android_Development\android_sdk\tools;

Installing Selenium and Python Appium client.

Make sure you have pip install on windows(Check out my other post how you can do this).

Now you are ready to write your first Test case using python client in Appium. In the next blog We will write a basic test program that open a  App and Do certain task and close it after. Please comment down if you face any issue or need help.

 

Step by Step Mobile App Testing with Appium in Python


Appium is an open source test automation framework that can be used to test native, hybrid and mobile web apps.
It uses Web-Driver protocol to test iOS and Android apps.Downloads:

Pre-requisites:

  • Of course basics of Python.
  • You must have following environment variables  set on your windows machine.
    1. JAVA_HOME – C:Program FilesJavajdk1.8.0_25
    2. ANDROID_HOME – D:Android_Developmentandroid_sdk
    3. ANT_HOME –  C:apache-ant-1.9.4
    4. PATH – C:WindowsSystem32;D:Android_Developmentandroid_sdkplatform-                                                    tools;%JAVA_HOME%bin;D:Android_Developmentandroid_sdktools;%ANT_HOME%bin;
  • Android device with USB Debugging is ‘ON’.
  • Python Appium Client – You can install it using pip using below mentioned command in ‘CMD’

    [code] pip install Appium-Python-Client [/code]

Assuming that you have already installed required software and Python library on your machine.

Configuring Appium and inspect our Demo App for resources

Step 1:
From source code extract the files and put the ‘MyApplication.apk’ file somewhere in one folder.
(Note : You can use your own APK)


Step 2:
Run Appium.exe and go to first tab(Android icon) and browse the file , Appium will automaticaly pull the package info, Launch Activity etc. details

Step3:
Start the Appium server by Clicking the Play icon and Click on the “Search icon” button to inspect the resource for path,id,name etc. As you can see I have a resource ID of the refresh button of my Demo App. Copy that ID we need it for future.

Step 4:
It will install the APK to the device and Now you can see the Appium inspector to see the Resource IDs and other information in details tab.

Step 5 :
If you click on the “android.widget.ImageButton[384,755][480,854]” . In the details section you can see its resource ID: “com.witmergers.getstatus:id/fab” .

Step 6:
Now open Pycharm and write code in python to open the Application and Click on the Image Button(Refresh Button).

[python]
__author__ = ‘WP8Dev’
import os
import unittest
from appium import webdriver
”’ ScrollTest.com by Promode ”’
”’ This Test Case Just Click on the Refresh Button My Application ”’
”’ Just Click and Verify it in you Phone ”’
”’ Copyright 2015 ”’

class ContactAppTestAppium(unittest.TestCase):

def setUp(self):
desired_caps = {}
desired_caps[‘platformName’] = ‘Android’
desired_caps[‘platformVersion’] = ‘4.4’
desired_caps[‘deviceName’] = ‘A102’
desired_caps[‘app’] = ‘C:PyEditorAppium_ScrollTestsrcWitStatus.apk’
desired_caps[‘appPackage’] = ‘com.witmergers.getstatus’
desired_caps[‘appActivity’] = ‘.MainActivity’

self.driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)

def test_ClickRefreshLink(self):
refreshButton = self.driver.find_element_by_id("com.witmergers.getstatus:id/fab")
self.assertTrue(refreshButton.is_displayed())
refreshButton.click()
## Right now we are just verify the displayed message on the Phone
## You can right code to handle that toast message and Verify that message

def tearDown(self):
self.driver.quit()

if __name__ == ‘__main__’:
suite = unittest.TestLoader().loadTestsFromTestCase(ContactAppTestAppium)
unittest.TextTestRunner(verbosity=2).run(suite)

[/python]

Step 7:
Run the python file in PyCharm. If all goes well you will see the Application will open in you device and Refresh Button will be clicked followed by Closing of the Application.

In the Pycharm Output window you will see the “Test Passed” with Ok

Now start developing more Test cases and keep testing Apps.

Source code on GitHub