前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS自动化工具tidevice初探

iOS自动化工具tidevice初探

作者头像
测试加
发布2022-06-21 16:26:04
2.3K0
发布2022-06-21 16:26:04
举报

介绍

在日常iOS研发或者测试中,经常会对手机进行设备udid、应用包名、安装app、卸载app等操作。

在mac系统上可以安装libimobiledevice工具解决上述问题,但是不支持windows系统。

今天给大家介绍一款在iOS辅助做自动化的命令行工具tidevice,支持安装app、运行XCTest、采集性能、支持多系统等。

tidevice

tidevice是阿里的内部的一个小组用来做iOS自动化用的工具,已经开源到github了。

项目地址 https://github.com/alibaba/taobao-iphone-device。

该工具能够用于与iOS设备进行通信,提供以下功能。

  • 截图
  • 获取手机信息
  • ipa包的安装和卸载
  • 根据bundleID 启动和停止应用
  • 列出安装应用信息
  • 模拟Xcode运行XCTest,常用的如启动WebDriverAgent测试(此方法不依赖xcodebuild)
  • 获取指定应用性能(CPU,MEM,FPS)
  • 文件操作
  • Crash日志操作
  • 其他

支持运行在Mac,Linux,Windows上

安装

Python 3.6+环境下

代码语言:javascript
复制
pip3 install -U "tidevice[openssl]"

Windows电脑需要安装并启动Itunes。

iOS环境

如果需要体验tidevice工具,需要准备一台iOS测试机。

另外需要准备一个iOS项目,代码地址: https://github.com/xinxi1990/iOSDemo。

打包命令

代码语言:javascript
复制
xcodebuild
-project ./iOSDemo.xcodeproj
-scheme iOSDemo
-configuration Release
-derivedDataPath ./

生成ipa命令

代码语言:javascript
复制
xcrun -sdk iphoneos PackageApplication -v
~/iOSDemo/Build/Products/Release-iphoneos/iOSDemo.app -o
~/iOSDemo/Build/Products/Release-iphoneos/iOSDemo.ipa

基本使用

查看版本号

代码语言:javascript
复制
tidevice version

tidevice version 0.7.14

查看版本号

代码语言:javascript
复制
tidevice version

tidevice version 0.7.14

配对功能

代码语言:javascript
复制
tidevice pair

Paired with device 530a0f8ebb699738d605e68a5c8e54b0a4bcd925 HostID: 651A4458-9D29-4AFF-92C3-CD020D17CDDB

列出连接设备

代码语言:javascript
复制
tidevice list

UDID                                      NAME        MarketName     ProductVersion    ConnType
530a0f8ebb699738d605e68a5c8e54b0a4bcd925  iPhone (2)  iPhone 8 Plus  15.4.1            usb
代码语言:javascript
复制
tidevice list --json

[
    {
        "udid": "530a0f8ebb699738d605e68a5c8e54b0a4bcd925",
        "name": "iPhone (2)",
        "market_name": "iPhone 8 Plus",
        "product_version": "15.4.1",
        "conn_type": "usb"
    }
]

应用管理

安装应用

代码语言:javascript
复制
tidevice install /Users/xinxi/Downloads/app.ipa(本地ipa地址)

指定设备安装

代码语言:javascript
复制
tidevice --udid 530a0f8ebb699738d605e68a5c8e54b0a4bcd925  /Users/xinxi/Downloads/app.ipa

卸载应用

代码语言:javascript
复制
tidevice uninstall com.example.demo(应用包名)

启动应用

代码语言:javascript
复制
tidevice launch com.example.demo

停止应用

代码语言:javascript
复制
tidevice kill com.example.demo

Kill pid: 1988

查看已安装应用

代码语言:javascript
复制
tidevice applist

查看运行中的应用

代码语言:javascript
复制
tidevice ps

tidevice ps --json

[
    {
        "pid": 324,
        "name": "WorldClockWidget",
        "bundle_id": "",
        "display_name": ""
    },
    {
        "pid": 315,
        "name": "GeneralMapsWidget",
        "bundle_id": "",
        "display_name": ""
    },
    {
        "pid": 155,
        "name": "Taobao4iPhoneWidgetExtension",
        "bundle_id": "",
        "display_name": ""
    },
    {
        "pid": 328,
        "name": "AwemeNotificationService",
        "bundle_id": "",
        "display_name": ""
    }
]    

结语

tidevice在日常工作中非常实用,比如在自动化测试中使用安装、卸载命令等。本次就简单入门介绍一下tidevice的基本使用,后续会介绍tidevice在UI自动化、性能采集中的实战。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试加 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • tidevice
  • 安装
  • iOS环境
  • 基本使用
    • 查看版本号
      • 查看版本号
        • 配对功能
          • 列出连接设备
            • 应用管理
            • 结语
            相关产品与服务
            命令行工具
            腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档