APP自動化

一移稳、Appium+robot framework環(huán)境搭建

(一)犀勒、JDK環(huán)境配置(安裝java)

1.安裝JDK

image.png

安裝包中jdk-8u121-windows-x64.exe屎飘, 雙擊打開一路next。

image.png

2.配置環(huán)境變量:

(1)我的電腦右鍵屬性--->>高級系統(tǒng)設(shè)置-->>環(huán)境變量

image.png

新建系統(tǒng)變量: 變量名為:JAVA_HOME, 變量值為:安裝的java文件夾(默認為C:\Program Files\Java\jdk1.8.0_121)

然后系統(tǒng)變量Path進行下面操作:

如果系統(tǒng)為win7:

往Path里添加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

如果系統(tǒng)為win10: Path里點新建贾费,

將%JAVA_HOME%\jre\bin與%JAVA_HOME%\bin加入钦购。

image.png

3.如何驗證安裝成功? win+r鍵輸入cmd褂萧,輸入java -version如果為如下界面既為安裝成功押桃。

image.png

(二)、安裝Android SDK导犹, 配置SDK環(huán)境

1.解壓安裝包中的android-sdk_r24.4.1-windows.zip

image.png

2.點開解壓出的文件夾中的SDK Manager.exe唱凯,

進行下載相關(guān)插件,需要下載哪些谎痢,如下圖所示磕昼,Tools中的build-tools, paltform-tools以及extra中的全部。

image.png
image.png

將上述打上勾之后节猿,點擊install xx package按鈕票从。

點擊完畢之后,彈出的窗口如下圖所示滨嘱,然后點擊Accept Licence, 再點擊install既開始下載峰鄙。

image.png

3.配置環(huán)境變量:

(1)新建系統(tǒng)變量, 變量名為ANDROID_HOME, 變量值為1中解壓出的文件夾路徑

image.png

(2)然后往系統(tǒng)變量Path里添加三個:

第一個:%ANDROID_HOME%\tools九孩,

第二個:%ANDROID_HOME%\platform-tools先馆,

第三個:%ANDROID_HOME%\build-tools\29.0.3

image.png

Win7系統(tǒng)需要一次添加中間用英文分號隔開:

;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3;

4.檢驗是否安裝成功:win +r 輸入cmd,輸入adb --version躺彬,如為下圖所示煤墙,既安裝成功。

image.png

(三)宪拥、安裝Nodejs

1.雙擊安裝包中node-v12.18.1-x64.msi仿野,一路next即可。

image.png

2.環(huán)境變量會自動加上她君,所以不用添加環(huán)境變量脚作。

3.驗證是否安裝成功,win+r cmd中輸入npm缔刹, 結(jié)果為如下圖所示既成功球涛。

image.png

(四)安裝.net framework

1.安裝包中的dotNetFx45_Full_setup.exe,雙擊安裝即可校镐。如果提示已經(jīng)安裝過亿扁,可以不進行安裝。

image.png

(五)鸟廓、安裝Appium

image.png

1.將安裝包中的AppiumForWindows_1_4_16_1.zip解壓从祝,然后雙擊加壓出的appium-installer.exe文件,一路next即可引谜。記得勾選添加桌面圖標牍陌。

2.配置環(huán)境變量:

(1)將appnium安裝路徑下的node_modules.bin文件夾路徑加入系統(tǒng)變量path中,如果1中安裝步驟為默認則默認文件夾路徑為C:\Program Files (x86)\Appium\node_modules.bin

image.png

3.檢驗安裝是否成功:win +r cmd 輸入:appium-doctor如下圖所示即為成功

image.png

(六)员咽、安裝python關(guān)于appium的兩個包

1.參考web自動化時教的如何配置python pip源毒涧,進行配置pip源,使下載速度變快

2.Cmd下執(zhí)行以下命令贝室, 該命令會同時安裝Appium-Python-Client包:

python -m pip install robotframework-appiumlibrary

3.如何檢驗是否安裝成功:cmd下執(zhí)行python -m pip list, 出現(xiàn)robotframework-appiumlibrary與Appium-Python-Client即成功

image.png

如果為python2: 安裝命令需要改為下面兩條:

1.python -m pip install Appium-Python-Client==0.26

2.python -m pip install robotframework-appiumlibrary==1.4.1

(七)契讲、安裝夜神模擬器

1.安裝包中nox_setup_v6.6.1.1_full.exe, 雙擊安裝選擇自定義安裝档玻,然后選擇一個文件夾怀泊,點擊安裝即可。

2.配置環(huán)境變量误趴,將安裝的文件夾下的bin文件夾路徑加入path中霹琼,如我將其安裝在D:\my_soft文件夾下,就將D:\my_soft\Nox\bin 加入path凉当。

3.將第二大步中Android SDK解壓出的文件夾中的platform-tools文件夾下的adb.exe復(fù)制到桌面枣申,然后改名為nox_adb.exe, 然后剪切該文件看杭,剪切到夜神模擬器安裝文件夾下的bin目錄下忠藤,會提示你替換文件,點擊替換即可楼雹。 如我將夜神模擬器安裝到了D:\my_soft\Nox文件夾下模孩,

那么就剪切到D:\my_soft\Nox\bin文件夾下尖阔。

image.png
image.png

這步操作是為了將Android SDK中的abd與夜神模擬器中的nox_adb.exe版本保持一致,如果不一致榨咐,會導(dǎo)致adb無法連接夜神模擬器介却。 cmd輸入命令 adb --version后回車,再輸入nox_adb.exe --version按回車块茁,兩個版本一致即可齿坷,如下圖所示:

image.png

4.配置夜神模擬器中開啟的android系統(tǒng), 點擊系統(tǒng)應(yīng)用中的設(shè)置数焊,點擊關(guān)于平板與電腦永淌,點擊5次版本號,即開啟開發(fā)者模式佩耳,然后返回遂蛀,點擊開發(fā)者選項,打開usb調(diào)試與允許模擬位置蚕愤。

二答恶、ADB命令

一、什么是ADB

ADB全稱是Android Debug Bridge萍诱,就是起到調(diào)試橋的作用悬嗓。顧名思義,ADB就是一個Debug工具裕坊,是一個安卓端的手機調(diào)試終端包竹。

1.ADB devices

主要作用:查看當前已連接的設(shè)備,連接的計算機的安卓設(shè)備將會以列表的形式顯示籍凝;(連接計算機的Android設(shè)備或者模擬器)

2.ADB install

ADB install <apk文件路徑>主要作用:將指定的apk安裝到設(shè)備上周瞎,

安裝的apk包會放在/data/app目錄下

幾個參數(shù):

-r 強制安裝

-d 真機,多個設(shè)備中只有一個真機適用

-e 模擬器饵蒂,多個設(shè)備中只有一個模擬器適用

-s 指定設(shè)備声诸,后接序列號

ADB -s 44a188f9 install -r test.apk(其中44a188f9是序列號,通過ADB devices可獲韧硕ⅰ)

<apk文件路徑>可以從本地文件夾拖到終端中;

3.ADB uninstall

ADB uninstall<apk包名>主要作用:卸載設(shè)備上的指定程序彼乌。

ADB uninstall -k <apk包名>

-k參數(shù)作為卸載軟件時保留配置和緩存文件

4.ADB reboot

重啟安卓設(shè)備

5.ADB shell

ADB shell進入手機目錄,可以使用linux的命令渊迁。由于安卓是基于linux內(nèi)核的操作系統(tǒng)慰照。因此,在安卓上可以執(zhí)行shell命令琉朽。

如果只想執(zhí)行一條shell命令就可以采用ADB shell[linux命令]

在實際使用中毒租,經(jīng)常與grep或findstr一起使用,起到過濾作用箱叁,查看自己需要的關(guān)鍵信息

6.ADB shell su

前提手機已經(jīng)root墅垮,獲取ADB shell的root權(quán)限

使用su提權(quán)惕医,用戶命令提示符由$變?yōu)?,如果手機沒有root噩斟,會提示su:permission denied

7.ADB shell ps/top

查看當前終端中的進程信息

8.ADB pull和ADB push

ADB pull<設(shè)備中的文件路徑><本地路徑>:從模擬器或設(shè)備中復(fù)制文件到本地

ADB push<本地文件路徑><設(shè)備中的路徑>:將本地文件或目錄復(fù)制到設(shè)備和模擬器

這里還涉及到一個權(quán)限的問題曹锨,在后續(xù)在做介紹

9.ADB logcat

主要作用:查看系統(tǒng)日志在命令行中顯示調(diào)試信息孤个。

可以通過過濾來查看指定信息剃允,過濾指定字符串

ADB logcat |grep MyApp

也可以通過后面跟優(yōu)先級來僅查看指定錯誤日志優(yōu)先級日志

ADB logcat *:w

//顯示所有優(yōu)先級大于等于“warning”的日志

//優(yōu)先級是下面的字符,順序從低到高:

V-明細 verbose(最低優(yōu)先級)

D-debug調(diào)試

I-info 信息

W-warn警告

E-error 錯誤

F-fatal 嚴重錯誤

S- silent 無記載

ADB logcat -t 10 輸出最近10行日志

ADB logcat -c 清空緩存日志

ADB logcat -d 輸出緩存日志

10.ADB shell monkey

跑monkey是Android自動化測試的一種手段齐鲤,所謂monkey測試就是模擬用戶的按鍵輸入斥废、觸摸屏輸入、手勢輸入等给郊。當monkey程序在模擬器或設(shè)備運行的時候牡肉,如果用戶點擊、觸摸淆九、手勢或一些系統(tǒng)級別的事件的時候统锤,他就會產(chǎn)生隨機脈沖,所以可以用monkey的隨機重復(fù)方法對apk做壓力測試炭庙,來測試Android app的穩(wěn)定性

image.png

說明:

第一個-s指定設(shè)備饲窿,如果只連接了一臺設(shè)備,可不用該參數(shù)焕蹄;

-p <apk包名>只允許系統(tǒng)啟動指定的app逾雄,如果不指定,將允許系統(tǒng)啟動設(shè)備中的說有app腻脏,也可以指定多生成器的seed值鸦泳,如果seed相同,則兩次monkey測試所產(chǎn)生的事件序列也是相同的永品。

-v 用于指定反饋信息級別做鹰,總共分為level0、level1鼎姐、level2三個級別钾麸,級別越高輸出日志越詳細。

--throttle<毫秒數(shù)> 指定用戶操作事件的時延

--ignore-crashes指定當應(yīng)用程序崩潰時症见,monkey依然發(fā)送事件喂走,直到事件計數(shù)完成;

--ignore-timeouts當應(yīng)用程序發(fā)生ANR錯誤時谋作,monkey依然會發(fā)送事件芋肠,直到事件計數(shù)完成;

第二個-s用于指定偽隨機數(shù)

最后的數(shù)字;表示monkey程序模擬500次隨即用戶操作事件

輸出結(jié)果到D:\monkeylog.txt

終止一個monkey命令可以用kill

kill用來終止一個進程遵蚜,比如我們再跑monkey的時候怎么強制關(guān)閉monkey呢帖池?可以用kill <monkey 進程PID>

另開啟一個cmd奈惑,找到monkey的pid號,然后殺掉即可睡汹。

image.png
image.png

三肴甸、Appium+robot framework使用

一、開啟步驟

1.打開夜神模擬器

image.png

2.雙擊桌面appium圖標囚巴,打開appium

image.png

3.打開一個命令行窗口(win+r cmd)

輸入adb devices原在, 結(jié)果如下圖所示,就是連接模擬器成功彤叉。

image.png

4.打開ride.py 就是ride編輯器庶柿。

(1)新建項目,新建測試套件秽浇,新建測試用例浮庐。

(2)在測試套件處,導(dǎo)入AppiumLibrary包

image.png

二柬焕、怎么定位元素

1.使用工具审残, uiautomatorviewer.bat

是在安裝的Android SDK文件夾下的tools文件夾的uiautomatorviewer.bat

雙擊打開,會彈出這樣的窗口斑举,點擊按鈕搅轿,會顯示你的模擬器頁面。

image.png

定位方式:

Id: 就是該頁面顯示的resource_id懂昂, ride里寫法id=xxx

Text: 頁面上展示的text, ride里寫法: xpath=//*[@text=”xxxx”]

坐標的定位方式

Xpath

image.png

三介时、常用關(guān)鍵字介紹

1.Open Application

(1)第一個參數(shù):http://localhost:4723/wd/hub 用來連接appium, 端口號為appium開啟時顯示的凌彬。

(2)第二個參數(shù)(固定寫死):platformName=Android 用來表示是什么系統(tǒng)

(3)第三個參數(shù):platformVersion=xxxxx

①Xxxx使用adb命令來獲确腥帷:adb shell getprop ro.build.version.release 該命令執(zhí)行后顯示的什么,這個參數(shù)的值就寫成什么

image.png

(4)第四個參數(shù):deviceName=xxxxxx

①xxxxx使用abd命令來獲炔病:adb devices -l 執(zhí)行后褐澎, 結(jié)果中的model值,如下圖所示伐蒋,那么該參數(shù)的值就是SM_N960F

image.png

(5)第五個參數(shù)(固定寫死):automationName=appium 使用的自動化驅(qū)動名

(6)第六個參數(shù):appPackage=xxxxxx

(7)第七個參數(shù):appActivity=xxxxxx

①第六個參數(shù)和第七個參數(shù)可以使用同一個adb命令來取到:adb shell dumpsys activity | findstr “mResume”

②怎么使用這個adb命令

1)夜神模擬里把你想要測試的app打開

2)在cmd中輸入這個adb命令

adb shell dumpsys activity | findstr “mResume”

如果該命令輸入后不顯示工三,那么就,先adb shell 進入安卓系統(tǒng)先鱼,然后執(zhí)行

dumpsys activity | grep “mResume”

image.png

(8)第八個參數(shù): unicodeKeyboard=True input text輸入中文的時候會沒有效果俭正,啟動時需要添加這個參數(shù)。

image.png

2.Close Application 關(guān)閉app,不需要任何參數(shù)

3.Click Element 定位方式

4.Click A Point x=整數(shù) y=整數(shù)

5.Input text+位置+輸入內(nèi)容

(1)輸入內(nèi)容為中文的時候,會沒有效果

(2)需要這樣操作,第八個參數(shù)寫上再寫一個變量前面要寫個u

image.png

6.Clear text 位置

7.Go back 返回

8.Swipe

a點的x值 a點的y值 b點的x值 b點的y值

從a點拖b點所用時間單位是ms

(1)實現(xiàn)的功能是從a點拖到b點

(2)如果是實現(xiàn)上下拉叉庐, 坐標點的x值不用變疯攒。只需要變化y值

(3)值為0的時候比較特殊儿惫,如果坐標點的x值或者y值寫的是0的話澡罚,是取x或者y的最大值的一半。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載肾请,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者留搔。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铛铁,隨后出現(xiàn)的幾起案子隔显,更是在濱河造成了極大的恐慌,老刑警劉巖避归,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣月,死亡現(xiàn)場離奇詭異,居然都是意外死亡梳毙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門捐下,熙熙樓的掌柜王于貴愁眉苦臉地迎上來账锹,“玉大人,你說我怎么就攤上這事坷襟〖榧恚” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵婴程,是天一觀的道長廓奕。 經(jīng)常有香客問我,道長档叔,這世上最難降的妖魔是什么桌粉? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮衙四,結(jié)果婚禮上铃肯,老公的妹妹穿的比我還像新娘。我一直安慰自己传蹈,他們只是感情好押逼,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惦界,像睡著了一般挑格。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沾歪,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天漂彤,我揣著相機與錄音,去河邊找鬼。 笑死显歧,一個胖子當著我的面吹牛仪或,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播士骤,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼范删,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拷肌?” 一聲冷哼從身側(cè)響起到旦,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巨缘,沒想到半個月后添忘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡若锁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年搁骑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片又固。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡仲器,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仰冠,到底是詐尸還是另有隱情乏冀,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布洋只,位于F島的核電站辆沦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏识虚。R本人自食惡果不足惜肢扯,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舷礼。 院中可真熱鬧鹃彻,春花似錦、人聲如沸妻献。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽育拨。三九已至谨履,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熬丧,已是汗流浹背笋粟。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人害捕。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓绿淋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尝盼。 傳聞我的和親對象是個殘疾皇子吞滞,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359