美文网首页我的收藏
App启动时间测试

App启动时间测试

作者: Aaron_fcff | 来源:发表于2019-10-29 11:13 被阅读0次

    前言:App启动时间的测试的意义是对一个产品是否体验良好的标尺。平均每多一秒的启动时间,损失的用户数就会同比增加。一般大公司会在灰度期间做一轮启动时间的竞品测试,来对比本公司产品和竞争对手的app优劣。

    一、安卓应用的启动时间计算

    相对于ios而言,android的启动时间计算比较方便,只需要找到app的包名&启动Actibity即可。
    1)获取包名:

    adb shell pm list packages | grep app名称
    

    2)获取启动Activity名:

    adb shell dumpsys package 包名 | grep Start | grep Startup
    

    3)获取app的启动时间(首先确认手机后台没有其他app进程):

     adb shell am start -W 包名/启动Activity
    

    4)结果如下

    Status: ok
    Activity: xxx/xxxx
    ThisTime: 178
    TotalTime: 178
    WaitTime: 197
    Complete
    
    ⚠️*以TotalTime为准

    WaitTime 就是总的耗时,包括前一个应用 Activity pause 的时间和新应用启动的时间;
    ThisTime 表示一连串启动 Activity 的最后一个 Activity 的启动耗时;
    TotalTime 表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用 Activity pause 的耗时。

    二、iOS应用的启动时间计算

    iOS的启动时间计算比较复杂,此处我会用到录制视频+python的视频分帧方法去逐帧逐毫秒去统计启动时间(耗时较长,不建议在测试时间较短进行):
    1)同样要确保苹果手机后台没有app运行
    2)下载iTools进行录制启动期间的视频(如果有其他更好的,你也可以自行选择)
    3)打开iTools录制,再启动目标app(其中会存在误差,因为存在iTools的运行)
    4)利用python的CV2&number库去对视频拆帧计算启动时间(其中也存在一定的误差,因为启动的开始与结束时间是人为决定的)
    ⚠️启动时间以图标变暗为准、结束时间以主页页面加载完整为准
    以下贴出部分python切帧的代码(可自行百度):

    des = 'tx_ncache_'
    for i in range(2,3):
        vc = cv2.VideoCapture('D:/'+des+str(i)+'.mov') #读入视频文件
        c=1
        dir = 'D:/image/'+des+str(i)+'/'
        if vc.isOpened(): #判断是否正常打开
            rval , frame = vc.read()
            print rval
        else:
            rval = False
    
        timeF = 1  #视频帧计数间隔频率
    
        while rval:   #循环读取视频帧
            rval, frame = vc.read()
            if(c%timeF == 0): #每隔timeF帧进行存储操作
    
                cv2.imwrite(dir+str(c) + '.jpg',frame) #存储为图像
            c = c + 1
            cv2.waitKey(1)
        vc.release()
    
    ⚠️注意:测试启动时间可以以有缓存和无缓存、冷启动和热启动区分测试

    (具体根据所给的测试时间和侧重点决定)

    三、测试报告

    这里给出一个较为好的竞品测试报告模版~


    image.png

    相关文章

      网友评论

        本文标题:App启动时间测试

        本文链接:https://www.haomeiwen.com/subject/gmewvctx.html