缘由

执行自动化测试总是会抓取一些性能数据,作为检查手机是否发生异常的一个参考

绑定

即每一个自动化操作步骤前记录相关性能数据,执行操作步骤完成后再抓取一次,
求差值(仅针对需要求差值的数据,比如流量,而内存,CPU 不需要求差值的就不),
从而得到该步骤的一个性能数据

优点:能得到具体某个步骤是否造成性能数据异常
缺点:因为需要同步抓取性能数据,而抓取性能数据本身是耗时的,如果花费了 3 秒,那么结果就是自动化测试的每个步骤都变慢了,
每个步骤耗时=执行步骤时间 + 抓取性能数据耗时(比如 3 秒)

不绑定

自动化测试任务开始时,同时开始抓取性能数据,任务结束时停止抓取

优点:任务执行和性能数据抓取是两个线程,没有交互,执行步骤即可
缺点:如果数据有异常时,没办法直接看出是哪个操作导致的,需要对执行步骤的时间去对应找出可能发生问题的步骤

实施方案

  1. 使用 adb 命令抓取

  2. 编写有界面的 apk 抓取

  3. 在 appium 的 ui2.0 server 中的集成抓取性能数据的请求,主要也是用 getUiDevice().executeShellCommand() 方法

问题

大家是怎么做的?


↙↙↙阅读原文可查看相关链接,并与作者交流