一、環境搭建,參考:
https://www.cnblogs.com/wxinyu/p/16016918.html
二、模擬器配置(或者使用真機)
1、下載夜神模擬器
2、將D:\software\AndroidSDK24.4.1\platform-tools目錄下的adb.exe復制到D:\software\Nox\bin目錄下,分別替換D:\software\Nox\bin目錄下的adb.exe和nox_adb.exe
3、啟動夜神模擬器
4、使用adb devices命令查找設備鏈接,出現127.0.0.1:62001的代表配置成功
5、在模擬器中安裝被測程序
三、元素定位工具
做自動化測試最重要的是要先定位到元素,appium定位元素和selenium類似,准確的說appium也是繼承了selenium的方法。
工具1、uiautomatorviewer
uiautomatorviewer是Android SDK自帶的元素定位工具
a)前置條件:通過真機或虛擬機連接上電腦,可通過adb devices命令驗證
b)雙擊打開uiautomatorviewer.bat工具,工具在AndroidSDK安裝目錄的tools文件夾中
c)選擇圖中標記的區域,可展示手機當前頁面的元素

d)通過點擊手機頁面相關區域,在右邊可以看到app的xml結構樹,可以獲取到每個節點的詳細屬性,例如text、class等,拿到元素信息后就可以使用代碼來操作了

工具2、weditor
weditor是基於瀏覽器技術的UI查看器,直接在瀏覽器打開。
a)安裝weditor庫
pip install -U weditor # 該命令會安裝uiautomator2和Facebook-wda兩個庫,分別支持Android和ios的app
執行該命令后,報錯下圖
解決辦法:
已知目前版本是0.6.5,所以嘗試降低一下版本安裝
pip install weditor==0.6.4
查看版本:pip list | findstr weditor

大功告成!!!
b)第一次連接時需要在手機上安裝工具
python -m uiautomator2 init # 執行該命令會自動向手機端安裝 ATX和com.github.uiautomator.test兩個工具
c)啟動weditor服務
命令行輸入 python -m weditor

此時會在瀏覽器中自動訪問 http://localhost:17310/ 可看到設備的當前停留頁面
重點提醒:選擇設備后方的輸入框中一定要輸入你連接了電腦的設備名稱,不然會一直報錯 Local server not started, start with $ python -m weditor

注意:
如果用appium編寫APP自動化用例,而使用weditor來查看頁面元素。在運行appium用例腳本時需要停止UiAutomator守護服務,因為UiAutomator相關進程會導致appium依賴的uiautomatorviewer 服務無法運行。
關閉方法參考文檔:https://github.com/openatx/uiautomator2#stop-uiautomator
d)常見報錯
1、啟動程序報錯: ModuleNotFoundError: No module named 'cv2' 解決辦法: pip install opencv-python
2、啟動程序報錯: No module named ‘StringIO’ 解決辦法: 找到報錯的main文件,打開將“import StringIO”注釋掉,添加如下代碼:
try: from io import StringIO except ImportError: from cStringIO import StringIO
工具3、Appium Inspector
a)啟動Appium服務(可通過命令行 輸入 appium 啟動,或通過GUI啟動)
b)打開Appium Inspector工具
c)可手動添加Desired Capabilities

d)常用參數

具體參數參照:
https://appium.io/docs/en/writing-running-appium/caps/
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
e)設置好以下這些參數后,點擊右下角【Start Session】,可以獲取到每個節點的詳細屬性。

四、用例錄制

五、查找Packagename和Activity
方法1、 adb shell "logcat | grep START"
方法2、 下載AAPT build-tools,並配置環境變量,下載地址:https://androidaapt.com/ aapt dump badging xx.apk (apk的絕對路徑) 這個命令會輸出很多東西,翻到最前方,找到package:name=xxx,引號中的就是packagename 向下拉,找到launchable-activity:name=xxx,引號中的就是activity name
六、自動化代碼編寫
1、前置條件
a)啟動Appium服務。--在命令行中輸入
appium
2、連接手機--使用python
a)導入webdriver
from appium import webdriver
b)連接設備和App
from appium import webdriver server = 'http://localhost:4723/wd/hub' # appium服務器的地址,端口默認就是4723,啟動appium服務時,可看到端口號 devices_system = { 'platformName': 'Android', # 平台名 'driverName': 'A5RNW17C03006527', # 設備名,可通過adb devices查詢 'platformVersion': '8.0.0', # 系統版本,可通過該命令查詢adb shell getprop ro.build.version.release,若是鴻蒙系統,寫10.0(實際測試鴻蒙系統貌似不支持連接uiautomatorviewer工具) 'appPackage': 'com.xxx', # 被測系統的包名,可通過adb shell "logcat | grep START"查詢 'appActivity': 'xxx.WelcomeActivity' # 被測系統的Activity,可通過adb shell "logcat | grep START"查詢 } driver = webdriver.Remote(server,devices_system) # 連接手機和App
c)運行測試一下,以上代碼會執行打開App操作
說明:首次運行時,會自動向手機中安裝應用:Appium Settings、io.appium.uiautomato2.server這兩個工具
