一、简介
tidevice(类似安卓adb命令),用来做iOS自动化的工具,不用必须使用Mac挂着xcode,用Windows也可以启动苹果上的 WebDriverAgent 了。
tidevice 的github文档:https://github.com/alibaba/taobao-iphone-device
二、使用方法
在本地python环境中,使用pip install tidevice命令安装 tidevice 库。(仅支持python3.7及以上版本)
使用tidevice时,需要提前安装iTunes,并连接手机
注意:打开代理的情况(charles、Fiddler)会下载失败,关闭后重新下载即可
三、常用命令
#查看所有连接上的设备:
$tidevice list
#截图:
tidevice screenshot screenshot.jpg
#启动苹果设置:--手机会自动打开设置界面
tidevice launch com.apple.Preferences
#查看已安装的第三方应用
tidevice applist
指定设备安装:
# $UDID可以使用tidevice list命令查看
tidevice -u $UDID install D:/test.ipa
四、自动化压测
难点:手机安装WebDriverAgent
确保手机上已经安装上WebDriverAgent
对于未跑过自动化的iOS设备,需要先检查设备上是否安装好了WebDriverAgent这个APP,如未安装,则可以通过以下2种方式安装:
① 将iOS设备与一台Mac连接,然后使用xcode编译源码安装,成功安装WebDriverAgent即可脱离Mac;
安装方法参考:https://testerhome.com/topics/7220
② 使用tidevice的安装命令,将开发者证书重签名的 WebDriverAgent.ipa 安装到iOS设备上。
注意点:
部署iOS测试平台需要苹果开发者证书,现在使用个人Apple ID登陆即可,不需要另外注册付费开发者账号
个人版的免费证书,每隔7天左右,要手动更新开发者证书;
需要手动的在iPhone中选择信任证书,通用->设备管理->选择信任;
最多支持3台设备;
建议:使用公司的企业账号或个人收费账号测试(企业账号可以绑定100台也不需要更新证书)
安装成功之后查看:
压测方法1:使用uiautomator2实现压测自动化
#使用wdaproxy启动服务
# tidevice wdaproxy -B com.facebook.wda.WebDriverAgent.Runner --port 8100 (端口号可以随意写)
idevice -u 设备号 wdaproxy -B com.yummy1.WebDriverAgentRunner.xctrunner --port 8100
启动成功后会提示:WebDriverAgent start successfully
#启动后自动打开uiautomator2
python -m weditor
#访问这台ios设备信息
使用wdaproxy启动之后,可以在浏览器中使用http://localhost:8100/status来访问到这个iOS:
压测方法2:使用IDE连接tidevice启动iOS
#查看设备里WebDriverAgent的BundleID
tidevice applist
指定BundleID启动:
tidevice xctest -B com.yummy1.WebDriverAgentRunner.xctrunner
#在IDE的设备连接窗口连接iOS设备
打开最新版的IDE,在连接iOS设备框中输入:
AirtestIDE工具官网安装下载:https://www.cnblogs.com/zhu520/p/11389467.html
# DeviceIdentifier可以在启动的信息中查看
http+usbmux://DeviceIdentifier
eg:http+usbmux://设备号
此时即可在IDE中实时看到iOS的设备画面,并且对该设备进行自动化测试: