前提條件:
在進行手機自動化測試之前,一定要搭建好appium環(huán)境,具體步驟可回看上一篇APP自動化安裝篇:appium環(huán)境搭建
一、連接設備
將手機連接好電腦后,一定要打開手機的開發(fā)者選項和USB調試

打開電腦的管理員cmd,這里可能和電腦有關系,我試過使用普通cmd運行adb命令會提示:'adb' 不是內部或外部命令,也不是可運行的程序或批處理文件。但其他電腦用普通cmd也能正常使用adb命令。
在管理員cmd中執(zhí)行命令adb devices,可以查看當前有哪些設備連接了電腦,這里我連接電腦的手機已經(jīng)識別出來了。如果覺得沒把握,可以拔掉手機執(zhí)行adb devices,這時連接列表一定是空的,然后再插上手機執(zhí)行adb devices,那么識別出來的設備就一定是你的手機了

如果連接手機后沒有識別出來,或者之后要用IP地址的連接方式也可以手動連接。
1、保證手機的IP和電腦的IP要在同一個網(wǎng)段內,簡單地說就是手機電腦都用一個WiFi
2、要開啟5555端口,執(zhí)行命令adb tcpip 5555
3、通過手機的IP連接,執(zhí)行命令adb connect *.*.*.*
執(zhí)行完以上三步后,再用adb devices查看就能看到以IP連接的設備了。圖中由于我已經(jīng)開過5555端口,所以我這里提示重啟5555,如果是第一次開放不會有任何提示

二、準備測試腳本
連接好了手機自然要開始試試是不是可以自動化運行了,但首先我們要寫一個最簡單的腳本用到最基礎的關鍵詞Open Application,先來說說這個關鍵詞的語法

http://localhost:4723/wd/hub:Appium所在路徑(由于appium搭建在本機,所以url格式固定不變)
platformName:平臺名稱,Android或者ios
platformVersion:平臺版本,也就是Android的版本號
deviceName:設備名稱,即連接的手機(或模擬器)的名稱
appPackage:app的包名
appActivity:app的activity名字
unicodeKeyboard、resetKeyboard:兩個和鍵盤相關的參數(shù),如果要使用鍵盤且要使用中文,兩個參數(shù)都設為true;如果不用鍵盤,不要這兩個參數(shù)也行
前面的幾個值中重點講下deviceName、appPackage、appActivity如何填寫
deviceName就是我們用adb devices看到的已連接的設備,可以直接使用47b6f095,也可以使用192.168.137.105:5555,效果是一樣的

appPackage、appActivity就需要通過命令獲取了,前提條件一定要在手機中打開要測試的應用才能獲取
1、如果設備連接表中只有一個設備,執(zhí)行
>> adb shell
>>? dumpsys activity | grep mFocusedActivity
2、如果設備連接表中像我現(xiàn)在有兩個設備,執(zhí)行
>> adb -s devicesID shell
>>? dumpsys activity | grep mFocusedActivity
獲取到的值/前面的是appPackage,/后面的是appActivity,執(zhí)行exit命令退出shell

三、測試
經(jīng)過前面的兩步,終于可以運行自動化了,但在開始之前還有幾點要完成
1、打開Appium軟件,并運行

2、手機端安裝控制軟件,這個不用自己去安裝,Appium運行起來后,我們把RF的腳本跑起來,手機會自動要求安裝兩個軟件AppiumSettings、Unlock,直接安裝即可

再次運行腳本,APP自動化終于可以跑起來了?。?!
四、踩過的坑
在第三步測試階段遇到兩個問題
問題一:每次運行腳本就不停的要求安裝AppiumSettings、Unlock導致自動化沒法繼續(xù)
解決辦法:
由于我的Appium版本很老是1.4的,找不到網(wǎng)上解決辦法中的文件(網(wǎng)上都是基于Appium1.6或以上的),最終通過修改...\Appium\node_modules\appium\lib\devices\android\android.js這個文件,將大概112、113、114、117這四行注釋掉(以內容為準),再重啟Appium后問題解決,不再要求安裝這兩個文件


問題二:RF報錯:Keyword 'Capture Page Screenshot' could not be run on failure: No application is open
解決辦法:
修改...\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js文件,大概在位置1139行左右(以上下文內容為準),添加代碼:outlines.shift()??

