1.什么是tidevice?
tidevice是一个可以和ios设备进行通信的工具,提供以下功能:
● 截图 ● 获取手机信息 ● ipa包的安装和卸载 ● 根据bundleID 启动和停止应用 ● 列出安装应用信息 ● 模拟Xcode运行XCTest,常用的如启动WebDriverAgent测试(此方法不依赖xcodebuild) ● 获取指定应用性能(CPU,MEM,FPS) ● 文件操作 ● 其他 支持运行在Mac,Linux,Windows上 官方地址:httpss://github.com/alibaba/taobao-iphone-device
2.环境准备
Python3.6+ Mysql (docker) grafana(docker)
3.实现思路
● 使用tidevice选定连接的被测手机和被测app ● 启动app和程序,将开启app后每秒的设备性能信息采集将采集到的数据存储到mysql ● grafana设置mysql数据源 ● 配置grafana展示图表 ● 配置展示图表的刷新时间
4.具体步骤
连接手机,指定要测试的应用(以 fun club为例子) `
t = tidevice.Device()
perf = tidevice.Performance(t,list(tidevice.DataType))
#print(list(tidevice.DataType))
appid='com.xxx.xxx.xxxxxxx' #填写自己需要测试的app包名即可
设定程序的运行时常,启动指定的app,查看回调函数输出的数据格式
从返回的字典数据里,分别提取对应的cpu,network,memory,fps数据和时间戳,然后插入数据库相对应的表。以fps为例子
def callback(_type: tidevice.DataType, value: dict):
print("R:", _type.value, value)
if _type.value =='fps':
fpsdata = value
fps = fpsdata.get('fps')
time = timeStamp(fpsdata.get('timestamp'))
db = pymysql.Connect(user='root', password='123456', host='localhost', database='mytest')
cursor = db.cursor()
sql="INSERT INTO `mytest`.`my_fps` (`fps`, `time`)VALUES ('%s', '%s')" %(fps,time)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
10.设定好程序运行的时常 启动app 首页静止, 查看折线图
11.funclub进入ludo游戏,查看折线图数据(21:06开始)
12.在对应的时间打标签
本文共 428 个字数,平均阅读时长 ≈ 2分钟