安卓性能(adb、测试报告)

安卓性能测试数据获取及生成html测试报告

  • 获取设备信息

获取设备厂商:adb -s devicesid shell getprop ro.product.brand

获取设备型号:adb -s devicesid shell getprop ro.product.model

获取设备系统版本:adb -s devicesid shell getprop ro.build.version.release

  • adb命令监测(指定设备)app相关性能信息

1. 安装apk

adb install 文件路径>,将指定的apk安装到设备上,安装的apk包会放在/data/app目录下。

几个参数:

-r 强制安装

-d(真机,多个设备中只有一个真机时适用)

-e(模拟器,多个设备中只有一个模拟器时适用)

-s(指定设备,后接序列号)

eg:adb –s 44a188f9 install –r test.apk(安装测试包到指定的移动设备,其中44a188f9即序列号,通过adb devices获取)  

     2. 卸载app

adb [-s devicesiduninstall pakagename>

     3. adb pull adb push

adb pull <设备中的文件路径> <本地路径>:从模拟器或设备中复制文件到本地。

adb push <本地文件路径> <设备中的路径>:将本地文件或目录复制到模拟器或设备。

     4. 获取启动时间

adb  [-s devicesid]  shell am start -W –n /

如果只关心某个应用自身启动耗时,参考TotalTime

如果关心系统启动应用耗时,参考WaitTime

如果关心应用有界面Activity启动耗时,参考ThisTime

    5. 内存使用率

adb [-s devicesidshell dumpsys meminfo

    6. CPU占有率

  1. adb [-s devicesidshell top -d 1| grep   指定设备每一秒钟打印一次app资源使用情况无限循环,可使用control+C终止
  2. adb [-s devicesid]  shell dumpsys cpuinfo 不同设备的输出信息有可能不同

    3.  adb [-s devicesidshell cat /proc/pid /stat 查看指定进程的cpu占用

        adb [-s devicesidshell cat /proc/stat 查看总体的cpu占用

    7. 功耗

adb  [-s devicesidshell dumpsys battery

    8. 流量

adb  [-s devicesid]  shell cat /proc/net/xt_qtaguid/stats|grep |grep wlan0

  •  数据分析

https://www.cnblogs.com/fightfordream/p/7072966.html

Pandas数据处理之分组统计

cut()函数可以将一个数组中的数据切分成几个部分。

将数据分为几个部分,就称为几个面元。

cut(数据数组,面元数组)

还可以不指定面元的界限,直接传入一个整数参数,cut()会按照指定的数字,将元素划分为相应的几部分

相应步骤:

1.切割面元:cat = pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)

2.统计每个面元有多少个元素:ser = pandas.value_counts(cat)

3.根据索引排序:ser = ser.sort_index()

4.数据名:ser.name='柱形图原始数据

  数据字段名:ser.index.name='数据区间'

eg:数据区间

    (6.987,9.6]    1

    (9.6,12.2]     0

    (12.2,14.8]    0

    (14.8,17.4]    0

    (17.4,20.0]    1

    Name: 柱形图原始数据,dtype: int64

将上述数据存储为字典列表:

data = [

       {'interval':str(ser.index[0]),'number':ser.values[0]},

       {'interval':str(ser.index[1]),'number':ser.values[1]},

       {'interval':str(ser.index[2]),'number':ser.values[2]},

       {'interval':str(ser.index[3]),'number':ser.values[3]},

       {'interval':str(ser.index[4]),'number':ser.values[4]}

    ]

  • 图表绘制

https://antv.alipay.com/zh-cn/g2/3.x/tutorial/index.html

       //图表绘制的数据需为json格式

       function strToJson(str){

           var json = JSON.parse(str);

           return json;

       }

       // 安装耗时分析柱形图

       var data = "{{ data['Analysis']['searchInstall'] }}";  //jinja2接收数据

       data = data.replace(/'/g, "\""); //将/'/g替换为字符"

       data = strToJson(data); //转化为json

       const chart = new G2.Chart({

           container: 'c1', 

           width : 528, 

           height : 226  

       });

       chart.source(data);

       chart.interval().position('interval*number').color('interval');

       chart.render();

 

你可能感兴趣的:(自动化测试)