零基礎(chǔ)搭建app自動(dòng)化測(cè)試框架(Windows)

第一節(jié)安裝Appium

Appium官方網(wǎng)站:http://appium.io/

先安裝node.js?。node.js官方網(wǎng)站:https://nodejs.org/

以Windows?7?(64)?為例進(jìn)行安裝严望,選擇Windows?installer(.msi)??64-bit?版本進(jìn)行下載

下載完成,雙擊進(jìn)行安裝

安裝完成卷谈,打開(kāi)Windows命令提示符(CMD 命令)笤妙,敲入“npm”命令回車蚕涤。

出現(xiàn)以上信息表示安裝成功癞揉。


下面通過(guò)npm安裝Appium?纸肉。

使用淘寶源安裝cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install -g appium@1.6.3

安裝appium1.6.3版本


安裝完成之后配置環(huán)境變量,編輯path喊熟,例如添加:

C:\Program Files\nodejs\node_modules\.bin;

C:\Program Files\nodejs\;


運(yùn)行cmd柏肪,輸入:appium -v,若正常顯示版本信息芥牌,則appium環(huán)境安裝成功


節(jié)安裝Android開(kāi)發(fā)環(huán)境

安裝java?環(huán)境

java下載地址:http://www.java.com/zh_CN/download/manual.jsp

雙擊下載的JDK?烦味,設(shè)置安裝路徑。這里我們選擇默認(rèn)安裝在

C:\Program?Files?(x86)\Java\jdk1.8.0_25目錄下胳泉。?



下面設(shè)置環(huán)境變量:

“我的電腦”右鍵菜單--->屬性--->高級(jí)--->環(huán)境變量--->系統(tǒng)變量-->新建..

變量名:JAVA_HOME?

變量值:C:\Program?Files?(x86)\Java\jdk1.8.0_25?

變量名:CALSS_PATH

變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;?

變量名:PATH

變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在Windows命令提示符下輸入java看是否配置成功:

安裝android?adt?&?SDK

Android-sdk下載地址:http://dl.google.com/android/installer_r23.0.2-windows.exe

或者?http://dl.google.com/android/android-sdk_r23.0.2-windows.zip


下面設(shè)置Android環(huán)境變量拐叉,方法與java環(huán)境變量類似岩遗。(我本機(jī)的目錄為:D:\android\android-sdk-windows)

“我的電腦”右鍵菜單--->屬性--->高級(jí)--->環(huán)境變量--->系統(tǒng)變量-->新建..

變量名:ANDROID_HOME?

變量值:D:\android\android-sdk-windows

變量名:PATH

變量值:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;


安裝SDK?Platform-Tools

http://www.androiddevtools.cn/



把解壓出來(lái)的?platform-tools?文件夾放在 android sdk 根目錄下扇商,并把?adb所在的目錄添加到系統(tǒng)PATH?路徑里,即可在命令行里直接訪問(wèn)了 adb, fastboot 等工具宿礁。

安裝SDK?Build-Tools ??http://www.androiddevtools.cn/


這是Android開(kāi)發(fā)所需的Build-Tools案铺,下載并解壓后,將解壓出的整個(gè)文件夾復(fù)制或者移動(dòng)到??android sdk 根目錄/build-tools?文件夾

打開(kāi)Windows 命令提示符(CMD)梆靖,通過(guò)“appium-doctor”命令檢查appium環(huán)境控汉。

如果出現(xiàn)“All?Checks?were?successful”的提示,說(shuō)明基本環(huán)境已經(jīng)配置完成返吻。

安裝Python ?和 ?Appium?Client 包

Python下載

Python官網(wǎng):https://www.python.org/downloads/windows/

下載后姑子,雙擊下載包,進(jìn)入Python安裝向?qū)Р饨惭b非常簡(jiǎn)單街佑,你只需要使用默認(rèn)的設(shè)置一直點(diǎn)擊"下一步"直到安裝完成即可谢翎。

配置環(huán)境變量

在path添加python安裝路徑即可(我的路徑如下:)

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe

CMD 輸入python

表示環(huán)境安裝成功

集成開(kāi)發(fā)環(huán)境PyCharm

PyCharm 下載地址 :?https://www.jetbrains.com/pycharm/download/

安裝 PIP 命令 (方便以后安裝其他三方包)

進(jìn)入python Scripts 目錄

cd C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts

執(zhí)行?easy_install.exe pip命令

Scripts文件夾下會(huì)出現(xiàn)一系列和pip有關(guān)的文件,其中有pip.exe沐旨。

pip.exe的路徑也添加到環(huán)境變量PATH中

輸入命令pip如果識(shí)別成功則配置完成(可以使用pip 來(lái)安裝三方包了)

安裝Appium?Client??????pip install?Appium-Python-Client???

安裝selenium ? ? ? ? ? ? ?pip install??selenium


所有的環(huán)境配置結(jié)束


啟動(dòng)Appium

appium(按需選擇) ? ?通過(guò)CMD命令行啟動(dòng)

appium ?????????????????????#直接啟動(dòng)appium

appium --no-reset ??????????#不重置app

appium --session-override ??#覆蓋登錄信息


USB數(shù)據(jù)線連接手機(jī)

先打開(kāi)手機(jī)的開(kāi)發(fā)者選項(xiàng)森逮,打開(kāi)USB調(diào)試模式 (華為:設(shè)置—開(kāi)發(fā)者選項(xiàng)—USB調(diào)試)

USB數(shù)據(jù)線連接手機(jī),提示選擇訪問(wèn)數(shù)據(jù)模式

使用命令adb devices 查看手機(jī)是否連接成功(如果失敗磁携,有可能是手機(jī)助手占用端口褒侧,結(jié)束手機(jī)助手進(jìn)程即可)

如果出現(xiàn)該提示則連接成功

一.編寫python腳本

首先要獲取app的package name 和 launchable activity name

查看pack name和activity name ?方法如下:

1.進(jìn)入安卓build-tools ? ? ?cd D:\android-sdk-windows\build-tools\

2.輸入命令 aapt dump badging C:\Users\Administrator\Desktop\youapp.apk ?(我這里是把安卓的APK放到了桌面上,如果報(bào)錯(cuò),可能是工具問(wèn)題谊迄,將build-tools替換即可 ?https://pan.baidu.com/s/1MCNpyo7rlWsixHSqk9wV3Q)

3.找到并記錄

獲取driver

打開(kāi)pycharm 新建py文件闷供,并編輯以下代碼

from appiumimport webdriver

desired_caps = {}

desired_caps['platformName'] = 'android'

desired_caps['platformVersion'] = '7.0'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['appPackage'] = ‘a(chǎn)pp package name’(你的app包名)

desired_caps['appActivity'] = ‘a(chǎn)pp launchable-activity(你的app Activity名)

desired_caps['automationName'] = 'uiautomator2'

driver=webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

?

連接真機(jī)并啟動(dòng)appium ? 命令行輸入:appium

在pycharm空白處右擊,run運(yùn)行腳本 如果能成功打開(kāi)手機(jī)app ?則表示連接成功


二.使用uiautomatorview 查看定位框架元素

運(yùn)行D:\android-sdk-windows\tools下的 uiautomatorviewer.bat

打開(kāi)下圖UI界面



點(diǎn)擊右上角的手機(jī)圖標(biāo)抓取元素(可以先打開(kāi)你要測(cè)試的App然后點(diǎn)圖標(biāo)统诺,獲取的就是app的元素了)


在右邊可以看到已經(jīng)成功獲取到元素


我們接著在上面連接手機(jī)的代碼下繼續(xù)編碼

1.獲取并操作元素

連接手機(jī)后獲得一個(gè)driver對(duì)象这吻,操作drive對(duì)象來(lái)操作元素

可以通過(guò)class,resource-id 篙议,xpath(需要自己編寫) ?來(lái)定位元素 (元素信息在node_detail 即右下角)

driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider')

driver.find_element_by_class_name('com.huawei.android.launcher')


一般方法有click唾糯,get_attribute,send_keys

driver.find_element_by_id('com.huawei.android.launcher:id/dock_divider').click()

driver.find_element_by_class_name('com.huawei.android.launcher').send_keys('aaa')

driver.find_element_by_class_name('com.huawei.android.launcher').get_attribute('text')


其他詳細(xì)的方法可以百度查詢


進(jìn)行斷言

通過(guò)繼承python自帶的測(cè)試框架 unittest 可以使用它的斷言方法

也能自己編寫斷言例如通過(guò)判斷頁(yè)面title來(lái)斷言頁(yè)面是否跳轉(zhuǎn)成功

Title=driver.find_element_by_id('title_id').get_attribute('text')

If Title != ‘首頁(yè)’:

? ? raise print('頁(yè)面跳轉(zhuǎn)失敗')

Else:

? ? Print (‘頁(yè)面跳轉(zhuǎn)成功’)



后面可以學(xué)習(xí)python的unitest 框架鬼贱,數(shù)據(jù)驅(qū)動(dòng)模式移怯,以及代碼封裝和對(duì)象操作 ,提高代碼質(zhì)量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末这难,一起剝皮案震驚了整個(gè)濱河市舟误,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姻乓,老刑警劉巖嵌溢,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蹋岩,居然都是意外死亡赖草,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門剪个,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秧骑,“玉大人,你說(shuō)我怎么就攤上這事扣囊『跽郏” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵侵歇,是天一觀的道長(zhǎng)骂澄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)惕虑,這世上最難降的妖魔是什么坟冲? 我笑而不...
    開(kāi)封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任士修,我火速辦了婚禮,結(jié)果婚禮上樱衷,老公的妹妹穿的比我還像新娘棋嘲。我一直安慰自己,他們只是感情好矩桂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布沸移。 她就那樣靜靜地躺著,像睡著了一般侄榴。 火紅的嫁衣襯著肌膚如雪雹锣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天癞蚕,我揣著相機(jī)與錄音蕊爵,去河邊找鬼。 笑死桦山,一個(gè)胖子當(dāng)著我的面吹牛攒射,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恒水,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼会放,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了钉凌?” 一聲冷哼從身側(cè)響起咧最,我...
    開(kāi)封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎御雕,沒(méi)想到半個(gè)月后矢沿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酸纲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年买喧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亿驾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缕题。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绕辖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出无午,到底是詐尸還是另有隱情,我是刑警寧澤祝谚,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布宪迟,位于F島的核電站,受9級(jí)特大地震影響交惯,放射性物質(zhì)發(fā)生泄漏次泽。R本人自食惡果不足惜穿仪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望意荤。 院中可真熱鬧啊片,春花似錦、人聲如沸玖像。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捐寥。三九已至笤昨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間握恳,已是汗流浹背瞒窒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乡洼,地道東北人崇裁。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像束昵,于是被迫代替她去往敵國(guó)和親寇壳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354