一移稳、Appium+robot framework環(huán)境搭建
(一)犀勒、JDK環(huán)境配置(安裝java)
1.安裝JDK
安裝包中jdk-8u121-windows-x64.exe屎飘, 雙擊打開一路next。
2.配置環(huán)境變量:
(1)我的電腦右鍵屬性--->>高級系統(tǒng)設(shè)置-->>環(huán)境變量
新建系統(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加入钦购。
3.如何驗證安裝成功? win+r鍵輸入cmd褂萧,輸入java -version如果為如下界面既為安裝成功押桃。
(二)、安裝Android SDK导犹, 配置SDK環(huán)境
1.解壓安裝包中的android-sdk_r24.4.1-windows.zip
2.點開解壓出的文件夾中的SDK Manager.exe唱凯,
進行下載相關(guān)插件,需要下載哪些谎痢,如下圖所示磕昼,Tools中的build-tools, paltform-tools以及extra中的全部。
將上述打上勾之后节猿,點擊install xx package按鈕票从。
點擊完畢之后,彈出的窗口如下圖所示滨嘱,然后點擊Accept Licence, 再點擊install既開始下載峰鄙。
3.配置環(huán)境變量:
(1)新建系統(tǒng)變量, 變量名為ANDROID_HOME, 變量值為1中解壓出的文件夾路徑
(2)然后往系統(tǒng)變量Path里添加三個:
第一個:%ANDROID_HOME%\tools九孩,
第二個:%ANDROID_HOME%\platform-tools先馆,
第三個:%ANDROID_HOME%\build-tools\29.0.3
Win7系統(tǒng)需要一次添加中間用英文分號隔開:
;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3;
4.檢驗是否安裝成功:win +r 輸入cmd,輸入adb --version躺彬,如為下圖所示煤墙,既安裝成功。
(三)宪拥、安裝Nodejs
1.雙擊安裝包中node-v12.18.1-x64.msi仿野,一路next即可。
2.環(huán)境變量會自動加上她君,所以不用添加環(huán)境變量脚作。
3.驗證是否安裝成功,win+r cmd中輸入npm缔刹, 結(jié)果為如下圖所示既成功球涛。
(四)安裝.net framework
1.安裝包中的dotNetFx45_Full_setup.exe,雙擊安裝即可校镐。如果提示已經(jīng)安裝過亿扁,可以不進行安裝。
(五)鸟廓、安裝Appium
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
3.檢驗安裝是否成功:win +r cmd 輸入:appium-doctor如下圖所示即為成功
(六)员咽、安裝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即成功
如果為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文件夾下尖阔。
這步操作是為了將Android SDK中的abd與夜神模擬器中的nox_adb.exe版本保持一致,如果不一致榨咐,會導(dǎo)致adb無法連接夜神模擬器介却。 cmd輸入命令 adb --version后回車,再輸入nox_adb.exe --version按回車块茁,兩個版本一致即可齿坷,如下圖所示:
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)定性
說明:
第一個-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號,然后殺掉即可睡汹。
三肴甸、Appium+robot framework使用
一、開啟步驟
1.打開夜神模擬器
2.雙擊桌面appium圖標囚巴,打開appium
3.打開一個命令行窗口(win+r cmd)
輸入adb devices原在, 結(jié)果如下圖所示,就是連接模擬器成功彤叉。
4.打開ride.py 就是ride編輯器庶柿。
(1)新建項目,新建測試套件秽浇,新建測試用例浮庐。
(2)在測試套件處,導(dǎo)入AppiumLibrary包
二柬焕、怎么定位元素
1.使用工具审残, uiautomatorviewer.bat
是在安裝的Android SDK文件夾下的tools文件夾的uiautomatorviewer.bat
雙擊打開,會彈出這樣的窗口斑举,點擊按鈕搅轿,會顯示你的模擬器頁面。
定位方式:
Id: 就是該頁面顯示的resource_id懂昂, ride里寫法id=xxx
Text: 頁面上展示的text, ride里寫法: xpath=//*[@text=”xxxx”]
坐標的定位方式
Xpath
三介时、常用關(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ù)的值就寫成什么
(4)第四個參數(shù):deviceName=xxxxxx
①xxxxx使用abd命令來獲炔病:adb devices -l 執(zhí)行后褐澎, 結(jié)果中的model值,如下圖所示伐蒋,那么該參數(shù)的值就是SM_N960F
(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”
(8)第八個參數(shù): unicodeKeyboard=True input text輸入中文的時候會沒有效果俭正,啟動時需要添加這個參數(shù)。
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
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的最大值的一半。