欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Appium+Python自動(dòng)化測試之運(yùn)行App程序示例

 更新時(shí)間:2019年01月23日 11:29:53   作者:zh175578809  
這篇文章主要介紹了Appium+Python自動(dòng)化測試之運(yùn)行App程序示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

創(chuàng)建模擬器

在運(yùn)行App之前,首先需要?jiǎng)?chuàng)建一個(gè)Android模擬器,也可以使用真機(jī)來運(yùn)行,效果更佳。

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

點(diǎn)擊Create創(chuàng)建一個(gè)Android模擬器

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

第一次啟動(dòng)的時(shí)候會(huì)有點(diǎn)慢,要等幾分鐘,啟動(dòng)以后就好了,模擬器剛啟動(dòng)后的界面是這樣的

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

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

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

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

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

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

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

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

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

這樣就得到了packageName和activityName

Capability

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

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

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

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

deviceName:設(shè)備名稱

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

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

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

autoLaunch:測試時(shí)是否需要自動(dòng)運(yùn)行app

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

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

appWaitActivity:要等待的Activity

appWaitPackage:要等待的appPackage

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

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

上述的幾個(gè)Capability只是在測試中經(jīng)常用到的,更多的Capability在用到的時(shí)候可以在網(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()

保存文件,打開Appium,點(diǎn)擊右上角的三角形按鈕啟動(dòng)Appium

出現(xiàn)> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)這行信息后,就表示Appium啟動(dòng)成功了

Appium啟動(dòng)成功后,運(yùn)行測試腳本,模擬器會(huì)運(yùn)行計(jì)算器應(yīng)用,計(jì)算加法

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 總結(jié)分析python數(shù)據(jù)化運(yùn)營關(guān)聯(lián)規(guī)則

    總結(jié)分析python數(shù)據(jù)化運(yùn)營關(guān)聯(lián)規(guī)則

    本文內(nèi)容主要介紹了python數(shù)據(jù)化運(yùn)營中關(guān)聯(lián)規(guī)則的一般應(yīng)用場景,以及關(guān)聯(lián)規(guī)則的實(shí)現(xiàn),并例舉了適應(yīng)的應(yīng)用示例,方便大家更直觀的理解應(yīng)用
    2021-08-08
  • 淺談一下Python究竟屬不屬于嵌入式語言

    淺談一下Python究竟屬不屬于嵌入式語言

    這篇文章主要介紹了淺談一下Python究竟屬不屬于嵌入式語言,大家普遍的認(rèn)為C與C++才是標(biāo)準(zhǔn)的嵌入式語言,那么現(xiàn)在大火的Python算是一種嵌入式語言嗎,需要的朋友可以參考下
    2023-04-04
  • Pytorch關(guān)于Dataset?的數(shù)據(jù)處理

    Pytorch關(guān)于Dataset?的數(shù)據(jù)處理

    這篇文章主要介紹了Pytorch關(guān)于Dataset?的數(shù)據(jù)處理,學(xué)習(xí)如何對(duì)卷積神經(jīng)網(wǎng)絡(luò)編程;首先,需要了解Pytorch對(duì)數(shù)據(jù)的使用,也是在我們模型流程中對(duì)數(shù)據(jù)的預(yù)處理部分,下面我們就一起進(jìn)入文章查看具體處理過程吧
    2021-12-12
  • Python3實(shí)現(xiàn)從文件中讀取指定行的方法

    Python3實(shí)現(xiàn)從文件中讀取指定行的方法

    這篇文章主要介紹了Python3實(shí)現(xiàn)從文件中讀取指定行的方法,涉及Python中l(wèi)inecache模塊操作文件的使用技巧,需要的朋友可以參考下
    2015-05-05
  • Django使用Profile擴(kuò)展User模塊方式

    Django使用Profile擴(kuò)展User模塊方式

    這篇文章主要介紹了Django使用Profile擴(kuò)展User模塊方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • pycharm查看變量值的4種方法匯總

    pycharm查看變量值的4種方法匯總

    因?yàn)镻ython是腳本語言,不會(huì)進(jìn)行編譯,所以只有執(zhí)行到那一行,才能知道那個(gè)變量的類型,下面這篇文章主要給大家介紹了關(guān)于pycharm查看變量值的4種方法,需要的朋友可以參考下
    2022-04-04
  • python動(dòng)態(tài)性強(qiáng)類型用法實(shí)例

    python動(dòng)態(tài)性強(qiáng)類型用法實(shí)例

    這篇文章主要介紹了python動(dòng)態(tài)性強(qiáng)類型用法,對(duì)比C#實(shí)例分析了python動(dòng)態(tài)性強(qiáng)類型的使用方法,需要的朋友可以參考下
    2015-05-05
  • Python內(nèi)置數(shù)據(jù)類型中的集合詳解

    Python內(nèi)置數(shù)據(jù)類型中的集合詳解

    這篇文章主要為大家詳細(xì)介紹了Python內(nèi)置數(shù)據(jù)類型中的集合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • python實(shí)現(xiàn)GATK多線程加速示例

    python實(shí)現(xiàn)GATK多線程加速示例

    這篇文章主要為大家介紹了python實(shí)現(xiàn)GATK多線程加速示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)(一)K近鄰法

    python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)(一)K近鄰法

    這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)理論與實(shí)戰(zhàn)第一篇,K近鄰法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評(píng)論