1. 程式人生 > >Appium+Python自動化測試(二)--執行App程式示例

Appium+Python自動化測試(二)--執行App程式示例

在上一篇部落格中,已經將環境搭建好了。現在,我們利用搭建的環境來執行一條測試指令碼,指令碼中啟動一個計算器的應用,並實現加法的運算。

建立模擬器

在執行App之前,首先需要建立一個Android模擬器,也可以使用真機來執行,效果更佳。

進到Android SDK的目錄,雙擊執行AVD Manager.exe

這裡寫圖片描述

點選Create建立一個Android模擬器

這裡寫圖片描述

輸入一個模擬器名稱,選擇裝置型別和API版本,點選進行建立。建立完成後會顯示當前所有的裝置,選擇裝置,點選Start啟動

這裡寫圖片描述

第一次啟動的時候會有點慢,要等幾分鐘,啟動以後就好了,模擬器剛啟動後的介面是這樣的

這裡寫圖片描述

獲取應用的packageName和activityName

在寫測試指令碼之前,要知道被測試apk的packageName和要啟動的activityName,如果是第三方的apk,有現成的可以直接使用。這裡啟動的是模擬器內建的應用,所以要把apk從模擬器中匯出來

模擬器中預置的應用都放在手機的system/app目錄中,使用adb shell命令進入目錄檢視計算器應用的apk名稱

這裡寫圖片描述

使用ls *.apk命令列出所有的apk,查詢到apk檔案為Calculator.apk,然後使用adb pull system/app/Calculator.apk d:/命令將檔案匯出到電腦中。

將apk匯出後,Android SDK中有一個aapt的工具可以用來檢視應用的包名和要啟動的activity名稱,工具在SDK的build-tools目錄下,命令格式為”aapt dump badging apk路徑”

這裡寫圖片描述

輸入命令後,第一行的輸入中包含應用的包名

package: name=’com.android.calculator2’ versionCode=’17’ versionName=’4.2.2-3453820’

在輸入快到結尾的時候,有一行包含應用啟動時開啟的activity名稱

這裡寫圖片描述

launchable-activity: name=’com.android.calculator2.Calculator’ label=” icon=’

這樣就得到了packageName和activityName

Capability

Capability是一個字典,配置的是自動化測試的一些必要資訊,包含了本次測試的平臺名稱及版本號、啟動的是瀏覽器還是app等,客戶端將這些告訴伺服器,伺服器根據這些資訊建立自動化會話。這裡只介紹跟Android平臺相關並且常用的幾個

automationName:定義測試引擎,使用的android-sdk版本小於17時,使用Selendroid,大於等於17時使用Appium,預設是Appium

platformName:測試平臺,通常用於移動裝置,值有:Android、IOS、FirefoxOS

platformVersion:測試平臺版本,根據裝置的韌體版本指定,例如Android的4.2、IOS的7.1

deviceName:裝置名稱

app:要安裝的app的檔案路徑,可以是本地的絕對路徑,也可以是遠端網路路徑

browserName:啟動的瀏覽器名稱,測試的是web應用時指定,Android平臺設定為Chrome

newCommandTimeout:為了結束Appium會話,會設定一個等待從客戶端傳送命令的超時時間,預設為60秒,一般不需要設定

autoLaunch:測試時是否需要自動執行app

appPackage:設定app的包名,告訴Appium需要啟動的app

appActivity:設定啟動的Activity

appWaitActivity:要等待的Activity

appWaitPackage:要等待的appPackage

unicodeKeyboard:是否使用unicode鍵盤輸入,在輸入中文字元和unicode字元時設定為true

resetKeyboard:是否將鍵盤重置為初始狀態,設定了unicodeKeyboard時,在測試完成後,設定為true,將鍵盤重置

上述的幾個Capability只是在測試中經常用到的,更多的Capability在用到的時候可以在網上查閱

編寫測試指令碼

新建test.py,輸入下面的程式碼

# -*- coding: utf-8 -*-

from appium import webdriver

desired_caps = {
        'platformName': 'Android',
        'deviceName': 'emulator-5554',
        'platformVersion': '4.2',
        'appPackage': 'com.android.calculator2',
        'appActivity': 'com.android.calculator2.Calculator'
    }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.find_element_by_name('7').click()
driver.find_element_by_name('+').click()
driver.find_element_by_name('8').click()
driver.find_element_by_name('=').click()

儲存檔案,開啟Appium,點選右上角的三角形按鈕啟動Appium

這裡寫圖片描述

出現> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)這行資訊後,就表示Appium啟動成功了

這裡寫圖片描述

Appium啟動成功後,執行測試指令碼,模擬器會執行計算器應用,計算加法

這裡寫圖片描述