tidevice相当于iOS界的adb,
用法和adb相似,
是阿里一个开源工具~
开源地址:
一、适用端
-
Mac
-
Linux
-
Windows
二、环境准备
-
Python 3.6+
-
pip3 install -U tidevice
-
windows需安装iTunes
三、常用命令
-
查看tidevice版本:tidevice -v
ps:成功显示的话证明tidevice安装成功
-
配对设备:tidevice pair
ps:由于现在手里没有ios设备,
所以没有匹配到设备,
下面的命令大家可以拿自己的测试机试试
-
取消配对设备:tidevice unpair
-
应用安装:tidevice install example.ipa
-
应用卸载:tidevice uninstall example.ipa
-
查看连接设备:tidevice list
-
应用启动:
tidevice launch com.apple.Preferences
-
停止应用:
tidevice kill com.apple.Preferences
-
查看包名:tidevice applist
-
查看运行中的应用:tidevice ps
-
查看目录文件:tidevice fsync +目录路径
-
支持文件相关操作:pull、push、rm、cat、stat、tree、rmtree、mkdir
-
获取crash日志:
tidevice crashreport [-h] [--list] [--keep] [--clear] [output_directory]
-
重启:tidevice reboot
-
截图:tidevice screenshot screenshot.jpg
-
输出日志:tidevice syslog
-
杀进程:tidevice kill +pid
-
获取页面fps:tidevice dumpfps
-
获取性能信息:tidevice perf -B +包名
支持:cpu、memory、fps、network
-
其他命令:tidevice -h
四、支持当作python库调用
下图是通过tidevice去打开app并且对其动作进行性能数据输出
五、流量统计
流量测试需要测试一段时间或一个操作的耗流,所以单从控制台输出很难看出整体数据,
利用python写了个脚本统计,支持:
1、通过修改时间测试不同时间需求流量统计
2、通过计算获取每个操作后的流量统计
import sys
import os
import time
import subprocess
def flowsum(testtime):
#修改为测试包包名
order = "tidevice perf -B com.xx.xxx"
pi = subprocess.Popen(order, shell=True, stdout=subprocess.PIPE)
num = 0
result = []
start_t = time.time()
dfsum = 0
upfsum = 0
for i in iter(pi.stdout.readline, 'b'):
if testtime!=0:
# 测试5,30min耗流
if '"network {' in str(i):
print(i)
now_t = time.time()
t = now_t-start_t
print(t)
if t < (testtime*60):
num = num+1
if 'down' in str(i):
alltype = str(i).split("downFlow':")[1].split("}")[0]
# print(alltype)
time.sleep(3)
upflow = alltype.split("'upFlow': ")[1]
dwflow = alltype.split(", 'upFlow'")[0]
dfsum = dfsum + float(dwflow)
upfsum = upfsum + float(upflow)
else:
continue
else:
pi.kill()
break
#测试操作耗流
elif num < 10:
if '"network {' in str(i):
print(i)
if 'down' in str(i):
alltype = str(i).split("downFlow':")[1].split("}")[0]
# print(alltype)
time.sleep(3)
upflow = alltype.split("'upFlow': ")[1]
dwflow = alltype.split(", 'upFlow'")[0]
dfsum = dfsum + float(dwflow)
upfsum = upfsum + float(upflow)
num = num + 1
else:
pi.kill()
break
print(f"上行总耗流:{upfsum:.2f}, 下行总耗流:{dfsum:.2f}")
if __name__ == '__main__':
#传入需要测试的时间,如测试操作耗流传0即可
flowsum(0)
六、Mac环境下的一些踩坑总结
python版本要3.6+以上,配置python环境变量如下:
1、终端打开环境变量配置文件:vi ~/.bash_profile
2、添加python的bin目录:
export PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:{PATH}
ps:每个人的python目录不一样,所以要找到自己的目录添加
3、输入i进入编辑模式,添加目录后点击”esc“退出后,输入:wq保存修改
使环境变量配置立即生效:source ~/.bash_profile
执行tidevice相关命令如有以下模块缺失的报错,
可通过命令安装:
pip3 install pyOpenSSL pyasn1