移动性能测试 关于 cpu 占用

独行数息 · 2017年01月06日 · 最后由 goodsen 回复于 2017年01月10日 · 2752 次阅读

adb shell dumpsys cpuinfo 和 adb -shell top -n 1 -d 0.5 方法都可以拿到应用占用的 cpu,但是两个方法获取的数据相差很大,哪种方法更准确呢?

另外在做 monkey 测试的时候,同时开启性能监控,但 monkey 是随机,有时候会在消耗 cpu 和内存的页面执行很久,有时一些页面不怎么消耗 cpu 内存 ,那么得到的数据就不真实。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

monkey 的机制就说明了,监控性能这块肯定不准确。可以考虑:

  • 集成到自动化测试中
  • 用思寒的的 AppCrawler 去拓展,一直我就有这想法,还没有去实践

感谢提供思路 。我看到你的 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 监控流量

独行数息 关闭了讨论 05月13日 15:42
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册