安卓手機Appium+RF自動化測試初體驗

前提條件:

在進行手機自動化測試之前,一定要搭建好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()??

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容