adb shell dumpsys cpuinfo 和 adb -shell top -n 1 -d 0.5 方法都可以拿到应用占用的 cpu,但是两个方法获取的数据相差很大,哪种方法更准确呢?
另外在做 monkey 测试的时候,同时开启性能监控,但 monkey 是随机,有时候会在消耗 cpu 和内存的页面执行很久,有时一些页面不怎么消耗 cpu 内存 ,那么得到的数据就不真实。
monkey 的机制就说明了,监控性能这块肯定不准确。可以考虑:
感谢提供思路 。我看到你的 appium 自动化测试,监控性能放在每个 case 执行中,我有个想法,不依赖于 case,做一个定时器,自动化测试的同时,每隔 5s 就获取一次性能数据。这样是不是更好?
我是开一个线程定时 2s 取一次 top -n ,最后再算平均和最大值,作为一个遍历的参考性能
既然 Monkey 是随机的~那在不确定的路径下监控服务器有什么意义?~~~
@zhangzhao_lenovo zhang,请问你开一个线程用的什么方法,我用 threading.Timer 方法,可以实现 ,但是有个问题,这个线程偶尔无法关闭 ,这是为什么呢?关闭方法如下, for i in threading.enumerate(): if type(i) == threading.Timer: i.cancel()
#4 楼 @623135463 自身版本性能优化时的纵向对比或者和其他竞品之间横向比较,另外一些场景比如弱网非弱网之间比,特殊场景下如反复进出某个功能。性能监控都是也参考意义的。当然并不限于 monkey,其实遍历测试也是有一定路径的
#5 楼 @hukui51770 猜测是写的有问题了,调试下看看? 另外 adb 有时可能出现进程卡死
#5 楼 @hukui51770 你起 adb 时设个超时,轮询检测命令是否完成,超时还没返回完成就主动杀掉
我一般用 adb shell dumpsys cpuinfo | grep packagename 监控流量