移动应用测试新技术.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测试覆盖率有多高? * 类aop技术 Sping AOP;运行期动态代理,需要用户自行增加注解,配置文件等方式对目标类增强,它采用运行时动态地、在内存中临时生成“代理类”的方式来生成 AOP 代理。 AspectJ;编译期静态代理,但 AspectJ 需要使用自己的编译器来编译 Java 文件,还需要织入器。 OneAPM;编译期静态代理,安装,使用简单,低侵入,进行了数据处理与分析,降低成本 * 对于了解aspectj的人来说,了解oneapm的字节码插装技术就比较容易 Oneapm 像键盘膜,常用按钮 观察者 aspectj 键膜 * * 以cpu为例,获取单个进程cpu 使用aop思想将此代码添加至你想或许CPU信息的位置即可 * 以cpu为例,获取单个进程cpu 使用aop思想将此代码添加至你想或许CPU信息的位置即可 * 2000个样例,不同设备环境,不同地域,不同网络 * X轴;时间,Y轴是消耗的内存举例 时间轴越长的, 表明遇到了性能问题, 可以看到大部分的入口响应时间都在4s以下. 时间较长的也可能是后台任务.. 右边的图例子是简化版本的行为session标记. * 相同的业务场景, 如果在某些设备上出现了问题, 并且行为数据与以前差距太大, 就应该进行分析研究. 很可能是特长场景导致的体验差. 比如特定的机型或者特定的地区有性能问题. * 并不知道什么地方导致了内存上升, 需要靠MAT分析app对对象和内存分配, 很麻烦 * X轴为时间轴, 同时标记了某个时刻执行的函数信息, Y轴是内存数据例子 * 路径 分析上看 位图解析很慢, app开发应该谨慎的使用图片. 不要大量的使用图片, 或者进行显示优化. 进行本地缓存或后台处理,或图片压缩处理 cpu的数据也是关联的 * * 张文欣 移动应用测试 与 测试数据分析 移动应用性能测试的维度 常见维度的采集方法 测试数据分析 移动应用性能测试示例 启动时间 如何获取这些性能数据并对其进行分析? 常见性能测试的维度 内存 CPU 流量 测试人员可能会设想自己是以上用户 测试 启动时间的采集方法 内存的采集方法 Cpu的采集方法 流量的采集方法 移动应用性能取决于客户端及服务器端 传统的测试很难全面的测试客户端与服务端之间 的交互,通常会借助打印log日志以及fiddler等 工具 即使测出了http请求响应时间,ViewLoading 的时间,依旧很难测试bitmap解析,json解析 的时间。进而相应的数据分析,就变得更困难了。 如何更好地采集性能测试维度数据并进行分析? 移动应用性能测试 低侵入的数据采集方式 低侵入的数据采集方式 低侵入的数据采集方式 低侵入的数据采集方式 public class Utils{ public ?static long getCPU(){?????????? ?BufferedReader?localBufferedReader?=?new?BufferedReader (new?InputStreamReader(new?FileInputStream("/proc/"?+?pid +?"/stat")),?1000); ????????????String?str?=?localBufferedReader.readLine(); ????????????localBufferedReader.close(); ????????????arrayOfString?=?str.split("?"); ?????????if(arrayOfString!=null&&arrayOfString.length>=16)?{ ????????????l?=?Long.parseLong(arrayOfString[13])?+?Long.parseLong(arrayOfString[14])?+?Long.parseLong(arrayOfString[15])?+?Long.parseLong(arrayOfString[16]);?? ?} ?return l; } } 低侵入的数据采集方式 public aspect CpuAspect { pointcut getCpuState(): execution(* Activity+.*(..)) ; before() : getCpuState() { String method =thisJoinPoint.getSignature().toShortString(); Long cpuState = Utils.getCpu();

文档评论(0)

***** + 关注
实名认证
文档贡献者

擅长各种类型文档 找不到的文档可私信

1亿VIP精品文档

相关文档