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"
}