Android 自動化測試踩坑記錄(一)

測試用例中需要讀寫SD卡中文件,一直報FileNotFoundException

因為我測試的應用接口,需要讀取SD卡文件,反復確認文件存在且名稱正確
image.png

但運行總是報文件不存在,我想到了權限問題,于是在AndroidManifest.xml中添加了權限


image.png

運行依然報錯,然后我想到普通android應用,這些權限都是需要用戶手動授權的,但做自動化測試的時候手動授權太不方便了,終于查到了自動測試過程中自動授權方法,于是在測試用例類中添加如下


image.png

問題解決終于可以讀取本地文件了

如何在Activity運行的基礎上啟動測試

因我是做sdk接口自動化,sdk是基于頁面的一個surfaceview處理的一系列接口,所以必須要先添加UI界面,將sdk中的surfaceview綁定到應用界面后才能測試,可使用ActivityTestRule 這個規(guī)則,如下代碼,這個MainActivity會在測試啟動前啟動,測試結果后銷毀

image.png

Android測試用例運行

./gradlew connectAndroidTest 也可縮寫 ./gradlew cAT

好處:可自動更新代碼運行,并生成測試報告 在build/report目錄下
壞處:每次運行完都會卸載測試應用,國產(chǎn)手機因為一些系統(tǒng)禁止測試應用自啟動,每次需求設置白名單才可運行成功,但是卸載的話每次都要設置白名單,不利于自動化集成

如果想要不卸載直接執(zhí)行,可使用adb指令
adb shell am instrument -w package/runner
這樣只要設置一次白名單以后都可自動執(zhí)行了,但是這樣做又不能生成測試報告,真是個郁悶的結果?。?/p>

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容