公司最近要求做 APP 的性能测试,我网上查了一下后打算这样做:
1.用到腾讯的性能狗工具
2.按手机机型分为多个层级,比如网图侵删:
3.再对一个机型进行测试,按测试场景分类:testcase1、testcase2
4.然后得到 testcase1 的性能报告
这样得到所有的报告。
疑问点:
1.这样做重复性工作太大了觉得很傻。(有考虑做自动化,但还没想好怎么再做自动化的时候监控性能)
2.得到这个性能报告后怎么去利用他,我光拿个报告看不懂。(怎么分析报告)
最后:我想了解一下大家是怎么做 APP 的性能测试,用到哪些工具,怎么去做性能测试,得到结果后怎么去优化处理之类
麻烦了,没有人带着自己摸石头过河
PerfDog 好像不错
简单版这样足够了。
第一点重复性工作太大,可以考虑用 airtest 之类的可以低成本做自动化脚本的工具,把你的自动化脚本弄出来。
第二点报告怎么分析,这个你得先确定通过指标(怎么算通过,怎么算不通过),然后看报告里面有没有不符合指标要求的,不符合的再进行具体分析。
一般最关注的是
CPU 占用高不高(影响耗电量以及发热,一般应用最高应该在 15% 以内)
内存是否有泄露或接近系统内存的上限(重复操作这个场景 5 分钟以上,内存会持续上涨且不会回落。内存占用达到系统上限后,会被系统强制杀掉,给用户感受是偶发性闪退、应用不稳定)
是否卡顿(看 Jank 以及主观感受,给用户感受是不流畅)。
另外,机型选择,建议也结合线上用户使用占比来决定,优先选择整体占比高的或者高价值用户(如大额消费的用户)用得多的,不要拍脑袋。
感谢大佬指点,
1.关于自动化之前用 appnium 准备做后后面应为 app 里内置了 web 页面就先放置了。(后续和领导沟通一下修改俩项工作的顺序)
2.报告分析这块之前是一点头绪都没有,感谢指点方向
3.机型选择的话 之前测试时候一些常见机型就涉及到了,主要开展这个也是想看看这个 APP 下限在哪里
之前有过一些想法。就是 android 跑 app 自动化的时候,通过 adb shell(自己设置时间间隔)去获取手机的性能,下半年准备自己开发一下看看疗效。
之前体验过 PerfDog ,还不错 。 上手简单 。
appium 执行的时候会影响页面的性能吧,性能狗支持自定义的上传服务地址
刚开始的话可以先用下现成的工具,如 perfdog,GT 等,然后慢慢了解其原理,再结合实际的业务场景,看哪几个性能指标比较容易推,然后以发现实际性能问题去推动相关专项落地比较好
申请个 PerfDogService ,不确定好不好通过,虽然有些小 bug,总体来说挺好用的, 功能强大
或者用 abd shell + busybox ,基本可以实现主要参数的获取
1、建议选取 top1 机型测试,不用多个档位手机测试,没有对比意义
2、首次做,我觉得关注各个场景有没有明显的内存泄露,比如内存持续上涨不怎么释放,以及明显的卡顿
3、建立版本数据,每个版本的核心场景都要执行一遍,保证数据的置信度,记录下来,可以和之前版本数据进行对比,看有没有问题
4、自动化,我觉得只有你对每个场景的指标有了主观认识以后再去做,比如每个场景的起始内存是多少,场景执行完成的稳定内存是多少,这些都有了解后,再去做自动化,这样就可以判断自动化后收集的数据的准确性,而且要确认自动化的脚本是否对页面 dom 树加载有没有影响,
5、分析,走势图,每个场景的均值和涨幅,先用这些来判断,有没有问题,有问题的话,那就要更进一步的排查了
1。先搞清为啥要做性能测试哈。你的性能测试的目的是啥?PK 过同类型的竞争产品?还是技术研发自主优化诉求?这些都需要部门之间讨论达成一致,否则你测试再多数据都不知道干啥用的。
2。然后确定你要采集的性能指标有哪些。采集这些对应到性能目标的那些 KPI 上。
3。要使用的测试工具都有很多,选择你们合适的。
4。最后就是测试,然后根据目标给出测试结果分析报告。
5。最后,再想想怎么自动化执行,怎么跟踪历史数据,怎么让让性能测试融入到整个研发过程中。
说的太虚,FYI