Appium做IOS自動化必須要用mac
appium用python開發要裝下面的包
pip install appium-python-client
安裝Appium Server

安裝JDK
安卓APP的自動化,必須要安裝安卓SDK(後面會講到),而安卓SDK需要 JDK 環境
安裝 Android SDK
對于安卓APP的自動化,Appium Server 是需要 Android SDK的。
因為要用到裡面的一些工具,比如 要執行指令設定手機、傳送檔案、安裝應用、檢視手機界面等。
下載下傳最新的 Android SDK檔案包:
androidsdk.zip
,并且解壓,即可。
- 在D盤建立一個檔案夾androidSDK,裡面建兩個檔案夾分别叫platform-tools和tools,把剛下載下傳的壓縮檔案
解壓内容全部複制到androidSDK這個檔案夾裡androidsdk.zip
appium的安裝與使用 - 添加一個 環境變量
設定值為sdk包解壓目錄, 例如變量值輸入D:\androidSDK,路徑結尾不能含有“;”分号ANDROID_HOME,
- 配置環境變量path,變量值輸入%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
通過adb操作與手機通信
adb操作指令:
#列出連接配接電腦上的安卓裝置
adb devices -l
如果你應用已經安裝在手機上了,可以直接打開手機上該應用,進入到你要操作的界面
然後執行
adb shell dumpsys activity recents | find "intent={"
會顯示如下,最近的 幾個 activity 資訊,
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.ui.splash.SplashActivity}
intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000300cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}
intent={flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity bnds=[48,1378][10322746]}
intent={flg=0x10000000 cmp=com.tencent.mm/.ui.LauncherUI}
其中第一行就是目前的應用,我們特别關注最後
cmp=tv.danmaku.bili/.ui.splash.SplashActivity
應用的package名稱就是 tv.danmaku.bili
應用的啟動Activity就是 .ui.splash.SplashActivity
adb 連接配接模拟器,我的是mumu模拟器,操作如下:
1、mumu模拟器打開開發者模式,設定--關于平闆電腦--版本号(點選三次)(有開發者選項直接點選進入);打開usb調試
各模拟器adb連接配接端口
夜神安卓模拟器 62001
逍遙模拟器 21503
藍疊模拟器 5555
雷電 5555
天天 5037
mumu 7555
Genymotion 5555
騰訊手遊助手 adb connect 127.0.0.1:5555
在cmd指令行:adb connect 127.0.0.1:7555,如下狀态表示連接配接成功
連接配接安卓手機時的,需要的配置
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
desired_caps = {
'platformName': 'Android', # 被測手機是安卓
'platformVersion': '10', # 手機安卓版本
'deviceName': 'xxx', # 裝置名,安卓手機可以随意填寫
'appPackage': 'com.jiaparts.dsy', # 啟動APP Package名稱
'appActivity': '.ui.StartActivity', # 啟動Activity名稱
'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True
'resetKeyboard': True, # 執行完程式恢複原來輸入法
'noReset': True, # 不要重置App,如果沒有的話,每次執行自動化前會重置APP的資料,像剛剛安裝的狀态一樣
'newCommandTimeout': 6000, #連接配接逾時時間
'automationName' : 'UiAutomator2' #appium的自動化版本
# 'app': r'd:\apk\bili.apk',
}
# 連接配接Appium Server,初始化自動化環境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 設定預設等待時間
driver.implicitly_wait(5)
連接配接模拟器,deviceName 改為 所連接配接的 模拟器 的 位址端口
{
"automationName": "uiautomator2",
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:21503",
"appPackage": "com.jiaparts.dsy",
"appActivity": "com.jiaparts.dsy.ui.StartActivity"
}