专项测试
卡顿
adb shell dumpsys gfxinfo tv.danmaku.bili
#运行systrace
python2.7 systrace.py
#等待开始提示
#操作app
#操作完成
#在systrace窗口内按enter
open trace.html
课间作业
- 最热直播上划十次后分析下再次上划的用户体验,把卡顿最长的帧截图到回复里,并把前后的20帧也截图到回复里
CPU MEM的获取
2019-07-06 16:03:36
pids=$(adb shell ps -ef | grep bili | head -1 | grep -v grep | awk '{print $2}' | xargs | sed 's# #,#g')
for((i=0;i<20;i++)); do
content=$(adb shell top -d 1 -p $pids -o %CPU,%MEM,NAME -n 1 -b | grep bili)
echo $content
cpu=$(echo "$content" | awk '{print $1}')
mem=$(echo "$content" | awk '{print $2}')
echo curl -i -XPOST 'http://47.95.238.18:8086/write?db=android' --data-binary "cpu,user=$USER,app=bili value=$cpu"
echo curl -i -XPOST 'http://47.95.238.18:8086/write?db=android' --data-binary "mem,user=$USER,app=bili value=$mem"
done
利用dumpsys获取app的性能数据
adb shell dumpsys procstats --hours 3
adb shell dumpsys meminfo package_name|pid [-d]
adb shell dumpsys batterystats --charged package-name
adb shell dumpsys netstats detail
adb shell dumpsys gfxinfo package-name
搭建监控系统
- grafana http://47.95.238.18:9100/ 用户名密码为admin admin
- influxdb http://47.95.238.18:8083/
- influxdb的数据上传 Writing data with the InfluxDB API | InfluxDB OSS 1.7 Documentation
Profile
- CPU profile
- mem profile
- systrace GPU profile
专项测试实战
需求出发点
- 竞品对比
- 用户投诉与反馈
- 大版本发布
- 线上监控反馈
Bili App的专项测试
- 稳定性测试 monkey
- 回归测试 maxim appcrawler
- 启动时间
- 关键的业务操作流程
- 耗电量 卡顿 弱网
- 安全测试
- 建立基线,新老版本做对比
专项测试的趋势
- 黑盒测试方法已经落伍
- 白盒测试体系正成为主流
- 结合监控是使用的最多的,apm、crash收集监控、卡顿监控
课后作业
- 每隔一秒钟统计下bilibili的Dalvik Heap的大小
- 加分项 上传到公司的监控系统并给出执行特定用例过程中的图表