>以下基於 python3.8;airtestIDE1.2.9;airtest1.1.11;pocoui1.0.82
什么是Android原生應用,簡單說就是沒有使用Webview,也不是游戲app。如果一個App有Webview則是混合應用,目前市面上大部分App是混合應用。
首先連接設備,可以參考之前文章:AirtestIDE連接安卓真機及常見問題
連接好設備后,在AirtestIDE左下的Poco輔助窗,選擇Android,此時AirtestIDE會向手機安裝Pocoservice.apk,有些手機需要給予權限后才能安裝成功,另外會彈一個版本相關的提示,點確定即可。
之后AirtestIDE會啟動Pocoservice,它會每隔幾秒抓取手機當前界面的控件樹信息,並更新到Poco輔助窗下面。
如果Pocoservice啟動失敗,可能會導致Pocoservice.apk反復重裝,此時可以檢查以下幾個方面:
-
是否Android版本過低,Poco支持Android SDK API ≥ 19,即Android 4.4及以上
-
請關閉PC或手機上連接的網絡代理Proxy,否則可能導致連不上Poco
-
可以嘗試卸載手機中的2個Pocoservice相關的APK后,手工重新安裝一遍,在AirtestIDE目錄下的\poco\drivers\android\lib目錄下能夠找到這兩個APK
-
部分vivo和oppo手機需要將手機設置-輸入法設置中,把Yosemite輸入法設置為默認輸入法+當前輸入法
一個計算器的腳本實例
每個手機都自帶計算器,首先我們需要獲取手機上計算器應用的包名。打開計算器,在PC中輸入命令:
adb shell dumpsys activity top
之后我們可以在輸出中找到包名,每個系統內容可能不太一樣,我的是com.miui.calculator
接下來我們就寫一個1+1=2的例子
# -*- encoding=utf8 -*- from airtest.core.api import * from poco.drivers.android.uiautomation import AndroidUiautomationPoco # 連接設備、初始化日志路徑 auto_setup(__file__, logdir=True, devices=["Android:///"]) # 啟動計算器 start_app("com.miui.calculator") sleep(3) # 初始化安卓原生poco poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) # 依次點1+1=,這塊代碼可以使用IDE左下的錄制功能 poco("com.miui.calculator:id/digit_1").click() poco("com.miui.calculator:id/op_add").click() poco("com.miui.calculator:id/digit_1").click() poco("com.miui.calculator:id/btn_equal_s").click() # 獲取結果控件的文本並斷言,可以使用IDE左下的鎖定功能,並找到結果控件 r = poco("com.miui.calculator:id/result").get_text() assert_equal("= 2", r, "結果=2")
錄制和查找控件不會用可以看之前文章:AirtestIDE基本功能(一)
寫完后運行,正常執行完畢。點擊生成報告
---------------------------------------------------------------------------------
關注微信公眾號即可在手機上查閱,並可接收更多測試分享~