利用tidevice+mysql+grafana实现ios性能测试

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.具体步骤

  1. 数据库建立相应的测试库和测试表,主要是我们要收集的fps,cpu,memory,network等4个表,表的结构就是时间戳和相应的数据 比如fps表:
    lgglfmo8.png

    lgglfs36.png
  1. 连接手机,指定要测试的应用(以 fun club为例子)
    `

    t = tidevice.Device()
    perf = tidevice.Performance(t,list(tidevice.DataType))
    #print(list(tidevice.DataType))
    appid='com.xxx.xxx.xxxxxxx'  #填写自己需要测试的app包名即可
  2. 设定程序的运行时常,启动指定的app,查看回调函数输出的数据格式
    lgglfytn.png
  3. 从返回的字典数据里,分别提取对应的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()
  1. 检查数据库对应的表是否有数据插入(以fps为例)
    lgglg5ne.png
  2. 启动grafana 设置mysql数据源
    lgglgahn.png
  1. Add Panel 选择折线图 进行相关配置,以fps为例

lgglgih2.png

  1. 设置grafana的时间以及定时刷新的频率
    lgglgnc5.png
  1. 配置好4个图表,grafana设置图标刷新时间为1秒
    lgglgvfm.png

10.设定好程序运行的时常 启动app 首页静止, 查看折线图
lgglh0h5.png

11.funclub进入ludo游戏,查看折线图数据(21:06开始)
lgglh9uq.png

12.在对应的时间打标签
lgglhg3z.png

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇