Appium+Python自動化測試之運行App程序示例-創(chuàng)新互聯(lián)

在上一篇博客中,已經(jīng)將環(huán)境搭建好了?,F(xiàn)在,我們利用搭建的環(huán)境來運行一條測試腳本,腳本中啟動一個計算器的應(yīng)用,并實現(xiàn)加法的運算。

成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都小攪拌車等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱贊。

創(chuàng)建模擬器

在運行App之前,首先需要創(chuàng)建一個Android模擬器,也可以使用真機來運行,效果更佳。

進(jìn)到Android SDK的目錄,雙擊運行AVD Manager.exe

Appium+Python自動化測試之運行App程序示例

點擊Create創(chuàng)建一個Android模擬器

Appium+Python自動化測試之運行App程序示例

輸入一個模擬器名稱,選擇設(shè)備類型和API版本,點擊進(jìn)行創(chuàng)建。創(chuàng)建完成后會顯示當(dāng)前所有的設(shè)備,選擇設(shè)備,點擊Start啟動

Appium+Python自動化測試之運行App程序示例

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

Appium+Python自動化測試之運行App程序示例

獲取應(yīng)用的packageName和activityName

在寫測試腳本之前,要知道被測試apk的packageName和要啟動的activityName,如果是第三方的apk,有現(xiàn)成的可以直接使用。這里啟動的是模擬器內(nèi)置的應(yīng)用,所以要把apk從模擬器中導(dǎo)出來

模擬器中預(yù)置的應(yīng)用都放在手機的system/app目錄中,使用adb shell命令進(jìn)入目錄查看計算器應(yīng)用的apk名稱

Appium+Python自動化測試之運行App程序示例

使用ls *.apk命令列出所有的apk,查找到apk文件為Calculator.apk,然后使用adb pull system/app/Calculator.apk d:/命令將文件導(dǎo)出到電腦中。

將apk導(dǎo)出后,Android SDK中有一個aapt的工具可以用來查看應(yīng)用的包名和要啟動的activity名稱,工具在SDK的build-tools目錄下,命令格式為”aapt dump badging apk路徑”

Appium+Python自動化測試之運行App程序示例

輸入命令后,第一行的輸入中包含應(yīng)用的包名

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

在輸入快到結(jié)尾的時候,有一行包含應(yīng)用啟動時打開的activity名稱

Appium+Python自動化測試之運行App程序示例

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

這樣就得到了packageName和activityName

Capability

Capability是一個字典,配置的是自動化測試的一些必要信息,包含了本次測試的平臺名稱及版本號、啟動的是瀏覽器還是app等,客戶端將這些告訴服務(wù)器,服務(wù)器根據(jù)這些信息創(chuàng)建自動化會話。這里只介紹跟Android平臺相關(guān)并且常用的幾個

automationName:定義測試引擎,使用的android-sdk版本小于17時,使用Selendroid,大于等于17時使用Appium,默認(rèn)是Appium

platformName:測試平臺,通常用于移動設(shè)備,值有:Android、IOS、FirefoxOS

platformVersion:測試平臺版本,根據(jù)設(shè)備的固件版本指定,例如Android的4.2、IOS的7.1

deviceName:設(shè)備名稱

app:要安裝的app的文件路徑,可以是本地的絕對路徑,也可以是遠(yuǎn)程網(wǎng)絡(luò)路徑

browserName:啟動的瀏覽器名稱,測試的是web應(yīng)用時指定,Android平臺設(shè)置為Chrome

newCommandTimeout:為了結(jié)束Appium會話,會設(shè)置一個等待從客戶端發(fā)送命令的超時時間,默認(rèn)為60秒,一般不需要設(shè)置

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

appPackage:設(shè)置app的包名,告訴Appium需要啟動的app

appActivity:設(shè)置啟動的Activity

appWaitActivity:要等待的Activity

appWaitPackage:要等待的appPackage

unicodeKeyboard:是否使用unicode鍵盤輸入,在輸入中文字符和unicode字符時設(shè)置為true

resetKeyboard:是否將鍵盤重置為初始狀態(tài),設(shè)置了unicodeKeyboard時,在測試完成后,設(shè)置為true,將鍵盤重置

上述的幾個Capability只是在測試中經(jīng)常用到的,更多的Capability在用到的時候可以在網(wǎng)上查閱

編寫測試腳本

新建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()

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章題目:Appium+Python自動化測試之運行App程序示例-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://muchs.cn/article38/dgejpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、ChatGPTApp設(shè)計、靜態(tài)網(wǎng)站、做網(wǎng)站營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站