阿里最强 Python 自动化工具开源了!
1. 前言
大家好,我是安果!
最近,阿里内部开源了一个 iOS 端由 Python 编写的自动化工具,即:tidevice
它是一款跨平台的自动化开源工具,不依赖 Xcode 就可以启动 WebDriverAgent( WDA ),这也就意味着 Windows 可以直接运行 iOS 自动化脚本
项目地址:
https://github.com/alibaba/taobao-iphone-device
2. 准备
进入到虚拟环境,先安装 tidevice 的依赖包
# 安装依赖包
pip3 install -U "tidevice[openssl]"
# 查看tidevice版本,检查是否安装成功
tidevice version
3. 常见功能
将 iPhone 设备连接到电脑上,就可以使用 tidevice 提供的功能了
3-1 查看设备列表
# 二选一
tidevice list
# json数据显示
tidevice list --json
3-2 安装、卸载应用
安装对应的关键字为:「 install 」
tidevice 同时支持安装本地 ipa 包和远链下的 ipa 应用包
另外,tidevice 可以使用「 --udid 」参数将应用安装到某一台设备中
# 安装本地应用
tidevice install example.ipa
# 根据udid参数,指定设备安装应用
tidevice --udid $UDID install https://example.org/example.ipa
tidevice install https://.....ipa
卸载对应的关键字为:「 uninstall 」
通过应用包名可以卸载设备上的某一个应用
# 卸载应用(通过包名)
# 比如:知识星球App包名为:com.unnoo.quan
tidevice uninstall com.unnoo.quan
3-3 启动、关闭应用
启动应用对应的关键字为:「 launch 」
关闭应用对应的关键字为:「 kill 」
# 打开应用
tidevice launch com.unnoo.quan
# 停止杀死应用
tidevice kill com.unnoo.quan
3-4 已安装应用及名称、版本
使用「 tidevice applist 」命令,可以查看设备上已经安装的应用、应用名称、应用版本号
# 查看设备应用信息列表
localhost:tidevice_demo xingag$ tidevice applist
com.tencent.xin WeChat 8.0.2
com.ss.iphone.ugc.Aweme 抖音 13.4.0
com.tencent.mttlite QQ浏览器 10.8.3
com.panasonic.jp.imageapp Image App 1.10.17
com.unnoo.quan 知识星球 4.20.2
co.visualsupply.cam VSCO 189
com.ucweb.iphone.lowversion UC浏览器 13.1.5
com.niksoftware.snapseedforipad Snapseed 2.19.5
com.autonavi.amap 高德地图 10.76.0
com.lagou.education 拉勾教育 1.4.9
com.xunmeng.pinduoduo 拼多多 5.37.0
com.tencent.QQMusic QQ音樂 10.5.5
io.ideamp.feelcab Feelca B 1.6.0
com.chinaunicom.mobilebusiness 手机营业厅 8.00.01
com.feiyu-tech.vico Vicool 1.2.26
com.ss.iphone.article.News 今日头条 7.9.3
com.sogou.sogouinput 搜狗输入法 10.18.1
org.geekbang.GeekTime 极客时间 2.9.2
com.burbn.hyperlapse Hyperlapse 1.3.4
com.apple.itunesu iTunes U 3.8
3-5 设备信息
利用「 tidevice info 」可以查看设备信息,比如:设备序列号、系统版本、CPU、本机号码、时间戳、蓝牙地址、MAC 地址等信息
# 查看设备信息
localhost:~ xingag$ tidevice info
MarketName: iPhone SE (1st generation)
DeviceName: xingag
ProductVersion: 14.4
ProductType: iPhone8,4
ModelNumber: MP892
SerialNumber: ...
CPUArchitecture: arm64
ProductName: iPhone OS
ProtocolVersion: 2
RegionInfo: ZP/A
TimeIntervalSince1970: 1616979424.235399
TimeZone: Asia/Shanghai
WiFiAddress: 58:e2:8f:68:4c:b0
BluetoothAddress: 58:e2:8f:68:4c:b1
BasebandVersion: 10.40.01
...
如果要查看设备的电池信息,可以使用关键字 「 --domain + 应用包名 」来获取
# 查看设备电池信息
localhost:~ xingag$ tidevice info --domain com.apple.mobile.battery --json
{
"BatteryCurrentCapacity": 54,
"BatteryIsCharging": true,
"ExternalChargeCapable": true,
"ExternalConnected": true,
"FullyCharged": false,
"GasGaugeCapability": true,
"HasBattery": true
}
3-6 重启及截图
重启对应的关键字为:「 reboot 」
截图对应的关键字为:「 screenshot 」
# 重启设备
tidevice reboot
# 截图并保存到文件 screenshot.jpg 中
tidevice screenshot screenshot.jpg
3-7 系统日志及更多帮助
查看系统日志的命令为:「 tidevice syslog 」,当然也可以配置 grep 参数进行过滤
# 查看系统日志
tidevice syslog
# 更多帮助
tidevice -h
4. 自动化步骤
要完成 iOS 端的自动化,我们还需要做一些准备工作
4-1 安装 WDA
我们需要将 WebDriverAgent 安装到 iOS 设备上,通过它驱动手机进行一系列自动化操作
PS:由于 Facebook WDA 很长时间没有更新了,这里建议直接使用 Appium WDA
https://github.com/appium/WebDriverAgent
下载项目后,使用 Xcode 打开,Scheme 选择 WebDriverAgentRunner,设备选择真机
然后配置开发者证书,可以参考下面链接进行配置
https://testerhome.com/topics/7220
最后,Xcode 选择 Project 下的 Test 将项目运行到真机设备上
注意:第一次运行 WDA 可能运行失败,需要手动在设置中对证书添加信任
4-2 运行 WDA
真机设备安装完 WDA 后,就可以脱离 Mac,使用 Windows 进行自动化操作了
使用「 tidevice wdaproxy 」命令可以运行 WDA 和端口转发
# 运行 WDA
# 端口转发到8100
# 应用包名:com.facebook.WebDriverAgentRunner.xingag23.xctrunner
idevice wdaproxy -B com.facebook.WebDriverAgentRunner.xingag23.xctrunner --port 8100
PS:由于 Xcode 设置证书的时候,更改过 bundle_id,所以这里的包名是一个变量
4-3 编写自动化脚本
接下来,就可以使用 Appium 或 facebook-wda 编写脚本并运行到 iOS 设备上了
以 facebook-wda 为例
首先,我们安装对应的依赖
# 安装facebook-wda依赖
pip3 install -U facebook-wda
接着,编写自动化脚本并运行测试
import wda
import time
# 连接设备
c1 = wda.USBClient()
# c1 = wda.Client("http://10.3.209.175:8100")
print(c.info)
# 极客时间
bundle_id = 'org.geekbang.GeekTime'
# 通过app的bundleId启动App
s = c1.session(bundle_id)
# 休眠5s
s.sleep(5)
# 截图保存到本地
c1.screenshot('sc.png')
# 回到桌面
s.home()
5. 最后
阿里这款 iOS 端自动化工具的主要优点是启动速度快,内存占用低;更重要的是,它是跨平台,稳定性相对较高
更多 Python 自动化、爬虫相关的技术干货,可以关注公众号「 AirPython 」来解锁!
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
阿里最强 Python 自动化工具开源了!的更多相关文章
- 微软最强 Python 自动化工具开源了!不用写一行代码!
1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python 它支持主流的浏览器,包含:Chrome.Firefox.Safari.Microsoft E ...
- python自动化工具之pywinauto(一个实例)结合pyuserinput
以下是pywinauto使用指南.这个窗口句柄可以在Spy++中查看 (Microsoft Spy++(查看窗口句柄) 10.00.30319 官方最新绿色版) python自动化工具之pywinau ...
- python自动化工具
公司有些业务不断的重复复制和黏贴实在让人头疼,于是乎考虑使用python自动的生成文件,并且替换文件中的一些内容,把需要复制和黏贴的内容制作成 模版,以后的开发工作可以根据模版来自动生成文件,自己以后 ...
- 推荐一款最强Python自动化神器!不用写一行代码!
搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium.结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人 ...
- 前端开发福音!阿里Weex跨平台移动开发工具开源-b
阿里巴巴今天在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请.Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS.安卓.YunOS及 ...
- 推荐一款最强Python自动化神器!再也不用写代码了!
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: seleniu ...
- 自动化工具之三:pywinauto
Python自动化工具:pywinauto 一.pywinauto的安装 (1)安装命令 pip install -U pywinauto/pip3 install -U pywinauto (2)验 ...
- 测试开发:推荐一款阿里最新 Python 自动化开源工具!
大家好,我是麦小米,是狂师老师全栈测开训练营中的一名学员. 如果之前做过iOS自动化的同学相信都知道,一直以来,iOS自动化的实现&执行都必须依赖 Mac 系统,其主要原因是因为需要通过 xc ...
- CheungSSH国产自动化运维工具开源Web界面
CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...
随机推荐
- npm 安装 electron 失败的解决方案
npm 安装 electron 失败的解决方案 shit GFW npm 安装 electron 失败 解决方案 https://www.npmjs.com/package/nrm $ nrm ls ...
- code magic
code magic CI/CD for mobile app projects https://codemagic.io https://codemagic.io/apps flutter http ...
- vuex & redux
vuex & redux https://vuex.vuejs.org/ https://github.com/xgqfrms/VAIO/ https://scrimba.com/playli ...
- taro 滚动事件
taro 滚动事件 taro scroll bug ScrollView https://nervjs.github.io/taro/docs/components/viewContainer/scr ...
- HANNAH WHITE:从Facebook谈坚持
HANNAH WHITE于1993年毕业于加州斯坦福大学,被美国多家知名杂志评为最值得关注经济管理学杰出人才,2006年-2009年担任Doll资本管理公司部门主管,2009年-2013年担任Doll ...
- 美最大政媒《国会山报》罕见发文阐述BTC,华盛顿金融盛赞SPC
比特币价格突破4万美元创下历史新高,美国最大政治媒体之一<国会山报>罕见的发表了文章对比特币进行阐明. 2021年已经过去一周,但比特币依然没有停下上涨的步伐.在刚刚过去2020年里,比特 ...
- 星盟全球投资副总裁DENIEL SOIBIM:如何激发创造力
丹尼尔·索比姆毕业于加州理工大学,2005年通过创建投资俱乐部对潜力公司进行天使投资,获得了美国Blue Run高层的重视,任营收专家评估师,为Blue Run项目提案做风险评估,09年与泰勒·亚当斯 ...
- NGK公链如何构建区块链数字经济商业帝国?
2020年对于区块链市场来说,重大的利好消息莫过于NGK公链的上线了.NGK公链其广泛的市场前景.顶尖的技术,一直备受众多大型机构以及投资者所看好.同时,NGK公链也不负众望,在上线以后,就开始落地到 ...
- 精密进近OCH的计算
一.计算步骤 以I类精密进近为例,运行标准的制定大致分为以下几个步骤: 1)确定精密航段的超高障碍物. 2)计算当量高 3)计算高度损失 4)当量高与高度损失相加得到超障高OCH 5)对复飞段障碍物进 ...
- django学习-21.优化表数据的标题展示
目录结构 1.前言 2.表数据的标题默认展示的数据格式是[模型类名 object(主键名)]的相关信息 3.优化表数据的标题展示的数据格式是[改成我们想要展示的数据格式]的相关完整操作步骤 3.1.第 ...