是的你没猜错,我用手机上的论坛 ORZ
这几天我在研究 app 的性能测试需求,首先问题来了:
1,手机 app 的性能指标怎么样确定?
对于这个问题,首先要了解有哪些指标,流量,电量,内存,启动跳转时间等等。就像网站有个《中国互联网网站性能行业参考数据》,手机应用端好像目前还没有比较权威的一份性能指标标准。现在我们也只能跟开发,业务人员拍拍脑袋给出个指标了。
2,流量,电量,cpu,内存的测试
这一块目前已经有较多的工具可以直接拿来用了,腾讯的 GT 试用了下,的确功能蛮强大的,几本可以满足测试这些的需求了,比百度 mtc 上的买个测试助手 app 用起来要方便一些。
3,响应时间,页面跳转时间启动时间,流畅度(无卡顿跳祯)的测试。
启动时间在 DDMS 上看 LOG 就可以看到,至于页面跳转时间,滑动时间,就是我最苦恼的地方了!@shixue33,@ 恒温,@monkey,各位有没有好的方案推荐一下呢?
3,卡顿,流畅程度测试
GT 工具上有这个功能,统计 fps,跳针现象,最烦恼的是这需要 root 权限(安卓)。在百度 mtc 平台有个深度性能测试,有帧数测试的,但是整体感觉很不准确,流量内存都全部是 0。不知道有没有一些不用 root 的工具可以统计这个的捏?
在这里也抛砖引玉,希望跟各位大神讨论一下心中的疑问 TAT。
启动时间用这个脚本试试:
#! /bin/bash
if [ -f ~/result.txt ]; then
echo "" > result.txt
else
touch result.txt
fi
for ((i = 0; i < 50; i++))
do
adb shell am start -W -n com.pingan.pinganwifi/com.pingan.pinganwifi.home.MainActivity | grep "TotalTime" >> result.txt
adb shell am force-stop com.pingan.pinganwifi
done
awk -F
清空数据后测试:使用 adb 命令启动,测试自己的 app 一般都是 6-7s,微信一般都是启动 3s 左右。那是不是说明我的 app 启动太慢?
#4 楼 @fengyameng 这个启动时间有点长了,你是用 adb shell am start -W -n 来统计的吗?
跳转时间一般靠版本内部埋点记日志记录。 纯测试的苦逼方法就是 UI 自动化记录元素出现时间了
@weamylady 是用 adb shell am start -W -n 来统计的。开发解释,是我们的 app 加了听云会增加 2s,又增加了其他 app 的插件又增加了 1s。减去大概启动需要 4s 左右。开发这样解释合理吗??
我的系统性能测试方案
性能测试之用例得分评价和 CPU 内存数据监控
对于性能测试,个人看法是:
1、性能测试方案主要目的是引导研发资源投入产出比最高的性能优化点。
2、对于实际项目中的性能测试方案设计,需要根据目的控制测试范围,有所取舍。
对于测试手段:
1、UI 操作偏向用户实际效果的方式,执行测试 case 并录像算帧
2、偏向和研发配合收集性能数据分析则需要埋 log 获取时间,自动化脚本完成执行和数据收集统计形成报告
3、基于显示变化的 case,自动化判定结束状态可以从 SurfaceFlinger 数据变化入手基于变化取性能响应时间尝试
4、CPU,内存,电量监控可以集成到常规测试任务同时进行。包括功能验证,压力测试,专项测试
对于内部标准及推动解决:项目中需要有个能下结论做决策的人(有话语权)推进研发认可标准并跟进解决,制定的标准需要完全站在用户体验角度考虑。
对于竞品对比数据,完全就是为了展示产品和说服研发对性能差的部分进行优化用的。
#7 楼 @fengyameng 加了听云增加了 2 秒的启动时间,这个性能消耗有点大哦,这个你们需要跟项目经理讨论能不能接受吧!
@weamylady 多谢!我测试的是生产的版本,待下个版本提出来让项目经理权衡一下。_^
可以考虑用用第三方的测试工具,如爱内测、云测
首推 GT
最好不要再 APP 里增加嵌入测试工具,特别是测试性能这样的领域
#16 楼 @917930921 必须的必
adb 算启动时间这个方法准吗?我问了周围的人,说不靠谱呢,为啥?
#18 楼 @jamesparagon 可以用录视频,数帧数方法
#20 楼 @lihuazhang 同感,很多功能还要 root,电量统计都是负值