iOS自动化之tidevice

       一般来说搞iOS手机的APP自动化需通过Mac电脑,但当前APP出图自动化测试平台是基于windows系统环境开发。如果因iOS APP需要再重新搭建Mac的开发及测试环境,会很大程度上浪费资源,增加开发、维护的难度。因此,经多方预研究发现阿里开源的用python编写的tidevice可以跨平台实现iOS自动化,今天我们就一起来学习、揭秘tidevice。

一、安装

tidevice是用 Python 写的,依赖 Python3.6+,我们当前使用的Python3.7,完美契合。安装方法和一般的python第三库一致,如下:

pip3 install -U "tidevice[openssl]"

安装完成后,可通过tidevice -v 验证安装是否成功。

注:Windows电脑需要安装并启动Itunes

二、使用

列出连接设备:tidevice list

应用管理:

# 安装应用
$ tidevice install ezview.ipa
​
# 指定设备安装
$ tidevice --udid $UDID install https://example.org/example.ipa
​
# 卸载应用
$ tidevice uninstall com.uniview.app.smb.phone.ezview
​
# 启动应用
$ tidevice launch com.uniview.app.smb.phone.ezview
​
# 停止应用
$ tidevice kill com.uniview.app.smb.phone.ezview
​
# 查看已安装应用
$ tidevice applist
​
# 查看运行中的应用
$ tidevice ps
$ tidevice ps --json output as json

查看设备信息:tidevice info

iOS自动化之tidevice_第1张图片

 文件操作:

# 查看相册内容
$ tidevice fsync /DCIM/
​
# 查看T3出行Documents中的内容
$ tidevice fsync -B com.t3go.passenger ls /Documents/
​
# 下载目录(也支持文件)
$ tidevice pull /Documents ./TmpDocuments/
​
# 其他操作 rm cat pull push stat tree rmtree mkdir
$ tidevice fsync -h

Crash日志操作:

usage: tidevice crashreport [-h] [--list] [--keep] [--clear] [output_directory]
​
positional arguments:
  output_directory  The output dir to save crash logs synced from device (default: None)
​
optional arguments:
  -h, --help        show this help message and exit
  --list            list all crash files (default: False)
  --keep            copy but do not remove crash reports from device (default: False)
  --clear           clear crash files (default: False)

其他应用:

# 重启
$ tidevice reboot
​
# 截图
$ tidevice screenshot screenshot.jpg
​
# 输出日志 same as idevicesyslog
$ tidevice syslog

综上,tidevice支持如下操作:

  • 截图

  • 获取手机信息

  • ipa包的安装和卸载

  • 根据bundleID 启动和停止应用

  • 列出安装应用信息

  • 模拟Xcode运行XCTest,常用的如启动WebDriverAgent测试(此方法不依赖xcodebuild)

  • 获取指定应用性能(CPU,MEM,FPS)

  • 获取指定应用功耗(CPU,GPU,network,display,location)

  • 文件操作

  • Crash日志操作

  • 其他

三、如何连接iOS手机

tidevice连接iOS手机,并非是直接操控手机及手机上安装的app,而是连接WDA(WebDriverAgent),然后通过WDA实现控制APP的一系列操作。所有iOS手机需先安装WDA。tidevice连接iOS手机方式也非常简单,如下:

tidevice -u [设备udid] wdaproxy -B [wda的bundleid] --port 8100

iOS自动化之tidevice_第2张图片

此时,我们也可以在Windows电脑上访问127.0.0.1:8100/status,查看连接状态:

iOS自动化之tidevice_第3张图片

至此,我们就通过windows平台连接上iOS平台,下一节开始讲解如何通过appium如何在iOS自动化中应用。 

你可能感兴趣的:(python,自动化,ios)